Mender Blog

Yocto OTA updates - full root FS updates vs package vs container | Mender

Written by Kristian Amlie | Jul 5, 2021 4:00:00 AM

You have to do OTA software updates for your Yocto image so what does the process look like? The first thing is deciding what kind of update you want. As a user you might tend to think immediately about RootFileSystem updates for operating the whole file system. This is a good choice for many. But not necessarily for all users. There are other kinds of updates that you can do, such as updating containers. It is very common now to run Docker and update the entire roof file system just to update a container. But this might be something of an overkill as it’s going to use so much bandwidth and take so much time. It can also wear out your flash memory very quickly. So thinking about what you want to update is the first thing you should do.

Root FS updates are core

The RootFileSystem updates are the core. RootFileSystem updates is the central use case of Mender.io and it is also the most difficult. So it requires the most investment in terms of board Integration and set up. You can get away with easier integration work, if you are only going to update Docker containers. But you can also update both RootFileSystem and Docker containers which may fit very naturally into a schedule where you have such as your own application update cycle every week. Whereas the whole RootFileSystem update might only be scheduled to take place once every six months.

Root FS update vs package update for Yocto

A full RootFileSystem update approach for Yocto is done quite rarely. The package based updating approach for Yocto is much more commonplace. It can be a bit more difficult to get that to work on Yocto. However, Docker updates are relevant for both Yocto and for Ubuntu. So, this depends on how your application works. But if your application is running in a container it's very likely that a container update would be the right choice to use in addition to, or instead of root FS updates.

Docker containers and Yocto

Docker is just like an additional piece of software on top of your Yocto, so it's not really going to be any different. A container in its nature is not sensitive to which environment it's running and that's sort of the point of the containers. So as long as you have the docker daemon installed on your Yocto image, it should be the same as running it on Ubuntu. And actually, this also gives you the flexibility to move your application from Ubuntu to Yocto. If you started out that way for example.

Consider reading these other articles on Yocto: