finds.dev← search

// the find

balena-os/meta-balena

★ 988 · BitBake · updated Jun 2026

A collection of Yocto layers used to build balenaOS images

meta-balena is the Yocto layer collection that builds balenaOS — the container-optimized embedded Linux OS that powers balena.io's IoT device management platform. It handles everything from bootloader integration across U-Boot/GRUB/UEFI/kexec targets to A/B partition rollbacks, OTA updates, and the host OS networking stack. You'd use this if you're building a custom balenaOS image for a board not already supported, or need to understand what's actually shipping on those devices.

The kexec-based 'balena bootloader' approach is genuinely clever — by building all rollback and boot logic into a minimal initramfs kernel that kexec's into the real kernel, they avoid reimplementing the same logic per bootloader vendor, which historically has been a maintenance nightmare in embedded Linux. The time synchronization sequence (build time → previous boot → RTC → HTTPS → NTP) is carefully thought out and handles the clock-at-zero problem that kills TLS cert validation on devices without RTC. The OS update lock using flock() is a clean separation from the supervisor's application-level update lock — two independent safety nets rather than one. CI coverage across 25+ board targets running on every PR is real breadth.

The Yocto version support table has four EOL entries still listed without a clear removal timeline — that's recipe debt accumulating. BitBake build times on cold caches run 4-8 hours minimum; there's no mention of a shared sstate-cache server for contributors, so first-time builders are in for a painful experience. The README documents config.json extensively but doesn't clearly explain how to actually get a build environment running end-to-end — it defers to Yocto docs and assumes you already know the ecosystem. The WiFi adapter support list is embarrassingly short (just bcm43143 explicitly listed), and the modem support list looks like it was written in 2018 and not updated since.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →