2127 Commits

Author SHA1 Message Date
Stefan Agner
230a50587f
Bump OS to pre-release version 11.3.rc1 11.3.rc1 2023-12-21 15:06:11 +01:00
Stefan Agner
de82d0b412
Linux: Update kernel 6.1.69 (#3009) 2023-12-21 09:45:54 +01:00
Stefan Agner
7ef16072c6
Bump buildroot to update dbus-broker to 35 (#3008)
* buildroot 4c89661fd1...2d89a0f9b6 (2):
  > package/dbus-broker: bump to release 35
  > Revert "package/dbus-broker: avoid blocking due to missing entropy"
2023-12-21 09:09:54 +01:00
Jan Čermák
13e0f13f3c
Enable driver for Realtek card readers (#3005)
Enable PCI card reader found on some Intel NUC models, along with the USB
drivers as well.

Adds two new modules (listed with size):

30104   /lib/modules/6.1.68-haos/kernel/drivers/misc/cardreader/rtsx_usb.ko
167240  /lib/modules/6.1.68-haos/kernel/drivers/misc/cardreader/rtsx_pci.ko

Fixes #2688
2023-12-20 17:41:54 +01:00
Jan Čermák
5a9be34007
Add script for checking resulting kernel config (#3006)
There is bunch of kernel config options that are not propagated
correctly to the kernel configuration after fragments are merged
and processed by Kconfig. Current Buildroot tools are not good at
discovering these - while we cleaned up most inconsistencies by using
linux-diff-config and output from the merge_config.sh script, there
are still options that were removed or get a different value than
intended because of dependencies, etc.

This commit adds a Python script that is using Kconfiglib to parse
current kernel's Kconfig files and the generated .config and compare
the requested values from individual kernel config fragments. The
script can be used manually by running `make linux-check-dotconfig`
from the buildroot directory (with path to BR2_EXTERNAL directory set)
and it's called also from the CI, where it generates Github Workflow
warning annotations when some of the values are not present or when set
incorrectly.

The kconfiglib.py is checked-in to the repo as well, because the library
is currently abandoned on PyPI and packaged version has a bug that causes
errors parsing Kconfigs in newer Linux versions, fixed in outstanding
pull request ulfalizer/Kconfiglib#119 - so version from this PR is used
here.

If pypi/support#2526 is ever resolved, we could remove it from our repo
and use pip for installing the package as a requirement during build
of the build container.
2023-12-20 17:41:39 +01:00
Jan Čermák
2e7aa1dc6a
Add rtw89, mt7921 and mt7922 WiFi and BT firmware (#3003)
Add new firmwares and enable them for all targets.
Bloat in rootfs in my x86_64 test build was ~2.16 MiB.

Buildroot bump:

* buildroot 8a75878da4...4c89661fd1 (2):
  > package/linux-firmware: add WiFi and BT firmware for MT7921 and MT7922
  > package/linux-firmware: add rtw89 firmware files
2023-12-20 17:39:04 +01:00
Jan Čermák
d116bba470
Enable virtio-mem and DMI tables/fw_cfg sysfs for aarch64 and ova (#3004)
Enable options that can be useful on virtualized systems as modules.

Fixes #2987
2023-12-20 16:16:53 +01:00
Jan Čermák
069614a968
Adjust build to allow running from forks or feature branches (#2998)
Make it possible to run build on feature branches by adding a flag that
can be used to select whether the build output will be uploaded to the
R2 artifacts bucket or kept only as build artifact on GH. The latter is
also used for 3rd party repos, allowing builds in forked repositories.

Feature builds are using Unix timestamp as the dev version suffix. This
makes them easily distiguishable, yet it makes them appear to be newer
than standard daily dev version builds when compared by AwesomeVersion.
2023-12-19 16:57:26 +01:00
Stefan Agner
b9efb8edaf
Enable WPA3 support in wpa_supplicant to support WPA3-SAE (#3000) 2023-12-19 15:43:18 +01:00
Jan Čermák
722cdf26f4
Enable ZSTD compression of firmware files (#3001)
Compress firmware files from linux-firmware using ZSTD algorithm.
This should grant us some more space to add more firmwares and should
not have any major performance impact, because firmwares are not accessed
frequently.

Includes buildroot submodule bump:
* buildroot 07e08e01b2...8a75878da4 (1):
  > linux-firmware: add option for firmware files compression
2023-12-19 15:31:19 +01:00
dependabot[bot]
e4fab0ab93
Bump actions/upload-artifact from 3 to 4 (#2997)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-18 21:58:24 +01:00
dependabot[bot]
7fc91c7bd7
Bump actions/download-artifact from 3 to 4 (#2996)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-18 17:06:50 +01:00
Stefan Agner
779b75f10e
Linux: Update kernel 6.1.68 (#2991) 2023-12-14 17:59:51 +01:00
Jan Čermák
f605dd43ec
Add build summary for each board build (#2990)
This allows for rudimentary image/partition size tracking between builds,
potentially this could be further extended with more useful information
about the build (TBD).
2023-12-14 15:49:40 +01:00
Jan Čermák
fb13b2bff8
Remove Raspberry Pi 1/Zero from docs (#2986)
Its support has been removed 2 years ago.
2023-12-12 15:01:46 +01:00
Stefan Agner
5b3447ae38
Add Raspberry Pi 5 to GitHub Action (#2985) 2023-12-12 13:34:31 +01:00
Stefan Agner
8e1016dcaf
Initial Raspberry Pi 5 support (#2914)
* Add initial Raspberry Pi 5 buildroot config

* Add machine-id support via cmdline.txt

* Add new entry if entry is missing

* Don't overwrite cmdline.txt when adding machine-id

Use sed to append the new cmdline parameter to the first line.

* Skeleton script for RAUC custom bootloader interface

* Deploy kernel/device-tree into a RAUC slot specific directory

This allows us to use the os_prefix feature to switch between slot A and
B. Compared to the boot_partition option, this option allows to use a
shared config.txt and cmdline.txt, which makes it more like how HAOS
currently works on other Raspberry Pis.

* Deploy new kernel/device-tree to correct slot on installation

* Increase boot size to 128MB

This makes sure we can store up to three kernels (slot A, B and an
temporary one while installing the OTA update).

* Initial tryboot implementation using os_prefix

* Make sure to delete the old slot completely

* Add Busybox xargs for tryboot bootloader script

* Compare tryboot bootloader file silently

* Revert "Increase boot size to 128MB"

This reverts commit 7f2c69b58f02f500d6aeee4f0a419046899b5e38.

* Use compressed kernel

* Address shellcheck

* Address shellcheck issue in rauc-hook

* Fix shellcheck for rpi-tryboot.sh

* Do not follow source - it gets checked separately

* Correctly set the slot to boot

* Apply suggestions from code review

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

* Drop serial console from default cmdline.txt

* Resync rpi5_64_defconfig with rpi4_64_defconfig

* Improve machine-id match

Only match actual hexadecimal characters.

* Deploy firmware overlays to OS prefix directory

* Add Raspberry Pi 5 to documentation

* Bump buildroot

* buildroot fd1dc86f40...f13ad03408 (1):
  > linux: add in-tree device tree overlay support

* Install device tree overlays from Kernel sources

* Drop RPi RF modules for now

No Raspberry Pi 5 specific device tree overlays are  available, drop RPi
RF mod for now.

* Use Raspberry 5 specific identifiers for Supervisor/OS Agent

* Bump buildroot

* buildroot f13ad03408...07e08e01b2 (1):
  > linux: fix add in-tree device tree overlay support

* Revert "Drop RPi RF modules for now"

This reverts commit 46fc1701e4b66dab7367d8a0face79cfa3b98cbd.

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-12-12 13:19:26 +01:00
Stefan Agner
ac089a2d8e
Linux: Update kernel 6.1.67 (#2984) 2023-12-12 09:20:50 +01:00
dependabot[bot]
77c7def4e3
Bump actions/setup-python from 4 to 5 (#2981)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-11 15:24:01 +01:00
dependabot[bot]
c6ca14182b
Bump actions/stale from 8.0.0 to 9.0.0 (#2980)
Bumps [actions/stale](https://github.com/actions/stale) from 8.0.0 to 9.0.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v8.0.0...v9.0.0)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-11 15:23:33 +01:00
Jan Čermák
1e6deab48b
Linux: Update kernel 6.1.66 (#2979) 2023-12-11 10:51:20 +01:00
Jan Čermák
dff282ff00
Bump brcmfmac_sdio-firmware-rpi to sync with RPi OS (#2971)
* buildroot 836f7e7b5e...fd1dc86f40 (1):
  > brcmfmac_sdio-firmware-rpi: update to sync firmware with RPi OS, add new symlinks
2023-12-08 13:23:27 +01:00
Jan Čermák
1211b24c7f
Add image size check to hdd-image.sh (#2965)
There is no sanity check when creating OS images, so when some of the
partitions gets too big, part of its data may get overwritten by the
following partition, resulting in corrupted image. Add checks for the
defined partition sizes and bail out if they're too big.
2023-12-05 11:38:33 +01:00
Stefan Agner
d427248a05
Merge branch 'main' into dev 2023-12-04 16:12:59 +01:00
Stefan Agner
6579b978d0
Bump OS to release version 11.2 11.2 2023-12-04 15:00:06 +01:00
Stefan Agner
1ffaec3acb
Fix Supervisor image corruption detection (#2953)
* Fix Supervisor image corruption detection

When multiple images match the reference, multiple IDs are passed as a
single argument to docker image rm, leading to an error:
Error response from daemon: page not found

Make sure to pass the ids as separate argument to make the delete work
in any case.

* Cleanup reusing Supervisor from an old/unused reference

As noted in #2113, we don't need this logic anymore after a major OS
releases. So simply drop the logic to also make the image corruption
detection work again.

* Make sure image IDs are sorted to make them unique
2023-12-04 14:58:08 +01:00
Jan Čermák
934273e344
Backport support for Netgear AXE3000/A8000 and Comfast CF-952AX (#2962)
Current mainline contains support for two more WiFi cards in the mt7921u
driver that only use a proprietary VID/PID but are compatible with the
standard driver. Backport support for those via a simple driver patch.

Fixes #2926
2023-12-04 13:23:22 +01:00
Jan Čermák
da40ca2271
Linux: Update kernel 6.1.65 (#2960) 2023-12-04 13:23:13 +01:00
Jan Čermák
a79e3b270c
RaspberryPi: Update kernel 6.1.63 - stable_20231123 (#2956)
* RaspberryPi: Update kernel 6.1.63 - stable_20231123

* Bump rpi-firmware to latest stable version

* buildroot 2b6996211e...836f7e7b5e (1):
  > package/rpi-firmware: bump to version for stable_20231123 kernel
2023-12-01 18:14:01 +01:00
Stefan Agner
20295a5f0b
Fix RAUC certificate check (#2955)
Check the right environment variable when determining if RAUC
certificates through secrets are provided.
2023-11-30 17:49:16 +01:00
Stefan Agner
26e96caef6
Linux: Update kernel 6.1.64 (#2954) 2023-11-30 14:45:55 +01:00
Stefan Agner
c59c887a53
Fix Supervisor image corruption detection (#2953)
* Fix Supervisor image corruption detection

When multiple images match the reference, multiple IDs are passed as a
single argument to docker image rm, leading to an error:
Error response from daemon: page not found

Make sure to pass the ids as separate argument to make the delete work
in any case.

* Cleanup reusing Supervisor from an old/unused reference

As noted in #2113, we don't need this logic anymore after a major OS
releases. So simply drop the logic to also make the image corruption
detection work again.

* Make sure image IDs are sorted to make them unique
2023-11-30 14:41:44 +01:00
Jan Čermák
2c6d0de965
Enable more WiFi drivers for all platforms (#2951)
Preemptively enable larger set of WiFi drivers for all platforms and add more firmwares for them with the aim to harmonize WiFi device support among all boards and to have implicit support of devices that users might want to use.  Targets `generic_aarch64`, `generic_x86_64` and `ova` also include options and firmwares for cards that are using PCI/PCIe bus - support for these is in a separate config fragment.

Especially the `generic_x86_64` is currently very tight with the rootfs space, so I had to do some triaging and select only sensible drivers and firmwares - especially archaic PCMCIA devices or devices not supporting only 802.11g or lower standards were among the first that I removed during the triaging - we can consider enabling those but this time on an someone's explicit need to have them enabled.

This closes #2815 and replaces large part of #2761, also potentially addresses (at least) these: #2806, #2783, #2841, #2776, #2725, #2600

-------------

* Remove WiFi options from generic and board kernel config fragments
* Enable MMC in OVA kernel
   This is needed for SDIO drivers to work. Use the same options as we
   currently use for generic_x86_64.
* Add CRYPTO_MICHAEL_MIC to the common kernel config
   This is requirement for TKIP and is a dependency of ATH11K driver.
* Add kernel config fragments with wireless cards support
* Add firmwares for WiFi cards
* Enable more Bluetooth device drivers
2023-11-30 14:19:05 +01:00
Stefan Agner
e524a5e03d
Bump OS to pre-release version 11.2.rc2 11.2.rc2 2023-11-28 17:24:46 +01:00
Stefan Agner
eab18076ad
Remove kernel HCI driver if no WiFi/Bluetooth module present (#2944) (#2948)
* Remove kernel HCI driver if no WiFi/Bluetooth module present (#2944)

If the WiFi/Bluetooth module is not present on the SDIO bus, remove the
HCI driver. This avoids hci0 interface to be present. Current Home
Assistant Core versions show a Bluetooth device as soon as a hci device
is present. With this change there won't be a Bluetooth device shown.

* Update buildroot-external/package/pi-bluetooth/hcidisable.service

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-11-28 17:24:09 +01:00
Stefan Agner
376e4f9296
Do not start hciuart.service/bthelper@hci0.service if krnbt is used (#2947)
* Do not start hciuart.service if krnbt is used

Avoid starting (and failing to start) hciuart.service if krnbt is used.
This avoid unnecessary failed services showing up.

* Update buildroot-external/package/pi-bluetooth/hciuart.service

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

* Drop duplicate bluetooth in path

* Avoid bthelper@hci0.service failing

* Revert "Avoid bthelper@hci0.service failing"

This reverts commit f79777e63ec83ab45f27fbecb2da8b0c97992c64.

* Add ExecConditiono to bthelper@.service as well

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-11-28 17:24:04 +01:00
Stefan Agner
9235649bbd
Remove kernel HCI driver if no WiFi/Bluetooth module present (#2944) (#2948)
* Remove kernel HCI driver if no WiFi/Bluetooth module present (#2944)

If the WiFi/Bluetooth module is not present on the SDIO bus, remove the
HCI driver. This avoids hci0 interface to be present. Current Home
Assistant Core versions show a Bluetooth device as soon as a hci device
is present. With this change there won't be a Bluetooth device shown.

* Update buildroot-external/package/pi-bluetooth/hcidisable.service

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-11-28 17:23:08 +01:00
Stefan Agner
93a2d8a19b
Do not start hciuart.service/bthelper@hci0.service if krnbt is used (#2947)
* Do not start hciuart.service if krnbt is used

Avoid starting (and failing to start) hciuart.service if krnbt is used.
This avoid unnecessary failed services showing up.

* Update buildroot-external/package/pi-bluetooth/hciuart.service

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>

* Drop duplicate bluetooth in path

* Avoid bthelper@hci0.service failing

* Revert "Avoid bthelper@hci0.service failing"

This reverts commit f79777e63ec83ab45f27fbecb2da8b0c97992c64.

* Add ExecConditiono to bthelper@.service as well

---------

Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2023-11-28 17:18:50 +01:00
Stefan Agner
c3b9912e2e
Generate self-signed certificates for development (#2943)
* Generate self-signed certificates for development

To simplify development generate a self-signed certificate on first
build. Also make sure that the self-signed certificate is being added
the RAUC keyring so that manual updates can be performed.

* Add self-signed certificat independent of deployment type

* Add a warning when building with self-signed certificate
2023-11-27 18:36:12 +01:00
dependabot[bot]
741498c92b
Bump dessant/label-actions from 4.0.0 to 4.0.1 (#2946)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-27 14:38:45 +01:00
Stefan Agner
d7f49ab9ff
Bump OS to development version 11.3.dev0 2023-11-21 10:03:33 +01:00
Stefan Agner
b37dc33e5c
Bump OS to pre-release version 11.2.rc1 11.2.rc1 2023-11-21 09:54:06 +01:00
Jens Maus
5891250bd1
Bump rpi-rf-mod dt overlay to latest version (#2921)
* Bump rpi-rf-mod dt overlay to latest version

* updated to 1.13.1
2023-11-21 09:52:03 +01:00
Jan Čermák
1ea0bb7bf4
Linux: Update kernel 6.1.63 (#2937) 2023-11-20 17:28:25 +01:00
Jan Čermák
f986d7f690
Bump buildroot to v2023.02.7 (#2936)
* buildroot 04e4585bec...2b6996211e (2):
  > Merge tag '2023.02.7' into 2023.02.x-haos
  > Merge tag '2023.02.6' into 2023.02.x-haos
2023-11-20 17:19:49 +01:00
dependabot[bot]
9fd789cdb5
Bump docker/build-push-action from 5.0.0 to 5.1.0 (#2935)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5.0.0...v5.1.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-20 14:15:27 +01:00
dependabot[bot]
1848fd7555
Bump actions/github-script from 6 to 7 (#2934)
Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-20 14:14:51 +01:00
Jan Čermák
5d11e16150
Fix miniUART on Yellow with kernel HCI init enabled (#2931)
Bluetooth initialization was broken on Yellow because RPi's kernel
started to use initialization by the kernel driver by default, yet
changes from the miniuart-bt overlay are applied directly to Yellow
DTS and had to be updated too. This commit replaces the previous
patch forcing the miniUART usage for Bluetooth with a new one which
is based on the current miniuart-bt-overlay.dts.
2023-11-16 15:55:14 +01:00
Jan Čermák
7c3cee049b
Bump buildroot to fix rpi-firmware hash (#2930)
* buildroot a48cc458e7...04e4585bec (1):
  > package/rpi-firmware: update package tarball hash
2023-11-16 11:47:46 +01:00
Jan Čermák
c94b29a9cc
Bump Raspberry Pi firmware to latest stable version (#2929)
Also added a little warning to the RPi kernel bump script, so the
future me/us don't do the same mistake as I did.

* buildroot 20ea6bedda...a48cc458e7 (1):
  > package/rpi-firmware: bump to version for stable_20231030 kernel
2023-11-15 18:52:27 +01:00