RAUC – OTA Field Updates
Reliable updates in the field have become a central requirement for modern embedded systems. This is essential not only for regulatory reasons but also to continuously supply devices in the field with security updates, bug fixes, or new features.
With RAUC, Pengutronix (together with a global community) develops and maintains one of the leading open-source frameworks for over-the-air updates. In addition to supporting classic A/B updates, RAUC offers a wide range of customizable scenarios and seamlessly integrates into existing infrastructure and applications.
RAUC provides tooling for creating update artifacts on the host side and serves as the service on the target device that receives installation bundles, authenticates them, and automatically installs images and artifacts atomically on the appropriate target partitions or directories. The current state of the redundancy system can be fully introspected and controlled via the D-Bus interface of the RAUC service or the provided command-line tool.
Furthermore, RAUC offers a range of useful features such as:
- HTTP(S) streaming without intermediate storage
- Adaptive updates to reduce download size
- Encryption of updates
- Support for recovery systems
- Independent data/application/container updates as artifacts
- Atomic bootloader updates
The integration of RAUC as an update solution for an embedded Linux system is supported by Yocto (meta-rauc layer), PTXdist, and various other embedded Linux build systems. Additionally, the self-determined use of RAUC as an update solution is supported by comprehensive documentation.
Pengutronix offers professional support in the areas of:
- Development/extension and mainlining of new RAUC features
- Sponsoring of maintenance and upkeep tasks for RAUC
- Integration of RAUC into new and existing projects
- Update-oriented adaptation of the overall system (watchdog, systemd, partitioning, etc.)
- Professional key handling in production and devices
- Updating in the context of verified boot, OP-TEE, etc.
Resources
Website | rauc.io |
Documentation: | rauc.readthedocs.io |
GitHub: | github.com/rauc/rauc |
meta-rauc: | github.com/rauc/meta-rauc |