SlideShare a Scribd company logo
Exploring Open Source Dual A/B Update
Solutions for Embedded Linux
Leon Anavi
Konsulko Group
leon.anavi@konsulko.com
leon@anavi.org
FOSDEM 2025
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Agenda
 Embedded Linux update strategies and open source solutions
 Mender
 RAUC
 SWUpdate
 Conclusions
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Common Embedded Linux Update Strategies
 A/B updates (dual redundant scheme)
 Delta (or adaptive) updates
 Container-based updates
 Combined strategies
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
A/B Updates
 Dual A/B identical rootfs partitions
 Data partition for storing any persistent data which is left unchanged during the
update process
 Typically a client application runs on the embedded device and periodically
connects to a server to check for updates
 If a new software update is available, the client downloads and installs it on the
other partition
 The bootloader switches the active partitions on reboot aftre upgrade
 Fallback in case of update failure
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Delta Updates
 Only the binary delta between the difference is sent to the embedded device
 Works in a Git-like model for filesystem trees
 Saves storage space and connection bandwidth
 Rollback of the system to a previous state
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Update
Strategy
Storage Space Update Size Rollback to a
Previous Stage
Fallback to a
Back-up Image
on a separate
partition
A/B
Updates
Large Large Yes Yes
Delta
Updates
Small Small Yes No
Side by Side Comparison
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Popular Open Source Solutions
 Mender
 RAUC
 SWUpdate
 Swupd
 UpdateHub
 Balena
 Memfault
 qbee.io
 Snap
 Libostree (OSTree)
 Flatpak
 QtOTA
 Torizon
 Aktualizr-lite
 HERE OTA Connect (Aktualizr) ❌
 FullMetalUpdate ❌
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Side by Side Comparison Using
 Raspberry Pi 5
 Olimex iMX8MP-SOM-4GB-IND and iMX8MP-SOM-EVB-IND
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Mender
 Available as a free open source or paid commercial/enterprise plans
 A/B update scheme for open source users and all plans as well as delta updates
for professional and enterprise plans
 Back-end services (Hosted Mender)
 Written in C++, Go, Python, JavaScript
 Source code in GitHub under Apache 2.0
 Supports the Yocto Project and Debian family of Linux distributions
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Mender Supported Devices
 Raspberry Pi
 Rockchip
 BeagleBone
 x86-64
 NXP
 NVIDIA Tegra
 QEMU
 Details: https://github.com/mendersoftware/meta-mender-community
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Mender
Steps to install Mender A/B update on embedded Device:
 Apply update
 Reboot
 On the first boot after a successful update, though the Mender client a commit
must be performed to accept the update (otherwise the system will roll-back
on next reboot)
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Mender Client Modes
Mender A/B updates supports two client modes:
 Managed (default) - client running as a daemon polls the server for updates
 Standalone - updates are triggered locally which is suitable for physical media or
any network update in pull mode
SYSTEMD_AUTO_ENABLE:pn-mender = "disable"
$ cd tmp/deploy/images/raspberrypi5
$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
$ mender -install http://example.com:8000/core-image-base-raspberrypi5.mender
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
 Inherit Mender classes globally:
INHERIT += "mender-full"
 Mender uses specific variables during the build process:
local_conf_header:
olimex-imx8mp-evb: |
MENDER_IMAGE_BOOTLOADER_FILE = "imx-boot"
MENDER_IMAGE_BOOTLOADER_BOOTSECTOR_OFFSET = "64"
MENDER_UBOOT_STORAGE_INTERFACE = "mmc"
MENDER_UBOOT_STORAGE_DEVICE = "1"
MENDER_STORAGE_DEVICE = "/dev/mmcblk1"
IMAGE_BOOT_FILES:append = "boot.scr"
Mender Classes and Variables
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
 Mender creates a /data partition to store persistent data, preserved during
Mender updates. Supports ext4, Btrfs and F2FS file systems.
 The Mender client on the embedded devices uses /data/mender to preserve
data and state across updates
 Variable MENDER_DATA_PART_SIZE_MB configures the size of the /data
partition. By default it is 128 MB. If enabled, mender feature mender-
growfs-data which relies on systemd-growfs tries to resize on first boot
with the remaining free space
 It is possible to create an image for the data partition in advance with bitbake:
