RAUC
| Original author(s) | Jan Lübbe, Enrico Jörns, the RAUC community |
|---|---|
| Stable release | v1.10.1
/ 3 August 2023.[1] |
| Written in | C |
| Engine | |
| Operating system | Linux |
| Available in | English |
| License | GNU Lesser General Public License |
| Website | rauc |
Search RAUC on Amazon.
RAUC (Robust Auto-Update Controller) is an open source OTA update framework for embedded or IoT devices running a Linux operating system.[2][3]
The main purpose of RAUC is to provide cryptographically verified, fail-safe firmware updates for Linux systems with a redundant (A/B) system partition set.
RAUC serves both as a host and a target tool. The host tool allows the creation of signed (and optionally encrypted) update artifacts (called 'bundles') typically consisting of the file system image(s) to install and additional metadata. The target tool runs as a service on the embedded device and handles the bundle verification and installation.
Design and principles
Cryptographic verification of OTA updates is seen as mandatory and cannot be deactivated. RAUC uses standard X.509 cryptography for this.
While RAUC performs mainly full image-based updates, it also comes with support for unpacking tar archives.
The partition layout for RAUC is described in a target system configuration file. The RAUC update service running on the target uses this information to automatically determine the inactive system partitions that can serve as installation targets.
Features
D-Bus API
A D-Bus API allows integrating RAUC into custom applications that can trigger installation, show progress or introspect system status.
Bootloader Interaction
To switch from the running system copy to the updated copy, RAUC needs to interact with the system's bootloader.
The currently supported bootloaders are Barebox, GRUB, UEFI, U-Boot, or custom implementations.
HTTP(S) Bundle Streaming
Since v1.7 RAUC has built-in support for streaming update bundles from a web server via HTTP range requests. This allows updating a device without the need for intermediate on-target storage.
Adaptive (Delta-like) Updates
In OTA update scenarios, bandwidth is often limited. Adaptive updates are a generic mechanism for delta-like download optimizations.
Encryption
Build System Integration
RAUC support is available or integrated into common embedded Linux build systems like Yocto Project/OpenEmbedded[4], Buildroot[5], or PTXdist. As a host tool, it is also part of common Linux distributions such as Debian, Ubuntu, Arch Linux or NixOS.
Reception And Usage
- The SteamOS on the Valve Steam Deck is updated using RAUC[6][7]
- Deutsche Bahn Intercity Express (ICE) train info terminals are updated using RAUC[8]
References
- ↑ "RAUC v1.10.1". GitHub. 2023-08-03. Retrieved 2023-08-28.
- ↑ "RAUC Manual". Retrieved 8 February 2019.
- ↑ Chris Simmonds. Mastering Embedded Linux Programming. Packt Publishing Ltd. p. 220. Search this book on
- ↑ "OpenEmbedded Layer Index - meta-rauc". layers.openembedded.org.
- ↑ "[git commit] rauc: new package". buildroot (Mailing list).
- ↑ "Portable Linux gaming with the Steam Deck".
- ↑ "Collabora Details How SteamOS 3.0 Works on the Steam Deck".
- ↑ "Linux4ICE" (PDF).
External links
- RAUC website
- FOSDEM 2017: Secure and Safe Updates for Your Embedded Device
- Yocto Wiki - System Update
- The ultimate guide to software updates on embedded Linux devices
- BoF: Secure OTA Collaboration
- Talk: Remote update adventures with RAUC, Yocto and Barebox
This article "RAUC" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:RAUC. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.
