User Tools

Site Tools


Table of Contents


Libostree, previous known as OSTree, is both a shared library and suite of command line tools that combines a “git-like” model for committing, downloading and downloading bootable filesystem trees.


Yocto/OpenEmbedded layer meta-updater provides libostree and Aktualizr in Automotive Grade Linux (AGL). Aktualizr is a C++ reference implementation of SOTA OTA update client integrated with libostree.


Although the straight-forward way for doing Software OTA updates in AGL is through ATS Garage, it is also possible to use directly OSTree built with the agl-sota feature and meta-updater.

Required hardware for setting up a demo Raspberry Pi 3:

  • Raspberry Pi 3
  • microSD card
  • Build machine
  • Router and a couple of Ethernet cables

For example, the following procedure performs an update of AGL image on Raspberry Pi and adds the simple text editor nano:

  • Built AGL image for Raspberry Pi 3 and boot it on the board.
  • Add the following line to conf/local.conf to add nano and rebuild the image:
IMAGE_INSTALL_append = " nano "
  • On the host, go to directory:
cd tmp/deploy/images/raspberrypi3/ostree_repo
  • On the host, start a simple web server:
python -m SimpleHTTPServer 8000
  • On the Raspberry Pi 3, configure OSTree remote:
ostree remote add --no-gpg-verify agl http://<host_ip>:8000
  • On the Raspberry Pi 3, check for new updates:
ostree pull agl raspberrypi3
  • On the Raspberry Pi 3, deploy an update:
ostree admin deploy agl:raspberrypi3
  • On the Raspberry Pi 3, reboot the system to apply the update:
systemctl reboot
  • On the Raspberry Pi 3, verify that nano has been successfully provided with the update.
agl-distro/libostree-demo.txt · Last modified: 2018/02/08 13:57 by leonanavi