IMAGE_FSTYPES:append = " dataimg"
Mender Data Partition
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Mender add-ons
Mender supports several add-ons:
 Remote Terminal - interactive shell sessions with full terminal emulation
 File Transfer - upload and download files to and from a device
 Port Forward - forward any local port to a port on a device without opening
ports on the device
 Configure - apply configuration to your devices through a uniform interface
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Mender Delta Updates
 Mender offers robust delta update rootfs as a module for the commercial Mender
plan (closed source implementation)
 Requires reboot to apply the update
 Supports rollback
 mender-binary-delta creates a binary delta by comparing two different artifacts
 Mandatory requirement for the implementation is a read-only root file system:
IMAGE_FEATURES += "read-only-rootfs"
EXTRA_IMAGE_FEATURES = "read-only-rootfs"
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
RAUC
 A lightweight update client that runs on an Embedded Linux device and reliably
controls software A/B updates
 Supports multiple update scenarios
 Supports HTTP streaming and adaptive updates
 Provides tool for the build system to create, inspect and modify update bundles
 Uses X.509 cryptography to sign update bundles
 Supports encrypted update bundles
 Compatible with the Yocto Project, PTXdist and Buildroot
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
RAUC Licenses
 RAUC – LGPLv2.1
https://github.com/rauc/rauc
 meta-rauc - MIT
https://github.com/rauc/meta-rauc
 rauc-hawkbit – LGPLv2.1
https://github.com/rauc/rauc-hawkbit
 rauc-hawkbit-updater – LGPLv2.1
https://github.com/rauc/rauc-hawkbit-updater
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
RAUC Integration Steps
 Select an appropriate bootloader
 Enable SquashFS in the Linux kernel configurations
 ext4 root file system (RAUC does not have an ext2 / ext3 file type)
 Create specific partitions that matches the RAUC slots in the OpenEmbedded
Kickstart (.wks) file
 Configure Bootloader environment and create a script to switch RAUC slots
 Create a certificate and a keyring to RAUC’s system.conf
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
 Supports single and redundant data partitions
 For redundant data partitions the active rootfs slot has to mount the correct data
partition dynamically, for example with a udev rule
RAUC Data Partition
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
RAUC Advanced Features
 HTTP Streaming
Supports installing bundles directly from a HTTP(S) server, without having to
download and store the bundle locally
 Adaptive Updates
Adaptive updates can be installed on any version, using data from the target
system, such as previous versions or even interrupted installations. Paired with
HTTP Streaming, RAUC downloads only the required parts of the bundle,
improving efficiency.
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
 Yocto/OE layer with examples how to integrate RAUC on various machines
 Started in 2020
 Moved to the RAUC organization in GitHub in 2021
 https://github.com/rauc/meta-rauc-community/
Contributions are always welcome as GitHub pull requests!
meta-rauc-community
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
 Raspberry Pi
 BeagleBone
 x86-64
 NXP
 QEMU
 Rockchip
 Allwinner (Sunxi)
 DHSBC STM32MP13
meta-rauc-community
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
SWUpdate
 A flexible open source update framework with small footprint for atomic updates
 Supports signing with RSA keys and with certificates using an own PKI
infrastructure
 Supports incremental update of binary images
 Supports Lua extensions
 Compatible with the Yocto Project, Buildroot and deb package (experimental)
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
SWUpdate
 SWUpdate under GPLv2
 A library to control SWUpdate under LGPLv2.1.
 Extensions written in Lua under Lua license (MIT)
 Supports the Yocto Project / OpenEmbedded and Debian / Ubuntu
 Supported devices through Yocto/OE layer meta-swupdate-boards:
Beaglebone Black, Raspberry Pi, Sama5d27-som1-ek-sd and Wandboard
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Features Mender RAUC SWUpdate
A/B updates Yes Yes Yes
Roll-back Yes Yes Yes
Configure add-on Yes No No
Monitor add-on Yes No No
Troubleshot add-on Yes No No
Local web interface No No Yes
Side by Side Comparison
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Features Mender RAUC SWUpdate
Client
Programming
Language
C++
(previously Go)
C C
Client License Apache 2.0 LGPL-2.1 GPLv2
Yocto Project
Integration
Scarthgap Scarthgap Scarthgap
Contributions GitHub Pull Requests GitHub Pull Requests Mailing List
Management
Server
Yes 3rd
Party 3rd
Party
Side by Side Comparison
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
3rd
Party Management Servers
 Eclipse HawkBit
