// the find
home-assistant/operating-system
:beginner: Home Assistant Operating System
Home Assistant Operating System is the Buildroot-based Linux image that boots Raspberry Pi, ODROID, Green and x86-64 UEFI machines and runs Home Assistant, the Supervisor and Apps in Docker. This repo is for people who want to build, port or audit that image, not for people who just want to run Home Assistant. The README mostly points elsewhere, so the substance is in the buildroot-external tree.
Each board lives in its own folder under buildroot-external/board with the same set of files (kernel config, U-Boot config, cmdline, boot hook, meta), so reviewing one board means reading one directory. Kernel and U-Boot changes are stored as plain patch files next to the board that needs them, so the hardware-specific delta shows up in a diff instead of living in an unpublished fork. A read-only SquashFS root with ZRAM for /tmp and /var suits an appliance that gets unplugged mid-write, and RAUC handles OTA and USB updates, so updating is a designed path rather than a script.
Buildroot is pinned as a git submodule, so a plain clone leaves the buildroot directory empty and the first build fails until submodules are initialised. The README does not mention this. Upkeep is the real cost: the Raspberry Pi board alone carries 13 U-Boot patches plus several kernel patches, and each upstream bump means rebasing all of them against the boards that need them. Supported hardware is a fixed list gated by ADR-0015, ADR-0017 and an architecture proposal. That keeps the test matrix honest, but anyone with an unlisted board gets nothing, and a new board waits on a process rather than a pull request.