Other Build Systems
Rugix Ctrl is a self-contained binary that does not assume any particular build system. If neither Rugix Bakery nor Yocto fits (Buildroot, an existing Debian pipeline you do not want to replace, custom in-house tooling), you can integrate Rugix Ctrl into the image yourself.
This page is a checklist of what your image needs to ship and what you have to author. Each item links into the section that explains it in depth.
What the Image Needs to Ship
-
The
rugix-ctrlbinary. Drop the release binary into/usr/bin/rugix-ctrl(or wherever your distribution places binaries). -
A working partition layout. A typical A/B setup has a config partition, two boot partitions, two system partitions, and a data partition. See System Updates: Partition Layout for the conventional six-partition layout, and Bootstrapping if you want Rugix Ctrl to grow / create partitions on first boot rather than baking the final layout into the image.
-
A bootloader integration. Pick a boot flow that matches your bootloader (
uboot,grub,systemd-boot, RAUC- or Mender-compatible variants, or acustomscript). The boot flow defines how the bootloader switches between A and B and how Rugix Ctrl talks to it. -
An init configuration that runs Rugix Ctrl as the init system if you want state management (the writable overlay, factory reset, etc.). Add
init=/usr/bin/rugix-ctrlto the kernel command line. Rugix Ctrl will set up the overlay and bind mounts and then hand off to your real init system (e.g., systemd).
What You Need to Author
-
/etc/rugix/system.toml: declares slots, boot groups, and the boot flow. This is the central runtime configuration. See the System Configuration page for the full schema with examples. -
/etc/rugix/state/*.toml(optional): declares which directories and files should persist across updates if you’re using state management. See State Management: Selective Persistent State. -
/etc/rugix/bootstrapping.toml(optional): only if you want Rugix Ctrl to grow partitions or create the data partition on first boot. See Bootstrapping. -
/etc/rugix/ctrl.toml(optional): for signed updates, points at your trusted root certificate(s).
Building Bundles
Update bundles are produced separately from your image build. Use rugix-bundler on your build server or in CI, fed with the partition images your build system produces. The bundler doesn’t care which build system made those images.
When You Need More Hand-Holding
If your platform has a working bootloader integration but the rest of the puzzle is non-obvious, reach out for commercial support. For one-off questions, our Discord and Discourse are good places to start.