https://eclipse.dev/hawkbit/
 qbee.io
https://github.com/qbee-io/meta-qbee
 AWS IoT
https://github.com/aws4embeddedlinux/meta-aws
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
libubootenv
 Provides a hardware independent way to access to U-Boot environment
 Includes replacements for the "fw_printenv" and "fw_setenv" tools, which are
compatible with any board
 Written in C
 Available in GitHub under LGPL-2.1
 Started by Stefano Babic in December 2018
 Used by SWUpdate, RAUC, Mender and other solutions
 OpenEmbedded/Yocto recipe:
https://git.openembedded.org/openembedded-core/tree/meta/recipes-bsp/u-boot/
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Combined Strategies with Containers
 Yocto/OE layer meta-virtualization provides support for building Xen, KVM,
Libvirt, docker and associated packages necessary for constructing OE-based
virtualized solutions
 virtualization has to be added to the DISTRO_FEATURES:
DISTRO_FEATURES:append = " virtualization"
 For example adding Docker to the embedded Linux distribution is easy:
IMAGE_INSTALL:append = " docker-moby"
 There are use cases on powerful embedded Linux devices where containers are
combined with A/B updates of the base Linux distribution built with Yocto/OE
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Conclusions
 With many reliable open-source solutions available for updating embedded Linux
devices, developing an in-house solution is rarely worth the effort
 The dual A/B update mechanism implementation depends on the bootloader
 Mender, RAUC, and SWUpdate all handle A/B updates effectively but differ in how
they are implemented and the advanced features they offer
 Mender provides an end to end turn-key solution with management server
 Delta and/or adaptive updates are also possible with Mender and RAUC
 Choosing the best solution can be challenging, as it depends on the specific
requirements of your project
FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux
Thank You!
Useful links:
 https://www.yoctoproject.org/
 https://mender.io/
 https://rauc.io/
 https://swupdate.org/
 https://www.konsulko.com/mender-raspberry-pi-5
 https://www.konsulko.com/ota-updates-imx8mp-mender
 https://www.konsulko.com/ota-qbee-rauc-imx8mp
Ad

More Related Content

Similar to Exploring Open Source Dual A/B Update Solutions for Embedded Linux (20)

Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Yoshitake Kobayashi
 
Composer
ComposerComposer
Composer
Nils Adermann
 
Os Grossupdated
Os GrossupdatedOs Grossupdated
Os Grossupdated
oscon2007
 
Hyper-V OpenStack Nova Compute
Hyper-V OpenStack Nova ComputeHyper-V OpenStack Nova Compute
Hyper-V OpenStack Nova Compute
Alessandro Pilotti
 
Discover the Linux on z Systems Effect
Discover the Linux on z Systems EffectDiscover the Linux on z Systems Effect
Discover the Linux on z Systems Effect
IBM
 
OWF12/PAUG Conf Days Android system development, maxime ripard, free electrons
OWF12/PAUG Conf Days Android system development, maxime ripard, free electronsOWF12/PAUG Conf Days Android system development, maxime ripard, free electrons
OWF12/PAUG Conf Days Android system development, maxime ripard, free electrons
Paris Open Source Summit
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
Nissan Dookeran
 
Graphical libraries
Graphical librariesGraphical libraries
Graphical libraries
guestbd40369
 
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...
Ajith Ramawickrama
 
Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017
Chris Simmonds
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
Patrick Chanezon
 
Deploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and HelmDeploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and Helm
Jessica Deen
 
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Patricia Aas
 
Modern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - BerlinModern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - Berlin
Djalal Harouni
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
Günter Obiltschnig
 
Fedora15 lovelock-pres
Fedora15 lovelock-presFedora15 lovelock-pres
Fedora15 lovelock-pres
Julio Villarreal Pelegrino
 
Fedora on risc-v_tokyo_30_sep_2019_v4
Fedora on risc-v_tokyo_30_sep_2019_v4Fedora on risc-v_tokyo_30_sep_2019_v4
Fedora on risc-v_tokyo_30_sep_2019_v4
Wei Fu
 
127 iio a-new-subsystem
127 iio a-new-subsystem127 iio a-new-subsystem
127 iio a-new-subsystem
anilchowdary2050
 
127 iio a-new-subsystem
127 iio a-new-subsystem127 iio a-new-subsystem
127 iio a-new-subsystem
tarak reddy
 
High Performance Computing and Open Source & Linux Technical Excellence Sympo...
High Performance Computing and Open Source & Linux Technical Excellence Sympo...High Performance Computing and Open Source & Linux Technical Excellence Sympo...
High Performance Computing and Open Source & Linux Technical Excellence Sympo...
Gonéri Le Bouder
 
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Yoshitake Kobayashi
 
Os Grossupdated
Os GrossupdatedOs Grossupdated
Os Grossupdated
oscon2007
 
Hyper-V OpenStack Nova Compute
Hyper-V OpenStack Nova ComputeHyper-V OpenStack Nova Compute
Hyper-V OpenStack Nova Compute
Alessandro Pilotti
 
Discover the Linux on z Systems Effect
Discover the Linux on z Systems EffectDiscover the Linux on z Systems Effect
Discover the Linux on z Systems Effect
IBM
 
OWF12/PAUG Conf Days Android system development, maxime ripard, free electrons
OWF12/PAUG Conf Days Android system development, maxime ripard, free electronsOWF12/PAUG Conf Days Android system development, maxime ripard, free electrons
OWF12/PAUG Conf Days Android system development, maxime ripard, free electrons
Paris Open Source Summit
 
Graphical libraries
Graphical librariesGraphical libraries
Graphical libraries
guestbd40369
 
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...
Install .Net Core, SQL Server V-Next on Linux and deploy .Net core applicatio...
Ajith Ramawickrama
 
Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017Software update for IoT Embedded World 2017
Software update for IoT Embedded World 2017
Chris Simmonds
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
Patrick Chanezon
 
Deploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and HelmDeploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and Helm
Jessica Deen
 
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Patricia Aas
 
Modern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - BerlinModern IoT and Embedded Linux Deployment - Berlin
Modern IoT and Embedded Linux Deployment - Berlin
Djalal Harouni
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
Günter Obiltschnig
 
Fedora on risc-v_tokyo_30_sep_2019_v4
Fedora on risc-v_tokyo_30_sep_2019_v4Fedora on risc-v_tokyo_30_sep_2019_v4
Fedora on risc-v_tokyo_30_sep_2019_v4
Wei Fu
 
127 iio a-new-subsystem
127 iio a-new-subsystem127 iio a-new-subsystem
127 iio a-new-subsystem
tarak reddy
 
High Performance Computing and Open Source & Linux Technical Excellence Sympo...
High Performance Computing and Open Source & Linux Technical Excellence Sympo...High Performance Computing and Open Source & Linux Technical Excellence Sympo...
High Performance Computing and Open Source & Linux Technical Excellence Sympo...
Gonéri Le Bouder
 

More from Leon Anavi (20)

Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Leon Anavi
 
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Leon Anavi
 
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedIntegrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Leon Anavi
 
Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?
Leon Anavi
 
Linux обновления с RAUC и Docker
Linux обновления с RAUC и DockerLinux обновления с RAUC и Docker
Linux обновления с RAUC и Docker
Leon Anavi
 
Open Hardware Makers
Open Hardware MakersOpen Hardware Makers
Open Hardware Makers
Leon Anavi
 
Open Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source HardwareOpen Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source Hardware
Leon Anavi
 
Surfing on an Interactive Kiosk
Surfing on an Interactive KioskSurfing on an Interactive Kiosk
Surfing on an Interactive Kiosk
Leon Anavi
 
Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства
Leon Anavi
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry PiGetting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry Pi
Leon Anavi
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Leon Anavi
 
Comparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation ToolsComparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation Tools
Leon Anavi
 
Практични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry PiПрактични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry Pi
Leon Anavi
 
The Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source HardwareThe Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source Hardware
Leon Anavi
 
Making Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry PiMaking Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry Pi
Leon Anavi
 
Вграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с LinuxВграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с Linux
Leon Anavi
 
Comparison of Voice Assistant SDKs for Embedded Linux Devices
 Comparison of Voice Assistant SDKs for Embedded Linux Devices Comparison of Voice Assistant SDKs for Embedded Linux Devices
Comparison of Voice Assistant SDKs for Embedded Linux Devices
Leon Anavi
 
Open Source MQTT Brokers
Open Source MQTT BrokersOpen Source MQTT Brokers
Open Source MQTT Brokers
Leon Anavi
 
Въведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry PiВъведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry Pi
Leon Anavi
 
Free and Open Source Software Tools for Making Open Source Hardware
 Free and Open Source Software Tools for Making Open Source Hardware Free and Open Source Software Tools for Making Open Source Hardware
Free and Open Source Software Tools for Making Open Source Hardware
Leon Anavi
 
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Screen Sharing on Raspberry Pi 5 Using VNC in Weston and Wayland with the Yoc...
Leon Anavi
 
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Leon Anavi
 
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbeddedIntegrating VNC in Weston with the Yocto Project and OpenEmbedded
Integrating VNC in Weston with the Yocto Project and OpenEmbedded
Leon Anavi
 
Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?Как да убием и последната дискета с Open Source технологии?
Как да убием и последната дискета с Open Source технологии?
Leon Anavi
 
Linux обновления с RAUC и Docker
Linux обновления с RAUC и DockerLinux обновления с RAUC и Docker
Linux обновления с RAUC и Docker
Leon Anavi
 
Open Hardware Makers
Open Hardware MakersOpen Hardware Makers
Open Hardware Makers
Leon Anavi
 
Open Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source HardwareOpen Source Tools for Making Open Source Hardware
Open Source Tools for Making Open Source Hardware
Leon Anavi
 
Surfing on an Interactive Kiosk
Surfing on an Interactive KioskSurfing on an Interactive Kiosk
Surfing on an Interactive Kiosk
Leon Anavi
 
Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства Linux дистрибуции и софтуерни обновления за вградени устройства
Linux дистрибуции и софтуерни обновления за вградени устройства
Leon Anavi
 
Getting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry PiGetting started with AGL using a Raspberry Pi
Getting started with AGL using a Raspberry Pi
Leon Anavi
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Leon Anavi
 
Comparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation ToolsComparison of Open Source Software Home Automation Tools
Comparison of Open Source Software Home Automation Tools
Leon Anavi
 
Практични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry PiПрактични примери за device tree overlays на Raspberry Pi
Практични примери за device tree overlays на Raspberry Pi
Leon Anavi
 
The Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source HardwareThe Software Developer’s Guide to Open Source Hardware
The Software Developer’s Guide to Open Source Hardware
Leon Anavi
 
Making Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry PiMaking Open Source Hardware for Retrogaming on Raspberry Pi
Making Open Source Hardware for Retrogaming on Raspberry Pi
Leon Anavi
 
Вграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с LinuxВграждане на умни гласови асистенти в устройства с Linux
Вграждане на умни гласови асистенти в устройства с Linux
Leon Anavi
 
Comparison of Voice Assistant SDKs for Embedded Linux Devices
 Comparison of Voice Assistant SDKs for Embedded Linux Devices Comparison of Voice Assistant SDKs for Embedded Linux Devices
Comparison of Voice Assistant SDKs for Embedded Linux Devices
Leon Anavi
 
Open Source MQTT Brokers
Open Source MQTT BrokersOpen Source MQTT Brokers
Open Source MQTT Brokers
Leon Anavi
 
Въведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry PiВъведение в RetroPie за Raspberry Pi
Въведение в RetroPie за Raspberry Pi
Leon Anavi
 
Free and Open Source Software Tools for Making Open Source Hardware
 Free and Open Source Software Tools for Making Open Source Hardware Free and Open Source Software Tools for Making Open Source Hardware
Free and Open Source Software Tools for Making Open Source Hardware
Leon Anavi
 
Ad

Recently uploaded (20)

WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
Imma Valls Bernaus
 
Microsoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptxMicrosoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptx
Mekonnen
 
