This repository provides Yocto layers for integrating Rugix Ctrl into a custom, Yocto-based Linux distribution tailored to your embedded device. Rugix Ctrl enables secure and efficient over-the-air (OTA) updates and provides robust state management capabilities designed to streamline the development and maintenance of embedded Linux devices at scale. Rugix Ctrl is part of the Rugix Project.
Warning
This repository is work-in-progress and not intended for production use at this time. We appreciate any feedback you may have regarding this Yocto integration. Feel free to open an issue.
Rugix Ctrl has all features you would expect from a state-of-the-art update solution and more:
- Atomic A/B system updates with popular bootloaders out of the box.
- Streaming updates as well as adaptive delta updates out of the box.
- Builtin cryptographic integrity checks before installing anything anywhere.
- Supports any update scenario, including non-A/B updates and incremental updates.
- Supports any bootloader and boot process through custom boot flows.
- Robust state management mechanism inspired by container-based architectures.
- Integrates well with different fleet management solutions (avoids vendor lock-in).
- Provides powerful interfaces to built your own update workflow upon.
Rugix Ctrl supports or can be adapted to almost any requirements you may have when it comes to robust and secure updates of your entire system as well as its individual components.
For details, check out Rugix Ctrl's documentation and the documentation on the Yocto layers.
We provide kas-based examples to help you get started quickly.
The layer meta-rugix-core
provides everything required for installing Rugix Ctrl and building Rugix-compatible update bundles.
In addition the following board-specific layers are provided:
meta-rugix-rpi-tryboot
: BSP layer for building Raspberry Pi images withtryboot
support. This layer has so far only been tested on Raspberry Pi 5.
The board-specific layers serve as examples for how to integrate Rugix Ctrl with specific boards. Depending on your project and requirements, you may need to adapt those layers or write your own.
The rugix-ctrl
recipe building Rugix Ctrl from source is not working at the moment due to some compilation issue.
For the time being, use the binary variant rugix-ctrl-bin
, which installs pre-build binaries.
This project is licensed under either MIT or Apache 2.0 at your opinion.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache 2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Made with ❤️ for OSS by Silitics