1620 Commits

Author SHA1 Message Date
Stefan Agner
5d2154cc97
Update Raspberry Pi kernel and firmware to oldstable_20211201/71bd3109/Linux 5.10.63 (#1119) (#1696)
* Bump buildroot

* buildroot 907739ed48...4c6c8fb767 (1):
  > package/rpi-firmware: bump version to 71bd3109

* RaspberryPi: Update kernel 5.10.63 - oldstable_20211201

* Add Raspberry Pi Zero 2 W device tree
2021-12-28 15:58:18 +01:00
Stefan Agner
24615739ea
Use LSI Logic SCSI controller (#1695)
* Use LSI Logic SCSI controller in vmdk descriptor as well

For some reason, the vmdk disk format's descriptor contains the
controller type as well. By default, qemu-img sets it to "ide", which
seems not optimal especially for VMware's ESXi. Set adapter type to
commonly supported "lsilogic".

* Move ova image generation to hdd-image.sh
2021-12-27 14:58:27 +01:00
Stefan Agner
55c9b54b13
Check if Busybox supports oflag (#1692) (#1694)
* Check if Busybox supports oflag

It seems that Busybox' dd shipped with OS release 5 and earlier does not
support oflag. Check if the flag is supported before making use of it.

* Exit if a command in the update scripts returns an error

This makes sure that the update isn't marked as successful in case there
is an error in the update script.
2021-12-27 14:58:19 +01:00
Stefan Agner
580e541f77
Linux: Update kernel 5.10.88 (#1693) 2021-12-27 14:58:11 +01:00
Łukasz Szeremeta
7ed97e89a3
Devices description update (#1684)
* Devices description update

Updating the list of supported devices according to https://www.home-assistant.io/installation/

* Intel NUC -> Generic x86-64 (e.g. Intel NUC)

* Remove unsupported Raspberry Pi and Raspberry Pi Zero
2021-12-24 11:08:28 +01:00
Stefan Agner
1e94f9a79e
Adjust ova to support VMware ESXi (#826) (#1674)
* Use OpenSSL to generate OVA manifest file (#826)

It seems that sha256sum adds a space after the hash algorithm which
causes "Invalid OVF checksum algorithm" on certain VMware virtualization
products.

Using OpenSSL avoids the space and makes the manifest file compatible
wiht VMware products.

* Use Buildroot provided OpenSSL binary

* Use SCSI controller by default
2021-12-15 12:11:26 +00:00
Stefan Agner
b7a7805262
Re-upload rebuilt files (#1676)
Make sure to overwrite existing files on upload. This allows to trigger
rebuilds and have the latest builds on the os-builds server.

Note: When using GitHub Actions, the release/ directory is cleared at
the beginning (by the checkout action, which has the clean option set
by default which also causes files in .gitignore to be deleted).
2021-12-14 21:59:27 +00:00
Stefan Agner
19a135edac
Avoid race condition when fetching containers during build (#1671)
* Avoid race condition when fetching containers during build

So far only a single builder was active for each architecture. This
toghether with the naming scheme to include architecture/machine name
made sure that an image could only be fetched or used by a single
builder.

However, since most systems are now aarch64, multiple runners are now
active for a single architecture. This makes it necessary to lock
fetching/coping of container images to avoid race conditions.
2021-12-13 15:43:42 +00:00
Stefan Agner
c99927f3c4
Add patch for iwlwifi to fix beacon timeout (#1655) (#1670)
Allow to configure missed beacons using the iwlwifi.beacon_timeout
kernel parameter.
2021-12-13 12:52:29 +00:00
Stefan Agner
f5be7693de
rtl8812au: use buildroot provided aircrack-ng driver (#1660) (#1669)
Use rtl8812au driver provided by buildroot. This uses a newer verison of
the v5.6.4.2 branch which works with newer kernel and seems to be the
recommended branch.

Note: It seems that our buildroot package currently fails to properly
deploy the 88XXau.ko kernel module. Instead of fixing our version, just
move to the buildroot version.
2021-12-13 12:52:13 +00:00
geftactics
a4be500bf9
Update download URL for package intel-e1000e (#1668) 2021-12-13 11:30:03 +00:00
Stefan Agner
cc0d4f8b62
Linux: Update kernel 5.10.83 (#1658) 2021-12-03 15:44:08 +00:00
Alexander Reinert
26c36a8caf
Updated to latest generic_raw_uart package (#1653) 2021-12-03 15:05:43 +00:00
Stefan Agner
b5c9c9df22
Enable Broadcom and Atheros Ethernet drivers (#1650) (#1651) 2021-11-14 01:36:21 +01:00
Stefan Agner
19616b05d7
Update Linux kernel patches for Home Assistant Amber (#1649)
* Update Linux kernel patches for Home Assistant Amber

Fix user LED polarity. Also rebase the patchset ontop of the Raspberry Pi
kernel 1.20211029.

* Add RTC as well
2021-11-13 16:06:16 +01:00
Stefan Agner
3f28023dc4
Bump OS release version to 8 (#1648) 2021-11-13 16:05:57 +01:00
Stefan Agner
2b34503524
Update Raspberry Pi kernel and firmware to 1.20211029/Linux 5.10.63 (#1645)
* Bump buildroot

* buildroot a46737692c...907739ed48 (1):
  > package/rpi-firmware: bump version to 1.20211029

* RaspberryPi: Update kernel 5.10.63 - 1.20211029
7.0.rc1
2021-11-11 12:10:21 +01:00
Stefan Agner
b1f6c3a87a
Bump buildroot to 2021.08.2 (#1643)
* buildroot 5b5dff3136...a46737692c (1):
  > Merge tag '2021.08.2' into 2021.08.x-haos
2021-11-10 22:53:43 +01:00
Stefan Agner
d065287acd
Linux: Update kernel 5.10.78 (#1642) 2021-11-10 22:08:33 +01:00
Stefan Agner
cb8b2e3f5f
Drop Raspberry Pi 1/Zero W support (#1638)
These boards support the rather ancient ARMv6 architecture only. We
officially stopped supporting them already two releases ago, its time to
say goodbye.
2021-11-10 14:50:37 +01:00
Stefan Agner
1638097485
Use GitHub issue form (#1637)
* Use GitHub issue form

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-11-09 14:28:16 +01:00
Stefan Agner
b1c59f4f6e
Add label action workflow (#1631)
* Add label action workflow
2021-11-05 10:17:41 +01:00
Stefan Agner
5fd943c936
Expose systemd-journal-gatewayd to Supervisor (#1627)
* Add systemd-journal-remote to the image

This allows to access journald's log from within Supervisor and expose
more system logs to users.

* Allow to access systemd-journal-gatewayd from Supervisor

Create a systemd-journal-gatewayd.socket service using a Unix socket and
bind mount it into the Supervisor container. This allows to query
systemd-journald from Supervisor directly.
2021-11-04 15:38:35 +01:00
Stefan Agner
e63aa1a5f4
Update Linux kernel patches for Home Assistant Amber (#1626)
Support the user LED available on the latest revision of the PCB. Also
rebase the patchset ontop of the Raspberry Pi kernel 1.20210928.
2021-11-03 00:54:15 +01:00
Stefan Agner
06a1c21b82
Support Realtek 8152/8153/8156 USB Ethernet adapter (#1604) (#1625)
* Bump buildroot

* buildroot 73991f0fee...5b5dff3136 (1):
  > package/linux-firmware: Add RTL8152/8153/8156 firmware

* Enable Realtek 8152/8153/8156 USB Ethernet adapter support

Enable kernel driver and install firmware for Realtek USB Ethernet
adapter. While at it, also enable some other common USB Ethernet
adapters which don't require firmwares.
2021-11-02 23:53:48 +01:00
Pascal Vizeli
8c1ff000f0
Simplify AppArmor with new OS-Agent SU (#1622) 2021-11-01 15:24:28 +01:00
Stefan Agner
8058392043
Compile Btrfs support as a module (#1623)
We don't use Btrfs as root file system, so there is no need to have it
compiled in by default.
2021-11-01 14:33:42 +01:00
Stefan Agner
6a8b69f793
Update Raspberry Pi kernel and firmware to 1.20211007/Linux 5.10.63 (#1618)
* RaspberryPi: Update kernel 5.10.63 - 1.20211007

* Bump buildroot

* buildroot 5ffdf6ccc5...73991f0fee (1):
  > package/rpi-firmware: bump version to 1.20211007
2021-10-28 10:50:24 +02:00
Stefan Agner
fe4468d789
Reintroduce systemd patches to fix hostname configuration (#1617)
Even though upstream changed the way hostname gets set, it still
requires changes to make it work on a bind mounted /etc/hostname file.
2021-10-28 01:39:16 +02:00
annuges
323cba6777
Add support for Btrfs (#1612)
Add support for Btrfs file system to the kernel to allow host OS and Add-ons to mount external disks formatted with it.
2021-10-28 01:35:37 +02:00
Stefan Agner
ff07728fa3
Remove git submodules before git checkout (#1611)
If a git submodule is converted to a regular git directory (e.g. when
moving from dev -> rel-6 branch), the directory is not properly cleaned
by the checkout action.

Remove the git submodule .git files which makes sure that git properly
reinitialize subdirectories, even if they have been a submodule before.

See also: https://github.com/actions/checkout/issues/624
2021-10-27 11:02:24 +02:00
Stefan Agner
e83e6f4712
Add Amber as new machine (#1569)
* Add Amber machine

Introduce a new machine for Amber. Store it under Raspberry Pi boards
since Amber is based on the Raspberry Pi Compute Module 4. This way we
can reuse existing scripts.

* Add kernel patches for Amber

Add kernel patches which add a custom device tree for Amber.

* Add device wipe support via GPIO button

Allow to wipe the device by pressing and holding the red button.

* Enable serial console by default

Enable serial console on the on-board USB-to-UART adapter as well as on
the GPIO header.

* Use 64-bit mode by default

Support only 64-bit for Amber, it is mature enough.
2021-10-22 11:25:50 +02:00
Stefan Agner
c7ec9468c0
Remove developer documentation (#1580)
Remove developer documentation in favor of the developer docs website.
2021-10-21 16:57:01 +02:00
Stefan Agner
b72acfa648
Synchronize Raspberry Pi config.txt with Raspberry Pi OS (#1601)
It seems that Raspberry Pi OS by default applies an overlay for
Raspberry Pi 4. Apply this change to the HAOS config.txt as well.
2021-10-19 01:43:59 +02:00
Stefan Agner
74fe7d4cb8
Make AppArmor independent of Supervisor service (#1592)
Currently the hassos-apparmor.service wants the
hassos-supervisor.service and vice-versa. This is unnecessary and leads
to activation of hassos-supervisor.service when reload/restart
hassos-apparmor.service (Supervisor is doing that on startup).

Make hassos-apparmor.service independent and add dependency as well as
ordering from hassos-supervisor.service side.
2021-10-15 01:36:02 +02:00
Stefan Agner
ce566167f2
Improve OS logging (#1590)
* Avoid duplicate log entries

So far the hassos-supervisor.service starts the hassos-supervisor script
which in turn attaches to the Supervisor container. This causes stdout
and stderr to be forwarded to the service unit, which in turn logs it in
the journal.

However, Docker too logs all stdout/stderr to the journal through the
systemd-journald log driver.

Do not attach to the Supervisor container to avoid logging the
Supervisor twice.

Note that this no longer forwards signals to the container. However, the
hassos-supervisor.service uses the ExecStop= setting to make sure the
container gets gracefully stopped.

* Use image and container name as syslog identifier

By default Docker users the container id as syslog identifier. This
leads to log messages which cannot easily be attributed to a particular
container (since the container id is a random hex string).

Use the image and container name as syslog identifier.

Note that the Docker journald log driver still stores the container id
as a separate field (CONTAINER_ID), in case the particular instance need
to be tracked.
2021-10-13 16:12:05 +02:00
Stefan Agner
b211c653c7
Fix y2038 file system warnings (#1589)
* Bump buildroot

* buildroot 3c5f87185d...5ffdf6ccc5 (1):
  > package/e2fsprogs: Create y2038 capable file systems by default

* Use inode size of 256 bytes for overlayfs

By default older versions of mkfs.ext4 create file systems with inode
size of 128 bytes. This does not allow for 64-bit timestamps, which
leads to y2038 compatibility warnings. Use 256 bytes inodes.
2021-10-13 16:07:13 +02:00
Stefan Agner
53dcfd3134
Fix fallout from Buildroot 2021.08.1 update (#1588)
* Remove dt-utils patches applied upstream

All patches are now applied upstream. With 2021.03.0 release no more
downstream patches are required.

* Bump buildroot to fix linux-firmware build issues

* buildroot f10577b836...3c5f87185d (3):
  > package/linux-firmware: add rtl8761b/rtl8761bu firmware
  > package/linux-firmware: bump version to 20210919
  > Revert "package/linux-firmware: add rtl8761b/rtl8761bu firmware"
2021-10-12 11:49:58 +02:00
Stefan Agner
eed6302ad8
Bump buildroot to 2021.08.1 (#1587)
* Bump to Buildroot 2021.08.1

Move to Buildroot 2021.08.1 using the 2021.08.x-haos branch. Some
patches on the previous branch 2021.02.x-haos have been applied upstream
meanwhile. Others required rather trivial rebasing.

This latest Buildroot release brings new versions of the following
components:
 - glibc 2.33
 - systemd 249.3
 - Networkmanager 1.32.2
 - BlueZ 5.60
 - Docker 20.10.8

The patch "Fix dhcp client" seems not to be necessary anymore. The
directory /var/lib/dhcp seems not in use when NetworkManager invokes
dhclient. It seems the leases which are typically stored in that
directory are managed inside NetworkManager.

* buildroot 2021.08.1..2021.08.x-haos (6)
  > package/rpi-firmware: bump version to 1.20210805
  > package/rpi-wifi-firmware: bump version to 883b726
  > package/linux-firmware: add rtl8761b/rtl8761bu firmware
  > package/docker-proxy: bump version to 64b7a4574d14
  > package/rpi-firmware: Allow to deploy multiple firmware files
  > network-manager: wpa_supplicant

* Bump Raspberry Pi Bluetooth helper scripts

With the update to Buildroot 2021.08.1, the bthelper fails with an error
org.bluez.Error.Busy when trying to power off the device. Presumably this
is a race condition which surfaced due to a change in Bluez 5.60:
348feb005a

Oct 11 14:32:21 homeassistant systemd[1]: Reached target Bluetooth Support.
...
Oct 11 14:32:21 homeassistant bluetoothd[412]: Bluetooth management interface 1.18 initialized
Oct 11 14:32:21 homeassistant systemd[1]: Started Raspberry Pi bluetooth helper.
Oct 11 14:32:21 homeassistant bthelper[417]: Raspberry Pi BDADDR already set
Oct 11 14:32:21 homeassistant bthelper[426]: [58B blob data]
Oct 11 14:32:21 homeassistant bthelper[426]: [59B blob data]
Oct 11 14:32:21 homeassistant bthelper[426]: Failed to set power off: org.bluez.Error.Busy
Oct 11 14:32:21 homeassistant systemd[1]: bthelper@hci0.service: Main process exited, code=exited, status=1/FAILURE
Oct 11 14:32:21 homeassistant systemd[1]: bthelper@hci0.service: Failed with result 'exit-code'.

The latest version of the pi-bluetooth package introduced a sleep before
powering off the device, however, presumably for a different reason:
ae2efdeee8 (diff-609c8a23261988c47afd40be9b012feb1d167de8761c1301e44e1864635c19e3)

Anyways, this latest version seems to also fix the above mentioned race
condition.
2021-10-12 01:08:04 +02:00
Stefan Agner
e0e270df1a
Wait for Docker daemon (#1586)
Sometimes the first command after starting the Docker daemon container
fails, presumably because the container did not start yet. Wait until
the Docker daemon is ready.
2021-10-11 16:06:36 +02:00
TJ Horner
f012f09d4f
Change barebox boot configs to support USB booting (#1575) 2021-10-07 21:43:49 +02:00
Stefan Agner
e819f05927
Fix Compute Module 4 USB driver (#1281) (#1577)
The BCM2711 has two USB 2.0 IPs: A Broadcom XHCI USB 2.0 controller and
a Synopsys DWC2 USB 2.0 Host/Device controller. When USB boot is used
the former is active. Make sure the driver has the correct device tree
compatible.
2021-10-07 14:02:04 +02:00
Stefan Agner
e916d9f93c
Move patch to fix U-Boot 2021.10 build (#1576)
We only have a single U-Boot version currently, so there is no value in
storing the patch file in a version specific directory. This makes sure
U-Boot 2021.10 final release also has fileenv support.
2021-10-07 14:01:55 +02:00
Stefan Agner
d8dfa88fb8
Replace Stale Bot with Stale GitHub Action (#1573) 2021-10-06 12:18:38 +02:00
Stefan Agner
565c473a75
Raspberry Pi U-Boot fixes (#1572)
* Add NVMe and XHCI USB driver fix for Raspberry Pi

Add patch which fixes NVMe read reliability and allows to compile the
XHCI USB driver (for Compute Module 4).

* Enable Broadcom XHCI driver for Compute Module 4

The BCM2711 has two USB 2.0 IPs: A Broadcom XHCI USB 2.0 controller and
a Synopsys DWC2 USB 2.0 Host/Device controller. When USB boot is used
the former is active. Make sure U-Boot has the driver built-in for that
IP.
2021-10-05 19:16:16 +02:00
Stefan Agner
a19870947a
Bump U-Boot to stable release 2021.10 (#1571) 2021-10-05 19:15:59 +02:00
Stefan Agner
bdc319d3df
Use file for cmdline.txt (#1568)
* Remove duplicate config.txt copy statement

* Use static cmdline.txt file

Instead of dynamically creating cmdline.txt use a static version of it.
This aligns with other boot loader/firmware configuration files and makes
it easier to customize the file per board.
2021-10-04 14:38:52 +02:00
Stefan Agner
8d69f395c2
Support board specific RPi firmware configuration (#1567)
Support optional board specific default RPi firmware configuration file
(config.txt). Also rename from boot-env.txt to config.txt since this
file is not read by the U-Boot boot loader but the Raspberry Pi specific
boot firmware.
2021-10-04 11:51:31 +02:00
Stefan Agner
8049dfb30c
Bump buildroot (#1565)
* buildroot f0b9df907a...291b4156c7 (2):
  > Merge tag '2021.02.5' into 2021.02.x-haos
  > package/rpi-firmware: bump version to 1.20210831
2021-10-04 10:31:02 +02:00
Stefan Agner
a4edece719
Linux: Update kernel 5.10.70 (#1564) 2021-10-04 10:06:37 +02:00