Tools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google CertificateTools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google Certificate
VICTOR MAESTRE RAMIREZ
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
saimabibi60507
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
Creating Automated Tests with AI - Cory House - Applitools.pdf
Creating Automated Tests with AI - Cory House - Applitools.pdfCreating Automated Tests with AI - Cory House - Applitools.pdf
Creating Automated Tests with AI - Cory House - Applitools.pdf
Applitools
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Top 10 Data Cleansing Tools for 2025.pdf
Top 10 Data Cleansing Tools for 2025.pdfTop 10 Data Cleansing Tools for 2025.pdf
Top 10 Data Cleansing Tools for 2025.pdf
AffinityCore
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025Avast Premium Security Crack FREE Latest Version 2025
Avast Premium Security Crack FREE Latest Version 2025
mu394968
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
🌱 Green Grafana 🌱 Essentials_ Data, Visualizations and Plugins.pdf
Imma Valls Bernaus
 
Microsoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptxMicrosoft Excel Core Points Training.pptx
Microsoft Excel Core Points Training.pptx
Mekonnen
 
Tools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google CertificateTools of the Trade: Linux and SQL - Google Certificate
Tools of the Trade: Linux and SQL - Google Certificate
VICTOR MAESTRE RAMIREZ
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
PRTG Network Monitor Crack Latest Version & Serial Key 2025 [100% Working]
saimabibi60507
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
Creating Automated Tests with AI - Cory House - Applitools.pdf
Creating Automated Tests with AI - Cory House - Applitools.pdfCreating Automated Tests with AI - Cory House - Applitools.pdf
Creating Automated Tests with AI - Cory House - Applitools.pdf
Applitools
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Top 10 Data Cleansing Tools for 2025.pdf
Top 10 Data Cleansing Tools for 2025.pdfTop 10 Data Cleansing Tools for 2025.pdf
Top 10 Data Cleansing Tools for 2025.pdf
AffinityCore
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Ad

