Commit Graph

2786 Commits

Author SHA1 Message Date
Jan Čermák
17d811a78f Backport patches for Raspberry Pi dwc2 driver (#4231)
Raspberry Pi Linux update to 6.12.34 broken some USB devices, mostly USB-Serial
converters connected to Yellow, but there are reports of some other peripherals
connected to RPi boards too.

This is a known RPi upstream issue [1] fixed by a PR [2] that's not been merged
to RPi stable kernel yet. Applying patches from this PR fixes the issues.

Fixes #4228, refs #4229

[1] https://github.com/raspberrypi/linux/issues/6941
[2] https://github.com/raspberrypi/linux/issues/6936
2025-08-14 17:33:51 +02:00
Jan Čermák
a722bdfd94 Merge branch 'main' into dev 2025-08-13 18:17:08 +02:00
Jan Čermák
7243db762e Make system timezone setting persistenly configurable (#4224)
To make system timezone configurable, we need to have /etc/localtime
writable, and it must be possible to atomically create a symlink from
this place, which means the whole parent folder must be writable. We
don't have /etc writable and can't use the usual bind mount for this.

Latest Systemd v258 has patch that allows setting an environment
variable that sets where the localtime should be written. This can be
persisted in the overlay partition, with a symlink from /etc/localtime
leading there, finally pointing to the actual zoneinfo file. If the
symlink doesn't exist, create it by hassos-overlay script (it's not
really needed as UTC is the default, but Systemd does the same if you
change from non-UTC timezone back to UTC).

Also disable BR2_TARGET_LOCALTIME, so /etc/localtime and /etc/timezone
(the latter is only informative and non-standard) are not written by the
tzdata package build.
2025-08-13 18:15:57 +02:00
Jan Čermák
1078620de9 Bump OS to release version 16.1 16.1 2025-08-12 16:48:03 +02:00
dependabot[bot]
69ff24a59a Bump actions/download-artifact from 4 to 5 (#4222)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 21:08:24 +02:00
dependabot[bot]
756404816d Bump docker/login-action from 3.4.0 to 3.5.0 (#4220)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 20:52:08 +02:00
dependabot[bot]
38ea463d5f Bump actions/checkout from 4 to 5 (#4221)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 20:19:38 +02:00
Jan Čermák
cbcf9ae34e Migrate docs to developers.home-assistant.io (#4215)
* Migrate docs to developers.home-assistant.io

Move all documentation (except the kernel.md, for which it makes sense to be
kept here) to developers.home-assistant.io.

Just bluetooth.md was intentionally not preserved, as the information value was
low and it was out of date anyway.

See home-assistant/developers.home-assistant#2748

* Fix reference links
2025-08-07 11:35:02 +02:00
Jan Čermák
4c09ceb656 Prevent root from running the enter.sh helper script (#4216)
* Prevent root from running the enter.sh helper script

Since configure doesn't like being ran as root, check in the enter.sh script
that the user running it is not UID/GID 0. The script itself takes care of
running what needs to be executed privileged with explicit sudo commands.

Fixes #4214

* Reword the error message


Co-authored-by: Stefan Agner <stefan@agner.ch>
2025-08-06 17:27:44 +02:00
Jan Čermák
e7f314273d Bump OS to development version 16.2.dev0 2025-08-04 16:39:38 +02:00
Jan Čermák
3c41e4b2dc Bump OS to pre-release version 16.1.rc1 16.1.rc1 2025-08-04 15:56:59 +02:00
Jan Čermák
3d3efd2f55 Fix rpi-eeprom-update when device boots from NVMe (#4205)
* Fix rpi-eeprom-update when device boots from NVMe

The boot partition detection doesn't work correctly if the device boots from
NVMe. Also the mounting step is unnecessary in HAOS as we can assume the boot
partition to be always mounted.

Fix the issues by modifying the bootfs detection logic to always use /mnt/boot.
However, still fail in case when flashrom can't be used (usually on CM4). On
CM5, or on Pi 5 booted from NVMe, update process works without further changes
because the firmware can be flashed directly from the running system using
flashrom.

Fixes #4157

* Fix typo in patch commit message
2025-08-04 11:44:10 +02:00
Jan Čermák
6207807003 Bump to latest default FW version (2025-05-08) in rpi-eeprom-update (#4208)
Make rpi-eeprom-update install latest default FW version when
`rpi-eeprom-update -a` is executed.
2025-08-04 11:43:10 +02:00
Jan Čermák
a7bef75516 RaspberryPi: Update kernel to 6.12.34 - stable_20250702 (#4206)
* RaspberryPi: Update kernel to 6.12.34 - stable_20250702

* Update rpi-firmware to match kernel 6.12.34

* buildroot 141bf1f9fa...b73c8daa24 (1):
  > package/rpi-firmware: update to 7022a89 (for stable_20250702)
2025-08-04 11:26:25 +02:00
Jan Čermák
0d84f0d861 Suppress new warnings from shellcheck v0.11.0 (#4207)
Shellcheck v0.11.0 added new warnings which raise false positive on the trap
function in the OTA hook script. Suppress also that warning.
2025-08-04 11:14:15 +02:00
Jan Čermák
32033293b6 Linux: Update kernel to 6.12.41 (#4200)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.41
2025-08-04 10:03:53 +02:00
Jan Čermák
c39ceed37e Update genimage to avoid unbootable RPi 5 images when flashed from Windows (#4199)
Update genimage so the images are not mangled (by the primary GPT relocated)
when flashed from Windows. Otherwise, boot media flashed from Windows isn't
compatible with bootloader older than 2024-10-10.

This is a regression of #3437. The Buildroot update in #4027 updated genimage
to v18, yet the downstream patch that was later replaced by a different one in
upstream was not merged to that version yet and the patch was incorrectly
removed. In v19 there's another fix in the offset calculation logic that sets
the first usable LBA again to a value that prevents Windows from mangling the
image.

* buildroot 01604756d2...141bf1f9fa (1):
  > package/genimage: bump version to 19

Fixes #4160
2025-08-04 10:03:41 +02:00
Jan Čermák
8fa0cb1b58 Update to Docker v28.3.3 and containerd v2.1.4 (#4198)
* buildroot 9366ce5635...01604756d2 (3):
  > package/docker-cli: bump version to v28.3.3
  > package/docker-engine: bump version to v28.3.3
  > package/containerd: bump version to v2.1.4
2025-07-31 23:15:31 +02:00
Jan Čermák
7e1e8b6f5d Fix systemd-journal-gatewayd 100% CPU issue when watching logs (#4197)
When follow request for logs is issued that points to/beyond the end of logs, a
busy loop in systemd-journal-gatewayd can be triggered which manifests as
systemd-journal-gatewayd consuming 100% CPU. Since threads are used for each
request, the logs may still work but the CPU will be hogged until the restart
of systemd-journal-gatewayd, Supervisor, or the whole system.

Backport the patch submitted upstream that addresses this issue.

Fixes #4190
2025-07-31 11:06:59 +02:00
Jan Čermák
10e401e2f6 Linux: Update kernel to 6.12.40 (#4196)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.40
2025-07-31 11:06:49 +02:00
Michal Šimek
9ccda43197 Enable driver for Xilinx AMS adc sensor (#4192)
Sensor is used for chip monitoring to ensure device is operating in good
condition.
2025-07-24 12:09:04 +02:00
Jan Čermák
c84729fae3 Generate Virtual Disk Image (VDI) for aarch64 build (#4187)
As there is VirtualBox available for aarch64 on Apple Macs, provide OS images
also in the native VirtualBox format, which also grants the ability to resize
existing disk images, unlike VMDK.

Fixes #4171 & fixes #4172
2025-07-24 11:55:00 +02:00
Jan Čermák
57f18192cc Enable netfilter NETMAP target support in kernel (#4186)
Enable option for the netfilter NETMAP target, as it can be useful for some
users. Until now it's been enabled only for some targets as an option coming
from upstream defconfigs; make sure it's available for all targets.

Fixes #4183
2025-07-24 11:54:45 +02:00
Jan Čermák
6ef83eb25d Enable Intel audio driver for virtualized sound on aarch64 (#4185)
Enable Intel audio driver which should make it possible to use virtualized
sound on aarch64 VMs with intel-hda emulation.

Fixes #4179
2025-07-24 11:54:36 +02:00
Jan Čermák
c9b4e7e880 Linux: Update kernel to 6.12.39 (#4181)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.39
2025-07-21 17:34:15 +02:00
Stefan Agner
d21679b3c6 Drop experimental and ip6tables config (#4173)
The ip6tables configuration is now enabled by default since Docker 27
(see https://github.com/moby/moby/pull/47747). The experimental config
got introduced with the ip6tables flag in #2051. There is no other
experimental feature used from what I am aware of, so lets remove the
experimental flag as well.
2025-07-16 16:14:32 +02:00
Jan Čermák
b239b9152f Linux: Update kernel to 6.12.38 (#4170)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.37
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.38
2025-07-16 15:39:10 +02:00
Jan Čermák
ecce801263 Linux: Update kernel to 6.12.36 (#4148)
* Linux: Update kernel to 6.12.36

* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.36

* Remove patches adding support for RTL8125D

These patches are not necessary anymore as all the three commits are included
in 6.12.36.

Refs #4014
2025-07-14 16:17:21 +02:00
Jan Čermák
bd140acc92 Merge branch 'main' into dev 2025-07-09 15:30:08 +02:00
Jan Čermák
f6fab12683 Bump OS to release version 16.0 16.0 2025-07-09 12:05:44 +02:00
Jan Čermák
d357adfd69 Bump OS to pre-release version 16.0.rc3 16.0.rc3 2025-07-03 17:06:42 +02:00
Jan Čermák
2fb98a4a73 Unbind Broadcom HCI driver on RPi/CM without WiFi (#4139)
Unbind the Bluetooth driver for Broadcom HCI module before the bluetooth
service starts if running on board without WiFi module. This is a replacement
for #2948 but using a more targeted approach for removing the particular driver
and better detection of no-WiFi (thus no-Bluetooth) models.

This still means the driver will be probed and couple of lines printed when it
fails to set baudrate and reset the module, yet this should be benign, at least
the all-zero MAC device no longers appears in Bluetooth stack.

(cherry picked from commit aff1f81817)
2025-07-03 17:06:01 +02:00
Jan Čermák
3c1aa91376 Fix Hailo v4.21.0 driver traces due to missing lock (#4138)
Backport patch for traces appearing since v4.21.0 bump, introduced in #4095.
This change is not available in any newer tagged release of the driver and the
commit message upstream is messed up, hence the reworded patch.

(cherry picked from commit 286f5a66ca)
2025-07-03 17:05:58 +02:00
Jan Čermák
6735603d89 Make all Raspberry Pi LAN drivers built-in (#4137)
Make sure that all LAN drivers used on Raspberry Pi boards are built-in.
Although they are defined as such in the base defconfig, we change them to
modules in device support includes. For simplicity and keeping kernel config
close to the RPi OS config, change them all to built-in in the main RPi include
for all RPi targets.

This is not only a formal change - at least one regression is known if the PHY
driver on RPi 5 is not built-in and MAC driver is - in that case the PHY hooked
up to the RP1 isn't initialized properly, and it is reported as "Generic PHY"
instead, e.g. breaking the control of LEDs through dtparams. Relevant dmesg log
before the change:

 macb 1f00100000.ethernet end0: PHY [1f00100000.ethernet-ffffffff:01] driver [Generic PHY] (irq=POLL)

And after the change:

 macb 1f00100000.ethernet eth0: PHY [1f00100000.ethernet-ffffffff:01] driver [Broadcom BCM54213PE] (irq=POLL)

Fixes #3333

(cherry picked from commit a338b67144)
2025-07-03 17:05:55 +02:00
Stefan Agner
19ca37696a Update Docker to v28.3.0 (#4135)
Update Docker and related services to latest versions.

* buildroot 758ae477cd...9366ce5635 (6):
  > package/runc: bump version to v1.3.0
  > package/containerd: bump version to v2.1.3
  > package/docker-cli: bump version to v28.3.0
  > package/docker-engine: bump version to v28.3.0
  > package/docker-cli: Fix go module version information
  > package/docker-engine: Fix go module version information

(cherry picked from commit bc484f6409)
2025-07-03 17:05:53 +02:00
Jan Čermák
9d7f8a234f Mount Systemd Journal socket to the Supervisor container (#4133)
Bind-mount Systemd Journal socket to the Supervisor container. This way
Supervisor can use the socket directly for writing log entries using the
Systemd native Journal protocol [1] instead of logging to stderr of the
container.

[1] https://systemd.io/JOURNAL_NATIVE_PROTOCOL/

(cherry picked from commit dffbe89147)
2025-07-03 17:05:50 +02:00
Jan Čermák
7c7cbf40be Do not disable RPi Bluetooth if Wi-Fi is not present (#4132)
This reverts commit eab18076ad.

This change was added in #2948 as a workaround for all-zero adapter appearing
in the HA frontend (#2944). With changes implemented in [1], this is no longer
needed, the only minor issue is that the ghost adapter still appears in
hciconfig (and other utilities') output as reported in [2]. However, this
should be less problematic than the Bluetooth being unavailable if WiFi is
disabled through disable-wifi DT overlay, so let's start with removing the
workaround.

Fixes #2975

[1] https://github.com/Bluetooth-Devices/bluetooth-adapters/pull/105
[2] https://github.com/raspberrypi/linux/issues/5756

(cherry picked from commit 17ae2d4741)
2025-07-03 17:05:47 +02:00
Jan Čermák
a5906f52e3 Make tests involving reboot more robust (#4131)
The tests that are involving reboots are flaky and fail when waiting for the
command to return or when waiting for a new login prompt. To mitigate this, do
not use run_check, as it needs the shell prompt to reappear, and instead use
sendline and wait up to a minute for the GRUB message.

(cherry picked from commit 9803f5fb4f)
2025-07-03 17:05:44 +02:00
Jan Čermák
c33657e568 Linux: Update kernel to 6.12.35 (#4130)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.35

(cherry picked from commit 1e3773c68a)
2025-07-03 17:05:38 +02:00
Jan Čermák
aff1f81817 Unbind Broadcom HCI driver on RPi/CM without WiFi (#4139)
Unbind the Bluetooth driver for Broadcom HCI module before the bluetooth
service starts if running on board without WiFi module. This is a replacement
for #2948 but using a more targeted approach for removing the particular driver
and better detection of no-WiFi (thus no-Bluetooth) models.

This still means the driver will be probed and couple of lines printed when it
fails to set baudrate and reset the module, yet this should be benign, at least
the all-zero MAC device no longers appears in Bluetooth stack.
2025-07-02 17:07:36 +02:00
Jan Čermák
286f5a66ca Fix Hailo v4.21.0 driver traces due to missing lock (#4138)
Backport patch for traces appearing since v4.21.0 bump, introduced in #4095.
This change is not available in any newer tagged release of the driver and the
commit message upstream is messed up, hence the reworded patch.
2025-07-02 16:01:01 +02:00
Jan Čermák
a338b67144 Make all Raspberry Pi LAN drivers built-in (#4137)
Make sure that all LAN drivers used on Raspberry Pi boards are built-in.
Although they are defined as such in the base defconfig, we change them to
modules in device support includes. For simplicity and keeping kernel config
close to the RPi OS config, change them all to built-in in the main RPi include
for all RPi targets.

This is not only a formal change - at least one regression is known if the PHY
driver on RPi 5 is not built-in and MAC driver is - in that case the PHY hooked
up to the RP1 isn't initialized properly, and it is reported as "Generic PHY"
instead, e.g. breaking the control of LEDs through dtparams. Relevant dmesg log
before the change:

 macb 1f00100000.ethernet end0: PHY [1f00100000.ethernet-ffffffff:01] driver [Generic PHY] (irq=POLL)

And after the change:

 macb 1f00100000.ethernet eth0: PHY [1f00100000.ethernet-ffffffff:01] driver [Broadcom BCM54213PE] (irq=POLL)

Fixes #3333
2025-07-02 16:00:52 +02:00
Stefan Agner
bc484f6409 Update Docker to v28.3.0 (#4135)
Update Docker and related services to latest versions.

* buildroot 758ae477cd...9366ce5635 (6):
  > package/runc: bump version to v1.3.0
  > package/containerd: bump version to v2.1.3
  > package/docker-cli: bump version to v28.3.0
  > package/docker-engine: bump version to v28.3.0
  > package/docker-cli: Fix go module version information
  > package/docker-engine: Fix go module version information
2025-07-01 17:33:30 +02:00
Jan Čermák
dffbe89147 Mount Systemd Journal socket to the Supervisor container (#4133)
Bind-mount Systemd Journal socket to the Supervisor container. This way
Supervisor can use the socket directly for writing log entries using the
Systemd native Journal protocol [1] instead of logging to stderr of the
container.

[1] https://systemd.io/JOURNAL_NATIVE_PROTOCOL/
2025-07-01 17:32:18 +02:00
Jan Čermák
17ae2d4741 Do not disable RPi Bluetooth if Wi-Fi is not present (#4132)
This reverts commit eab18076ad.

This change was added in #2948 as a workaround for all-zero adapter appearing
in the HA frontend (#2944). With changes implemented in [1], this is no longer
needed, the only minor issue is that the ghost adapter still appears in
hciconfig (and other utilities') output as reported in [2]. However, this
should be less problematic than the Bluetooth being unavailable if WiFi is
disabled through disable-wifi DT overlay, so let's start with removing the
workaround.

Fixes #2975

[1] https://github.com/Bluetooth-Devices/bluetooth-adapters/pull/105
[2] https://github.com/raspberrypi/linux/issues/5756
2025-07-01 17:32:07 +02:00
Jan Čermák
9803f5fb4f Make tests involving reboot more robust (#4131)
The tests that are involving reboots are flaky and fail when waiting for the
command to return or when waiting for a new login prompt. To mitigate this, do
not use run_check, as it needs the shell prompt to reappear, and instead use
sendline and wait up to a minute for the GRUB message.
2025-07-01 09:44:12 +02:00
Jan Čermák
1e3773c68a Linux: Update kernel to 6.12.35 (#4130)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.35
2025-06-30 15:53:28 +02:00
Jan Čermák
da9c5312f3 Bump OS to development version 16.1.dev0 2025-06-30 13:47:54 +02:00
Jan Čermák
abd9ad4398 Bump OS to pre-release version 16.0.rc2 16.0.rc2 2025-06-26 16:58:40 +02:00
Jan Čermák
6a61f25668 Fix journal-gatewayd returning duplicated lines when following logs (#4124)
When following logs in Home Assitant frontend, the last line may be duplicated
over time when no new lines are added. This is because systemd-journal-gatewayd
incorrectly processed the num_skip part of the Range header, always returning
the last entry even when it should have been skipped.

Backport the patch for Systemd that processes the header correctly.

Fixes #4101

(cherry picked from commit 4a4da64f31)
2025-06-26 16:54:17 +02:00