Software Updates with RAUC, the Yocto Project and OpenEmbedded
2020-10-30, 18:35–19:10 (Europe/Dublin), Intermediate Room

RAUC is a powerful open source software solution for A/B updates of embedded Linux devices. It has support for the Yocto Project and OpenEmbedded, Buildroot and PTXdist. Upgrades are performed through RAUC bundles which can be installed either over the air or through a USB stick. In this presentation we will focus on the efforts to use the meta-rauc layer with an additional layer for BSP integration. Exact steps and real-world practical examples with Raspberry Pi 4 Model B will be demonstrated.

The presentation is appropriate for anyone with basic knowledge interested in software upgrades. Hopefully, it will simplify the getting started process with RAUC in distributions based on the Yocto project and OpenEmbedded.


RAUC is a powerful and flexible open source solution. However, it requires advanced skills for initial integration with the Yocto Project and OpenEmbedded. The following steps are required: * Set U-Boot as a bootloader * Enabled SquashFS in the Linux kernel configurations * Set ext4 root file system * Create specific partitioning of the microSD card that matches the RAUC slots * Set U-Boot environment configurations and a script to properly switch RAUC slots * Generate certificate and set a keyring to RAUC’s system.conf

The flexibility of RAUC allows covering various use cases and scenarios, including advanced options such as a single or redundant data partitions. Upgrades are performed through RAUC bundles which ca be installed the air or using the old-fashioned method with a USB stick. For managing updates to a fleet of Internet of Things, it is possible to integrate RAUC with Eclipse hawkBit project that acts as a deployment server with a nice web user interface.

In this presentation we will go through all the exact steps to build a minimal image and perform end to end updates using meta-rauc and meta-raspberrypi. Both software updates over the air and through a USB stick will be demonstrated. Finally, we will discuss challenges for RAUC integration in real-world products,as well as ideas of optimizations of the build process and implementation of continuous integration (CI).

The presentation is appropriate for anyone with basic knowledge about the Yocto Project and OpenEmbedded. The provided information will help other software developers in the community to overcame faster and easier similar technical difficulties while integrating the RAUC client on embedded Linux devices.

See also: Software Updates with RAUC, the Yocto Project and OpenEmbedded, Leon Anavi

Leon Anavi is an open source enthusiast and a senior software engineer at Konsulko Group. He is an active contributor to various Yocto/OpenEmbedded meta layers, Automotive Grade Linux (AGL), Tizen any many other open source projects. His professional experience includes web and mobile application development for various platforms as well as porting and maintaining embedded Linux distributions to Raspberry Pi and devices with x86-64, i.MX6, NVIDIA Tegra, Rockchip and Allwinner (aka sunxi) SoC. Leon holds a masters in Information Technology from the Technical University Sofia. His previous speaking experience includes talks about open source software and hardware during events in San Francisco, San Diego, Portland (OR), Hong Kong, Shanghai, Shenzhen, Brussels, Lyon Berlin, Edinburgh, London, Cambridge, Bratislava, Prague, Sofia and his hometown Plovdiv.