Exploring Open Source Dual A/B Update Solutions for Embedded Linux

  • 1. Exploring Open Source Dual A/B Update Solutions for Embedded Linux Leon Anavi Konsulko Group [email protected] [email protected] FOSDEM 2025
  • 2. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Agenda  Embedded Linux update strategies and open source solutions  Mender  RAUC  SWUpdate  Conclusions
  • 3. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Common Embedded Linux Update Strategies  A/B updates (dual redundant scheme)  Delta (or adaptive) updates  Container-based updates  Combined strategies
  • 4. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux A/B Updates  Dual A/B identical rootfs partitions  Data partition for storing any persistent data which is left unchanged during the update process  Typically a client application runs on the embedded device and periodically connects to a server to check for updates  If a new software update is available, the client downloads and installs it on the other partition  The bootloader switches the active partitions on reboot aftre upgrade  Fallback in case of update failure
  • 5. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Delta Updates  Only the binary delta between the difference is sent to the embedded device  Works in a Git-like model for filesystem trees  Saves storage space and connection bandwidth  Rollback of the system to a previous state
  • 6. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Update Strategy Storage Space Update Size Rollback to a Previous Stage Fallback to a Back-up Image on a separate partition A/B Updates Large Large Yes Yes Delta Updates Small Small Yes No Side by Side Comparison
  • 7. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Popular Open Source Solutions  Mender  RAUC  SWUpdate  Swupd  UpdateHub  Balena  Memfault  qbee.io  Snap  Libostree (OSTree)  Flatpak  QtOTA  Torizon  Aktualizr-lite  HERE OTA Connect (Aktualizr) ❌  FullMetalUpdate ❌
  • 8. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Side by Side Comparison Using  Raspberry Pi 5  Olimex iMX8MP-SOM-4GB-IND and iMX8MP-SOM-EVB-IND
  • 9. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Mender  Available as a free open source or paid commercial/enterprise plans  A/B update scheme for open source users and all plans as well as delta updates for professional and enterprise plans  Back-end services (Hosted Mender)  Written in C++, Go, Python, JavaScript  Source code in GitHub under Apache 2.0  Supports the Yocto Project and Debian family of Linux distributions
  • 10. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Mender Supported Devices  Raspberry Pi  Rockchip  BeagleBone  x86-64  NXP  NVIDIA Tegra  QEMU  Details: https://github.com/mendersoftware/meta-mender-community
  • 11. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Mender Steps to install Mender A/B update on embedded Device:  Apply update  Reboot  On the first boot after a successful update, though the Mender client a commit must be performed to accept the update (otherwise the system will roll-back on next reboot)
  • 12. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Mender Client Modes Mender A/B updates supports two client modes:  Managed (default) - client running as a daemon polls the server for updates  Standalone - updates are triggered locally which is suitable for physical media or any network update in pull mode SYSTEMD_AUTO_ENABLE:pn-mender = "disable" $ cd tmp/deploy/images/raspberrypi5 $ python3 -m http.server Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ... $ mender -install http://example.com:8000/core-image-base-raspberrypi5.mender
  • 13. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux  Inherit Mender classes globally: INHERIT += "mender-full"  Mender uses specific variables during the build process: local_conf_header: olimex-imx8mp-evb: | MENDER_IMAGE_BOOTLOADER_FILE = "imx-boot" MENDER_IMAGE_BOOTLOADER_BOOTSECTOR_OFFSET = "64" MENDER_UBOOT_STORAGE_INTERFACE = "mmc" MENDER_UBOOT_STORAGE_DEVICE = "1" MENDER_STORAGE_DEVICE = "/dev/mmcblk1" IMAGE_BOOT_FILES:append = "boot.scr" Mender Classes and Variables
  • 14. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux  Mender creates a /data partition to store persistent data, preserved during Mender updates. Supports ext4, Btrfs and F2FS file systems.  The Mender client on the embedded devices uses /data/mender to preserve data and state across updates  Variable MENDER_DATA_PART_SIZE_MB configures the size of the /data partition. By default it is 128 MB. If enabled, mender feature mender- growfs-data which relies on systemd-growfs tries to resize on first boot with the remaining free space  It is possible to create an image for the data partition in advance with bitbake: IMAGE_FSTYPES:append = " dataimg" Mender Data Partition
  • 15. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Mender add-ons Mender supports several add-ons:  Remote Terminal - interactive shell sessions with full terminal emulation  File Transfer - upload and download files to and from a device  Port Forward - forward any local port to a port on a device without opening ports on the device  Configure - apply configuration to your devices through a uniform interface
  • 16. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Mender Delta Updates  Mender offers robust delta update rootfs as a module for the commercial Mender plan (closed source implementation)  Requires reboot to apply the update  Supports rollback  mender-binary-delta creates a binary delta by comparing two different artifacts  Mandatory requirement for the implementation is a read-only root file system: IMAGE_FEATURES += "read-only-rootfs" EXTRA_IMAGE_FEATURES = "read-only-rootfs"
  • 17. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux RAUC  A lightweight update client that runs on an Embedded Linux device and reliably controls software A/B updates  Supports multiple update scenarios  Supports HTTP streaming and adaptive updates  Provides tool for the build system to create, inspect and modify update bundles  Uses X.509 cryptography to sign update bundles  Supports encrypted update bundles  Compatible with the Yocto Project, PTXdist and Buildroot
  • 18. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux RAUC Licenses  RAUC – LGPLv2.1 https://github.com/rauc/rauc  meta-rauc - MIT https://github.com/rauc/meta-rauc  rauc-hawkbit – LGPLv2.1 https://github.com/rauc/rauc-hawkbit  rauc-hawkbit-updater – LGPLv2.1 https://github.com/rauc/rauc-hawkbit-updater
  • 19. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux RAUC Integration Steps  Select an appropriate bootloader  Enable SquashFS in the Linux kernel configurations  ext4 root file system (RAUC does not have an ext2 / ext3 file type)  Create specific partitions that matches the RAUC slots in the OpenEmbedded Kickstart (.wks) file  Configure Bootloader environment and create a script to switch RAUC slots  Create a certificate and a keyring to RAUC’s system.conf
  • 20. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux  Supports single and redundant data partitions  For redundant data partitions the active rootfs slot has to mount the correct data partition dynamically, for example with a udev rule RAUC Data Partition
  • 21. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux RAUC Advanced Features  HTTP Streaming Supports installing bundles directly from a HTTP(S) server, without having to download and store the bundle locally  Adaptive Updates Adaptive updates can be installed on any version, using data from the target system, such as previous versions or even interrupted installations. Paired with HTTP Streaming, RAUC downloads only the required parts of the bundle, improving efficiency.
  • 22. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux  Yocto/OE layer with examples how to integrate RAUC on various machines  Started in 2020  Moved to the RAUC organization in GitHub in 2021  https://github.com/rauc/meta-rauc-community/ Contributions are always welcome as GitHub pull requests! meta-rauc-community
  • 23. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux  Raspberry Pi  BeagleBone  x86-64  NXP  QEMU  Rockchip  Allwinner (Sunxi)  DHSBC STM32MP13 meta-rauc-community
  • 24. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux SWUpdate  A flexible open source update framework with small footprint for atomic updates  Supports signing with RSA keys and with certificates using an own PKI infrastructure  Supports incremental update of binary images  Supports Lua extensions  Compatible with the Yocto Project, Buildroot and deb package (experimental)
  • 25. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux SWUpdate  SWUpdate under GPLv2  A library to control SWUpdate under LGPLv2.1.  Extensions written in Lua under Lua license (MIT)  Supports the Yocto Project / OpenEmbedded and Debian / Ubuntu  Supported devices through Yocto/OE layer meta-swupdate-boards: Beaglebone Black, Raspberry Pi, Sama5d27-som1-ek-sd and Wandboard
  • 26. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Features Mender RAUC SWUpdate A/B updates Yes Yes Yes Roll-back Yes Yes Yes Configure add-on Yes No No Monitor add-on Yes No No Troubleshot add-on Yes No No Local web interface No No Yes Side by Side Comparison
  • 27. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Features Mender RAUC SWUpdate Client Programming Language C++ (previously Go) C C Client License Apache 2.0 LGPL-2.1 GPLv2 Yocto Project Integration Scarthgap Scarthgap Scarthgap Contributions GitHub Pull Requests GitHub Pull Requests Mailing List Management Server Yes 3rd Party 3rd Party Side by Side Comparison
  • 28. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux 3rd Party Management Servers  Eclipse HawkBit https://eclipse.dev/hawkbit/  qbee.io https://github.com/qbee-io/meta-qbee  AWS IoT https://github.com/aws4embeddedlinux/meta-aws
  • 29. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux libubootenv  Provides a hardware independent way to access to U-Boot environment  Includes replacements for the "fw_printenv" and "fw_setenv" tools, which are compatible with any board  Written in C  Available in GitHub under LGPL-2.1  Started by Stefano Babic in December 2018  Used by SWUpdate, RAUC, Mender and other solutions  OpenEmbedded/Yocto recipe: https://git.openembedded.org/openembedded-core/tree/meta/recipes-bsp/u-boot/
  • 30. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Combined Strategies with Containers  Yocto/OE layer meta-virtualization provides support for building Xen, KVM, Libvirt, docker and associated packages necessary for constructing OE-based virtualized solutions  virtualization has to be added to the DISTRO_FEATURES: DISTRO_FEATURES:append = " virtualization"  For example adding Docker to the embedded Linux distribution is easy: IMAGE_INSTALL:append = " docker-moby"  There are use cases on powerful embedded Linux devices where containers are combined with A/B updates of the base Linux distribution built with Yocto/OE
  • 31. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Conclusions  With many reliable open-source solutions available for updating embedded Linux devices, developing an in-house solution is rarely worth the effort  The dual A/B update mechanism implementation depends on the bootloader  Mender, RAUC, and SWUpdate all handle A/B updates effectively but differ in how they are implemented and the advanced features they offer  Mender provides an end to end turn-key solution with management server  Delta and/or adaptive updates are also possible with Mender and RAUC  Choosing the best solution can be challenging, as it depends on the specific requirements of your project
  • 32. FOSDEM 2025, Leon Anavi, Exploring Open Source Dual A/B Update Solutions for Embedded Linux Thank You! Useful links:  https://www.yoctoproject.org/  https://mender.io/  https://rauc.io/  https://swupdate.org/  https://www.konsulko.com/mender-raspberry-pi-5  https://www.konsulko.com/ota-updates-imx8mp-mender  https://www.konsulko.com/ota-qbee-rauc-imx8mp