RAUC is a lightweight update client that runs on your Embedded Linux device and reliably controls the procedure of updating your device with a new firmware revision. RAUC is also the tool on your host system that lets you create, inspect and modify update artifacts for your device.
RAUC is fully open-source and licensed under LGPL-2.1.
RAUC uses X.509 cryptography to sign and verify your update bundles
Fail-safe full system updates of redundant (A/B) systems. Also recovery systems are supported.
RAUC requires no fixed device / partition setup but instead can be adapted to your needs
Optional asymmetric per-recipient encryption supported
Allows installing updates over HTTP(S) without intermediate on-target storage
D-Bus API methods for triggering Installation, obtaining progress, or inspecting the system state allow tight integration with custom applications.
The best ways to dive into RAUC are the first three chapter of the RAUC documentation. Alternatively, you can find a list of talks about RAUC on our media page.
For integrating RAUC into your project, using an embedded Linux build system such as Yocto, Buildroot or PTXdist is highly recommended.
General hints for integrating RAUC are available in the Integration chapter of the RAUC documentation.
For community support, join the #rauc Matrix channel, open a GitHub Discussion, post your question to the mailing list
For submitting bug reports, use the GitHub Issue Tracker
For commercial support contact Pengutronix via firstname.lastname@example.org.
Contribute bug fixes or new features as GitHub Pull Requests.
Bring up and discuss ideas via #rauc, GitHub Discussions, or GitHub Pull Requests.