barebox – Embedded Linux Bootloader
For more than 15 years, barebox has been one of the leading bootloaders in the embedded Linux world, supporting a wide range of processors and development boards – above all on ARM platforms. As an active maintainer, Pengutronix contributes significantly to its ongoing development.
barebox plays a central role in modern embedded Linux systems: besides the basic hardware initialisation and loading the kernel, it acts, for example, as the decision instance for A/B redundancy boots and forms an important link in the verified boot chain.
Beyond that, barebox can also be a useful tool when bringing up new hardware: since there is no concurrency and there are no interrupts in the bootloader yet, while hardware can already be accessed, it is also very popular among hardware people.
barebox can be used beyond classic embedded hardware as well: built as an EFI application, it brings redundant, watchdog-supervised boot to PC-type systems.
Features
Security Policies
Dynamic, secure switching between 'Lockdown' and 'Devel' profiles.
Security & Hardening
Verified boot, debug lockdown.
FIT image
Support & verification.
Redundant boot
Flexibly configurable A/B framework.
Storage framework
Atomic, decoupled from the bootloader env.
Device-tree-first
Dynamic runtime extension for board variants.
Multi-image build
A build can generate multiple images simultaneously across boards and SoCs.
Developer-friendly
UNIX-like shell, scripting and Linux-style driver APIs.
Build system integration
as well as various other embedded Linux build systems.
Pengutronix supports you in all phases of your barebox implementation
Porting & adaptation
Device tree, boot scripts and barebox configuration for your target hardware.
Secure boot design
Architecture of chain of trust, key provisioning and signature workflows.
BSP integration
Integration of barebox into your board support package, including connection to Yocto, PTXdist or Buildroot.
CI/CD integration
Automated builds, tests (unit, integration) and signatures in Jenkins/GitLab CI.
Upstream contributions
Submission and maintenance of patches in the official barebox repository.
Long-term maintenance
Regular updates to current barebox versions.