1
0
mirror of https://github.com/home-assistant/operating-system.git synced 2026-02-15 07:29:08 +00:00
Commit Graph

1907 Commits

Author SHA1 Message Date
Jan Čermák
5e4b446b29 Linux: Update kernel to 6.12.58 (#4410)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.58
2025-11-20 15:45:02 +01:00
Jonathan Marshall
31b79a7504 Add support for QingHeng CH9200 USB ethernet adapters (#4400) 2025-11-19 12:05:06 +01:00
Jan Čermák
fd8dc64d0d Remove Docker patch already included in v28.5.2 (#4398)
This reverts commit b3a9e76521.
2025-11-11 21:09:36 +01:00
Jan Čermák
b3755e9f45 Use correct per-channel AppArmor profile on clean installs (#4396)
Since home-assistant/version#305 the AppArmor profiles were split to
per-channel files. This was never reflected in hassio package build though.
Currently this doesn't cause any trouble and the profile is replaced later by
the Supervisor but make sure we're always using the correct one from the
beginning.
2025-11-11 16:05:20 +01:00
Jan Čermák
0c96507ca2 Clean up hassio build scripts (#4394)
Extract some of the parts of the "image import" to the script creating the data
partition to separate concerns. The Docker data directory is now passed as a
daemon option, instead of only mounting the data partition's folder to the
default directory, to be closer to the deployment setup. Also trap the exit and
error signals to remove the build container and unmount the data partition, as
failed or cancelled build have been leaking the containers/mounts when building
interactively (attached to the build container shell).
2025-11-11 16:00:31 +01:00
Jan Čermák
55655f5a50 Use OCI archive in hassio import to fix Containerd snapshotter issues (#4393)
Importing docker-archive format leads to some layers missing in the content
storage which results in some image metadata missing. This appears to be the
same regression as moby/moby#49473. Importing OCI archives when bootstrapping
the data partition seems to work this bug around.

Fixes #4385
2025-11-11 15:39:50 +01:00
Andrei Nevedomskii
13b2f05e7a Enable iptables comments for all (#4391)
Atm some targets don't have comments support enabled for iptables. There's no reason to limit that to just arm64-rockhip target, so this change addresses that.
2025-11-11 11:49:59 +01:00
Jan Čermák
ba6876dffc Remove support of armv7 targets (#4374)
* Remove configs and board files of deprecated architectures

* Remove support for ODROID-XU4 boot files

* Remove ASUS Tinker support from rpi-rf-mod

* Remove RPi armv7 config fragment
2025-11-04 13:22:22 +01:00
Jan Čermák
b88767c652 Linux: Update kernel to 6.12.57 (#4377)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.57
2025-11-03 13:06:42 +01:00
Jan Čermák
ee6f8ce2b9 Linux: Update kernel to 6.12.56 (#4373)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.56
2025-10-31 12:19:28 +01:00
Jan Čermák
b3a9e76521 Fix Docker issue that could cause slow system startup (#4369)
A bug introduced in Docker v28.2+ can cause slow container restart in some
cases because of usage of IPv4 mapped IPv6 addresses in iptables command.
Backport a simple patch from upstream to fix it before we bump to a newer
Docker version.

Fixes #4363
2025-10-29 13:50:49 +01:00
Viktor Ljungström
4e7b99d233 Disable UAS via usb-storage.quirks on RPi for JMicron JMS583Gen 2 to PCIe Gen3x2 Bridge (#4366)
Vendor ID: 152d
Product ID: 0583
2025-10-29 08:47:38 +01:00
Jan Čermák
0e4f9f8a55 Linux: Update kernel to 6.12.55 (#4362)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.55
2025-10-28 18:37:05 +01:00
Jan Čermák
31f347ee0f Remove handling of Docker key.json (#4361)
The deprecated-key-path option is no longer handled, but it doesn't cause
problems because the key is explicitly ignored. It was completely removed in
Docker 19.03.0 [1].

As such, the option and the pre-start script to fix the corrupted key.json can
be removed now, as it has no effect, only printing confusing message when
Docker service fails to start.

[1] 98fc09128b
2025-10-28 18:36:57 +01:00
Jan Čermák
af9131cd10 Use Docker containerd snapshotter for new and wiped installs (#4360)
Prefer the containerd snapshotter by using it by default for new installs and
when no Docker data is present (e.g. after datadisk wipe). The snapshotter is
enabled by a dockerd flag which is set when a flag file is present in the data
partition. This flag file can be used also to opt-in for this snapshotter on
legacy installs (high level API through OS Agent and Supervisor TBD), to
migrate to the containerd snapshotter this file can be simply created manually.

Testing shown no major problems when migrating, the old overlay2 folder can be
(and should be - to avoid situations where the data disk might run out of
space) deleted before the docker.service is started in the docker-prepare
script.

Note that there's no offline migration path, OS needs to be connected to the
internet to re-download the images when migrating. This could be theoretically
possible through docker image save/load functions but guarding for enough of
space and other edge cases would be probably too complex to justify it.

Refs #4252
Refs #4253 - easier opt-in method is still needed
Closes #4254 - migration is handled seamlessly by Docker
2025-10-28 18:36:48 +01:00
Jan Čermák
d372a6df4b Linux: Update kernel to 6.12.54 (#4358)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.54
2025-10-23 15:19:32 +02:00
Jan Čermák
34f8e3c1c7 Linux: Update kernel to 6.12.53 (#4356)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.53
2025-10-15 22:23:13 +02:00
Jan Čermák
7de24914bd Bump OS to development version 17.0.dev0 2025-10-14 18:08:05 +02:00
Jan Čermák
58de585863 Linux: Update kernel to 6.12.52 (#4353)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.52
2025-10-13 19:45:14 +02:00
Jan Čermák
daa6a7c868 Use matching version of DinD daemon when creating hassio data partition (#4344)
Use the version used in the docker-engine package to ensure it stays in sync.
Although we haven't seen any issues related to the fact it was sometimes
mismatching, reduce the burden of needing it to be synced manually.
2025-10-10 10:50:25 +02:00
Jan Čermák
2e48a0a586 Enable x2APIC controller support on x86 and OVA (#4342)
This might be required for some modern Intel processors (Meteor Lake and newer)
which fail to boot Linux kernel without x2APIC controller when some features
(e.g. VT-d or x2APIC itself) are enabled in the BIOS.

Enable it also for OVA, as it can be emulated in virtual machines, even when
the host CPU does not support it.

Fixes #4337, fixes #4144, fixes #4345
2025-10-10 10:50:17 +02:00
Jens Maus
7005edee05 Bump rpi-rf-mod dt overlay to latest version (1.13.3) (#4349) 2025-10-10 10:16:00 +02:00
Stefan Agner
92cb987426 Enable powersave CPU frequency governor (#4346)
The CPUfreq governor "powersave" sets the CPU statically to the lowest
frequency within the borders of scaling_min_freq and scaling_max_freq.
This can be useful if a particular power budget should not ever be
crossed. Can be set using `cpufreq.default_governor=powersave`. Note
that this obviously affects performance.
2025-10-09 14:04:26 +02:00
Jan Čermák
f9f6c9f045 Linux: Update kernel to 6.12.51 (#4343)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.51
2025-10-08 09:52:28 +02:00
Jan Čermák
3e771eb222 Add driver for Creative Sound Blastr X-Fi PCI cards (#4331)
Add snd-ctxfi driver as module to generic PCI device support fragment.

Fixes #4141
2025-10-03 19:32:57 +02:00
Jan Čermák
1c90d4bd4b Linux: Update kernel to 6.12.50 (#4330)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.50
2025-10-02 16:07:28 +02:00
Jan Čermák
bde19002df Improve UX of HA CLI wrapper and emergency console (#4326)
* Improve UX of HA CLI wrapper and emergency console

For many users, the emergency console gives feeling that the system is
completely broken. However, there are various cases when the system just takes
just a bit longer to start up and the emergency message is shown, while it
finishes a proper startup shortly after. This change tries to improve the UX in
several ways:

* The limit before a forced emergency console startup is changed to 3 minutes
* Waiting can be interrupted with Ctrl+C (reset counter is cleared then)
* Some hints what to check have been added before starting the shell
* Also, because if the HA CLI failed for 5 times in a row in quick succession,
  the CLI startup was then not retried anymore and user may have been left with
  a black screen, the restart limits timeouts have been adjusted only to back
  off and never mark the unit as failed

Closes #4273

* Use /bin/sh and printf to silence linter errors
2025-10-01 18:23:28 +02:00
Jan Čermák
95b1d22215 RaspberryPi: Update kernel to 6.12.47 - stable_20250916 (#4327)
* RaspberryPi: Update kernel to 6.12.47 - stable_20250916

* Remove patches merged in 6.12.47

* Update Buildroot rpi-firmware package for 6.12.47

* buildroot 9acb31819a...7ce414454b (1):
  > package/rpi-firmware: update to ba22330 (for stable_20250916)
2025-10-01 17:46:17 +02:00
Jan Čermák
cb66fa808f Fix build failure caused by RaspberryMatic project renaming (#4324)
RaspberryMatic was renamed to OpenCCU in
https://github.com/OpenCCU/OpenCCU/pull/3162. This caused change of the name of
the directory in the source tarball, causing build failure when the archive
wasn't cached.
2025-09-30 12:40:32 +02:00
Jan Čermák
c70b528ac7 Linux: Update kernel to 6.12.49 (#4320)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.48
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.49
2025-09-29 15:40:31 +02:00
Servesh Muralidharan
510395fe4e Support Chelsio T4/T5/T6 VF in SRIOV mode (#4281)
This change supports in kernel drivers for Chelsio T4, T5 & T6 adapters with PCI-E SR-IOV Virtual Functions.
2025-09-17 11:01:18 +02:00
Jan Čermák
c95fd97df6 Linux: Update kernel to 6.12.47 (#4307)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.47
2025-09-15 16:10:49 +02:00
puterboy
e15d99bc2b Enable HID multitouch support in kernel (#4298)
Needed to allow multi-touch gestures on touchscreens for the addon HAOSKiosk.
2025-09-12 17:40:40 +02:00
Jan Čermák
dc0da1b7bc Update HOME_URL in os-release metadata (#4299)
The URL in os-release still pointed to hass.io domain which is currently
defunct. Point to the Home Assistant's main homepage instead.

Fixes #4295
2025-09-12 17:34:36 +02:00
Jan Čermák
3c321a8387 Linux: Update kernel to 6.12.46 (#4293)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.46
2025-09-11 11:22:12 +02:00
Jan Čermák
0e3fd2c021 Start Supervisor container with its cidfile mounted to /run/cid (#4276)
Use the --cidfile Docker CLI argument when starting the container and
bind-mount the generated file containing full ID of the container to the
container itself.

Using --mount instead of --volume is needed, as --volume is racy and creates
empty directory volume at the destination path instead.

This is prerequisite for home-assistant/supervisor#6006 but can come handy for
other cases too.
2025-09-09 20:16:11 +02:00
Jan Čermák
9a1e0015d8 Linux: Update kernel to 6.12.45 (#4287)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.45
2025-09-08 18:05:30 +02:00
Andrej Friesen
3dcf6bd9ee Enable Pressure Stall Information PSI (#4279)
Enable Pressure Stall Information PSI for more accurate detection of resource shortages.

The psi feature identifies and quantifies the disruptions caused by CPU, memory or IO  resource shortages and the time impact it has on complex workloads or even entire systems.

- https://facebookmicrosites.github.io/psi/docs/overview
- https://www.kernel.org/doc/html/latest/accounting/psi.html
2025-09-08 17:36:20 +02:00
Jan Čermák
8f22412cf8 Revert "Revert kernel patch breaking 6.12.43 build for Tinker (#4257)" (#4277)
This reverts commit 194b9146f4.

Stable commit eb0abacdd3fce5a19fffc1c8bd0be6ffffeb59d8 in v6.12.44 does the
same.
2025-09-03 10:58:18 +02:00
Jan Čermák
700ff773ab Linux: Update kernel to 6.12.44 (#4268)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.44
2025-09-01 18:21:45 +02:00
Jan Čermák
78bda4bd10 Fix broken outgoing connections caused by upstream kernel regression (#4267)
Upstream commit [1] caused regression in IPv4 routing which can cause some
routes becoming broadcast even though they should be routed as unicast, e.g.:

 # ip route get 1.1.1.1
 broadcast 1.1.1.1 via 192.168.122.1 dev enp0s3 src 192.168.122.204 uid 0
     cache <local,brd>

It's not entirely clear yet why it happens but this behavior seems to be
triggered for instance when the SSDP integration sends the broadcast packet on
HA startup. While this behavior is not described in the regression report [1],
the commit cherry-picked from Linux master fixes the problems for us as well.

Patches moved to version-specific folder, as this one shouldn't be applied on
Raspberry Pi targets.

[1] https://lore.kernel.org/all/20250710142714.12986-1-oscmaes92@gmail.com/
[2] https://lore.kernel.org/stable/20250822165231.4353-4-bacs@librecast.net/

Fixes #4265
2025-09-01 18:16:11 +02:00
Jan Čermák
44108a5493 Bump OS to development version 16.3.dev0 2025-08-28 16:53:58 +02:00
Jan Čermák
194b9146f4 Revert kernel patch breaking 6.12.43 build for Tinker (#4257)
Revert patch added to 6.12.43 which breaks the build of CAN_TI_HECC module
present in Tinker config. While it's quite unlikely anyone would be using it,
so we could just simply disable the module, this seems to be a better solution.
2025-08-28 12:20:22 +02:00
Jan Čermák
9d110c12f3 Revert "Rework /usr/sbin/hassos-supervisor script (#4248)" (#4256)
This reverts commit 22fe9b19ee.

There are major issues when OS has no internet connectivity - in such case the
script doesn't go the expected happy path after the rework and eventually
removes the Docker image, essentially bricking offline installations.

Since there is no immediate benefit for HAOS and such change turns out to be
high risk considering the planned release, leave it to be implemented later.
2025-08-27 18:12:54 +02:00
Jan Čermák
b35be67236 Linux: Update kernel to 6.12.43 (#4255)
* https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.43
2025-08-27 14:37:48 +02:00
@RubenKelevra
d59053301e sysctl: disable TCP slow start after idle (#4239)
This knob controls whether Linux throws away its congestion
window (cwnd) after a connection has been idle for at least one
retransmission timeout (RTO). With a value of 0, Linux keeps the
cwnd it had before the idle period and can send that amount
immediately when the application resumes writing (still bounded
by the receiver's advertised window and by pacing).

With slow start after idle enabled (the default), Linux allows
only about 10 MSS (~14 KiB) in the first burst after idle. Even
when a connection stays open to web clients, a short idle forces
multiple round trips to ramp back up.

On Wi-Fi, local connections often have very low RTTs, which drives
the RTO down. Between page navigations the connection is considered
idle by Linux. If the next request happens during a transient
latency spike on the Wi-Fi link, the sender starts with a tiny
cwnd and must grow it over many RTTs, so the spike causes outsized
and visible loading delays.

For devices behind typical Internet uplinks, the higher RTT makes
the initial ramp-up feel even slower until the window regains size.
However, here the connection does take longer to drop to idle, for
Linux standards. So the connection is less likely to be considered
idle between navigations.

This change does not affect flows with very small receive windows
(e.g. many microcontrollers), which are limited by the peer's
advertised window rather than the sender's cwnd.

Example RTOs on low jitter, low loss connections:

Defaults:
TCP_RTO_MIN = 200 ms
TCP_RTO_MAX = 120 s
low-jitter path so rttvar_us = 200 ms
HZ = 1000 or 250 or 100 (depending on the kernel settings)

*31 ms average RTT*

- SRTT ≈ 31 ms; RTTVAR ≈ 200 ms → Sum = 231 ms
- 'usecs_to_jiffies(231000)' = 231 jiffies (HZ 1000) -> RTO ≈ 231 ms
- If 'HZ = 250' (4 ms tick), ceil(231/4)=58 jiffies -> 232 ms RTO
- If 'HZ = 100' (10 ms tick), ceil(231/10)=23 jiffies -> 240 ms RTO

*178 ms average RTT*

- HZ=1000 (1 ms tick): 378 ms RTO
- HZ=250 (4 ms tick): ceil(378/4)=95 -> 380 ms RTO
- HZ=100 (10 ms tick): ceil(378/10)=38 -> 380 ms RTO

*292 ms average RTT*

- HZ=1000 (1 ms tick): 492 ms RTO
- HZ=250 (4 ms tick): ceil(492/4)=123 -> 492 ms RTO
- HZ=100 (10 ms tick): ceil(492/10)=50 -> 500 ms RTO

Any loss or jitter will increase those RTO values.
2025-08-26 19:37:48 +02:00
@RubenKelevra
870baa96be sysctl: Enable linear RTO for thin TCP streams (#4238)
Set net.ipv4.tcp_thin_linear_timeouts=1 to switch retransmission
timeout (RTO) backoff from exponential to linear for 'thin' TCP flows.
This reduces tail latency for API-style connections that typically have
very few packets in flight, improving recovery from sporadic loss without
changing anything for larger TCP transfers.

Kernel definition: A flow is considered thin when 'tp->packets_out < 4'
and while not in the initial slow start.

See tcp_stream_is_thin(tp) in include/net/tcp.h.
2025-08-26 19:23:14 +02:00
Viacheslav Bocharov
22fe9b19ee Rework /usr/sbin/hassos-supervisor script (#4248)
* Rework /usr/sbin/hassos-supervisor script:
- remove hardcoded url for image
- add get image url from updater.json/internet
- add SUPERVISOR_CHANNEL defaults to stable

Signed-off-by: Viacheslav Bocharov <adeep@lexina.in>

* Fix small catches in hassos-supervisor

Signed-off-by: Viacheslav Bocharov <adeep@lexina.in>

* Update buildroot-external/rootfs-overlay/usr/sbin/hassos-supervisor

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

---------

Signed-off-by: Viacheslav Bocharov <adeep@lexina.in>
Co-authored-by: Jan Čermák <sairon@users.noreply.github.com>
2025-08-25 18:00:18 +02:00
J. Nick Koston
62747cd622 bluetooth: Increase TemporaryTimeout to 195 seconds (#4249)
Increase the BlueZ temporary device timeout from the default 30s to 195s.
This prevents devices from being removed from D-Bus during connection
retries, especially when multiple connection attempts are queued.

The 195s timeout aligns with Home Assistant's Bluetooth stack behavior
for ESPHome proxies and prevents the 'device removal spiral' that occurs
when devices timeout during sequential connection attempts.
2025-08-25 13:44:00 +02:00
Jan Čermák
419d40012f Fix missing rpi-rf-mod overlay on Yellow (#4244)
Before update to Buildroot 2025.02, the overlays directory on Yellow was
created by rpi-firmware in a condition added confusingly in firmware bump [1].
However, this got lost during Buildroot update, and since Yellow doesn't copy
overlays from the rpi-firmware repo, the directory was never created and the
rpi-rf-mod.dtbo couldn't be copied there in pre-image build hook.

To make things more robust, create the overlays directory for rpi targets
conditionally in the hook instead of relying on rpi-firmware to create it.

[1] f1af1a0bf7

Fixes #4233
2025-08-20 09:56:52 +02:00