Home Assistant OS 18.0 is a major release bringing significant updates to all platforms. The Linux kernel has been updated from 6.12 to 6.18 across all targets, Docker has been upgraded to v29.5.3 with containerd v2.2.4, and the underlying Buildroot has been updated to 2025.02.14. Disk images are now significantly faster to flash, the default swap size is now bounded to avoid problems on systems with very low or very high amounts of RAM, and the Raspberry Pi bootloader firmware can now be updated directly from Home Assistant. All users are recommended to update.
Noteworthy changes
Raspberry Pi firmware updates
The Raspberry Pi bootloader (EEPROM) firmware can now be checked and updated directly from Home Assistant OS. Use the following CLI commands to show the current firmware status and to install an update:
ha os boards raspberrypi firmware
ha os boards raspberrypi firmware update
Home Assistant Core 2026.6.0 will also expose the firmware as an update entity. Note that updating the firmware is only possible when the system is booted from an SD card, or in general on Raspberry Pi 5 and on Home Assistant Yellow with a CM5.
Note that Rasbperry Pi 5 now requires firmware 2025-02-12 or newer. See the Raspberry Pi section below for details.
Default swap size
The default swap file size was previously set to 33% of the system RAM, which produced a swap file too small to be useful on low-RAM systems and an unnecessarily large one on systems with plenty of RAM. The default size is now clamped between 1 and 4 GB:
- On systems with up to 2 GB of RAM, the swap file will grow slightly compared to previous releases.
- On systems with more than 12 GB of RAM, the swap file is capped at 4 GB, and an existing oversized swap file will be recreated at the smaller size.
- A manually configured swap size is still respected.
Leaner disk images and faster flashing
Disk images no longer overprovision the data partition, it is now sized to fit only its initial contents. Since the published images are compressed, the download size is not affected, but flashing is considerably faster, because the unused space at the end of the filesystem no longer needs to be written to the target storage. As before, the data partition is automatically expanded to use the available space on first boot.
Images for virtual machines (Open Virtual Appliance and the aarch64 VM formats) are pre-sized to 32 GB, so they no longer need to be resized before use.
Unified "haos" naming
The mix of legacy hassos/HassOS and newer haos naming across the operating system has been harmonized to haos. Most visibly, systemd units and helper binaries previously prefixed hassos- are now prefixed haos-. If you have scripts or tooling that reference these names on the host (for example via the console or host logs), they may need adjusting. On-disk partition and filesystem labels are unchanged, so existing installations are not affected by the rename.
Home Assistant Operating System
- Shrink data partition for leaner disk images and faster flashing (#4764) @sairon
- Enable NFS v4.1/v4.2 for all targets (#4762) @sairon
- Clamp default swap size between 1-4 GB (#4758) @sairon
- Update Docker to v29.5.3 (#4755) @sairon
- Harmonize hassos/HassOS naming to haos across the tree (#4740) @sairon
- Drop
_workstation._tcpservice annoucement from HAOS (#4739) @agners - Extend hassos-supervisor.service stop timeout for graceful shutdown (#4736) @sairon
- Bump OS Agent to v1.9.0 (#4724) @sairon
- Update to Docker v29.5.2, containerd v2.2.4 (#4723) @sairon
- Update Go to v1.26 (#4722) @sairon
- Bump Buildroot to 2025.02.14 (#4721) @sairon
- Bump nfs-utils to fix nfsrahead crashes (#4709) @sairon
- systemd: Increase runtime watchdog timeout to 5 minutes (#4705) @agners
- Bump Buildroot to 2025.02.13 (#4689) @sairon
- Enable IPv6 on Docker default bridge (#4678) @agners
- Update linux-firmware to 20260410 (#4668) @sairon
- Update v4l2loopback to v0.15.3 (#4648) @sairon
- Bump rpi-rf-mod to 1.14.0 (#4644) @jens-maus
- Bump generic-raw-uart to 1.33 and add kernel 6.14+ patches (#4643) @jens-maus
- Update Go to v1.25.9 (#4645) @sairon
- Update to Docker v29.3.1, runC v1.3.5, containerd v2.2.2 (#4614) @sairon
- Update Go to v1.25.8 (#4612) @sairon
- Add patches with fixes for Docker engine (#4605) @agners
Raspberry Pi
Warning
Raspberry Pi 5 users need a bootloader from at least 2025-02-12, otherwise the display output may freeze early during the boot. Update the bootloader before installing this update, using one of the following methods:
- Run
rpi-eeprom-update -awhile connected directly to the device (using a display and keyboard), prior to installing the OS update. - Use Raspberry Pi Imager with a spare SD card to flash a bootloader update image to it.
- Alternatively, if you have an SSH terminal app installed, you can run
ha os boards raspberry pi firmware updateover SSH right after updating the OS.
Note
The default graphics (DRM) driver on Raspberry Pi 4 has been switched from the legacy, no longer maintained FKMS driver to the modern KMS driver, which among other things enables HDMI-CEC support. This only applies to new installations. On existing ones, config.txt in the boot partition must be adjusted manually to make the switch.
- Enable PSI by default also on Raspberry Pi (#4749) @sairon
- RaspberryPi: Update kernel to 6.18.33 (stable_20260527) (#4737, #4748) @sairon
- Patch rpi-eeprom-update to show info on CM4 and make findBootFS faster (#4735) @sairon
- Add firmware for MediaTek MT7920 Bluetooth and WiFi (#4729) @sairon
- Enable MT7925 Bluetooth firmware (#4726) @jelliuk
- Show if flashrom needs to be used by rpi-eeprom-update in tool output (#4718) @sairon
- Update bundled RPi bootloader to 2026-01-09 (2711)/2026-05-11 (2712) (#4715) @sairon
- Enable pciutils on RPi4/RPi5-based targets (#4703) @sairon
- Update U-Boot to v2026.04 (#4685) @sairon
- Switch Raspberry Pi 4 default DRM driver from legacy FKMS to KMS (#4661) @zekiz774
- Disable UAS for RTL9201 (UGREEN USB3.0 HDD enclosure) (#4610) @KlaraJa
Home Assistant Yellow
- Enable PSI by default also on Raspberry Pi (#4749) @sairon
- RaspberryPi: Update kernel to 6.18.33 (stable_20260527) (#4737, #4748) @sairon
- Patch rpi-eeprom-update to show info on CM4 and make findBootFS faster (#4735) @sairon
- Add firmware for MediaTek MT7920 Bluetooth and WiFi (#4729) @sairon
- Enable MT7925 Bluetooth firmware (#4726) @jelliuk
- Show if flashrom needs to be used by rpi-eeprom-update in tool output (#4718) @sairon
- Update bundled RPi bootloader to 2026-01-09 (2711)/2026-05-11 (2712) (#4715) @sairon
- Squash Yellow DTS patches (#4710) @sairon
- Backport U-Boot patch for Raspberry Pi MMC init on BCM2712 (#4707) @sairon
- Enable pciutils on RPi4/RPi5-based targets (#4703) @sairon
- Update U-Boot to v2026.04 (#4685) @sairon
Home Assistant Green
- Linux: Update kernel to 6.18.35 (#4621, #4646, #4662, #4664, #4674, #4691, #4700, #4711, #4720, #4728, #4747, #4759) @sairon
- Add firmware for MediaTek MT7920 Bluetooth and WiFi (#4729) @sairon
- Enable MT7925 Bluetooth firmware (#4726) @jelliuk
- Update U-Boot to v2026.04 (#4685) @sairon
Open Virtual Appliance
- Linux: Update kernel to 6.18.35 (#4621, #4646, #4650, #4664, #4674, #4691, #4700, #4711, #4720, #4728, #4747, #4759) @sairon
- Enable JMicron PCIe NIC driver (#4756) @MaxPowerFood
- Enable Intel Xe DRM driver and firmware (#4750) @sairon
- Add firmware for MediaTek MT7920 Bluetooth and WiFi (#4729) @sairon
- Enable MT7925 Bluetooth firmware (#4726) @jelliuk
- Add RTL8125D rev.b firmware (#4675) @sairon
Generic x86-64
- Linux: Update kernel to 6.18.35 (#4621, #4646, #4650, #4664, #4674, #4691, #4700, #4711, #4720, #4728, #4747, #4759) @sairon
- Enable JMicron PCIe NIC driver (#4756) @MaxPowerFood
- Enable Intel Xe DRM driver and firmware (#4750) @sairon
- Add firmware for MediaTek MT7920 Bluetooth and WiFi (#4729) @sairon
- Enable MT7925 Bluetooth firmware (#4726) @jelliuk
- Add RTL8125D rev.b firmware (#4675) @sairon
Hardkernel ODROID
- Linux: Update kernel to 6.18.35 (#4621, #4646, #4662, #4664, #4674, #4691, #4700, #4711, #4720, #4728, #4747, #4759) @sairon
- Add firmware for MediaTek MT7920 Bluetooth and WiFi (#4729) @sairon
- Enable MT7925 Bluetooth firmware (#4726) @jelliuk
- Update U-Boot to v2026.04 (#4685) @sairon
- Fix ODROID-C2 USB hotplug (#4669) @agners
Khadas VIM Series
- Linux: Update kernel to 6.18.35 (#4621, #4646, #4662, #4664, #4674, #4691, #4700, #4711, #4720, #4728, #4747, #4759) @sairon
- Add firmware for MediaTek MT7920 Bluetooth and WiFi (#4729) @sairon
- Enable MT7925 Bluetooth firmware (#4726) @jelliuk
- Update U-Boot to v2026.04 (#4685) @sairon
Generic aarch64
- Linux: Update kernel to 6.18.35 (#4621, #4646, #4662, #4664, #4674, #4691, #4700, #4711, #4720, #4728, #4747, #4759) @sairon
- Add firmware for MediaTek MT7920 Bluetooth and WiFi (#4729) @sairon
- Enable MT7925 Bluetooth firmware (#4726) @jelliuk
- Add RTL8125D rev.b firmware (#4675) @sairon
Build System
- Add CAs for new signing certificates to RAUC keyring (#4757) @sairon
- Add CI check for sufficient validity of the OTA signing certificate (#4751) @sairon
- Fix OS update tests when update returns no response (#4741) @sairon
- Update build container to Debian Trixie (#4701) @sairon
- Allow enter.sh to run without TTY (#4686) @sairon
- Add support for transitional attribute to kconfiglib (#4649) @sairon
Documentation
Dependencies
Dependency updates (click to expand)
- Bump release-drafter/release-drafter from 7.3.0 to 7.3.1 (#4746) @dependabot[bot]
- Bump actions/checkout from 6.0.2 to 6.0.3 (#4745) @dependabot[bot]
- Bump dessant/lock-threads from 6.0.0 to 6.0.2 (#4744) @dependabot[bot]
- Bump actions/stale from 10.2.0 to 10.3.0 (#4734) @dependabot[bot]
- Bump docker/build-push-action from 7.1.0 to 7.2.0 (#4733) @dependabot[bot]
- Bump docker/login-action from 4.1.0 to 4.2.0 (#4732) @dependabot[bot]
- Bump dessant/label-actions from 5.0.2 to 5.0.3 (#4731) @dependabot[bot]
- Bump docker/setup-buildx-action from 4.0.0 to 4.1.0 (#4730) @dependabot[bot]
- Bump dessant/label-actions from 5.0.0 to 5.0.2 (#4716) @dependabot[bot]
- Bump mikepenz/action-junit-report from 6.4.0 to 6.4.1 (#4717) @dependabot[bot]
- Bump release-drafter/release-drafter from 7.2.1 to 7.3.0 (#4704) @dependabot[bot]
- Bump release-drafter/release-drafter from 7.2.0 to 7.2.1 (#4680) @dependabot[bot]
- Bump shogo82148/actions-upload-release-asset from 1.10.0 to 1.10.1 (#4666) @dependabot[bot]
- Bump actions/cache from 5.0.4 to 5.0.5 (#4657) @dependabot[bot]
- Bump actions/github-script from 8.0.0 to 9.0.0 (#4638) @dependabot[bot]
- Bump actions/upload-artifact from 7.0.0 to 7.0.1 (#4639) @dependabot[bot]
- Bump docker/build-push-action from 7.0.0 to 7.1.0 (#4640) @dependabot[bot]
- Bump release-drafter/release-drafter from 7.1.1 to 7.2.0 (#4641) @dependabot[bot]
- Bump docker/login-action from 4.0.0 to 4.1.0 (#4623) @dependabot[bot]
- Bump mikepenz/action-junit-report from 6.3.1 to 6.4.0 (#4615) @dependabot[bot]