This repository contains a demonstration of how systemd-sysupdate can be integrated with images built using the Yocto project.
Building this demo requires using kas as follows:
$ pip3 install kas
$ export DL_DIR=$PWD/cache/downloads/
$ export SSTATE_DIR=$PWD/cache/sstate-cache/
$ export IMAGE_VERSION=0
$ kas shell kas-poky-demo.yml
$ bitbake -c build core-image-demo
Testing the image can be done with runqemu as follows:
$ runqemu snapshot kvm nographic slirp ovmf qemux86-64 tmp/deploy/images/qemux86-64/core-image-demo-qemux86-64.rootfs.wic
Updating a running image requires to generate new images with bumped IMAGE_VERSION, publishing updates and then pulling these updates from the running image:
$ export IMAGE_VERSION=1
$ # build image as shown above
$ mkdir -p ./updates
$ cp build/tmp/deploy/images/qemux86-64/updates/* ./updates
$ (cd ./updates && sha256sum * > SHA256SUMS && python3 -m http.server 3333)
$ updatectl check
$ updatectl update
$ reboot
MIT License
Copyright (c) 2025 Igalia S.L.