Mender compatibilty regard to updating Yocto project

Hello,

I’m considering the issue about Mender compatibility from Yocto updating perspective. I’ve been doing some search about similar topics on the Mender HUB but I’ve not found suitable one for my concerns - sorry if it duplicates another already existing topic.

I thought there may be a situation when we need to update one selected package or the whole selected layer, and then it also requires updating Yocto to a newer revision. If we also use meta-mender layer in this project, due to the compatibility of Yocto layers it also requires updating this layer to the proper Yocto branch (if it already exists).
I’ve read the sections of documentation that partially describes this problem:

I’d like to add that I only consider the case of mender client (used by CLI), without using the integration with server.
Is it right to worry that despite keeping the same artifact format, after updating the Yocto branch (and thus the meta-mender) it will be not possible to update firmware due to i.e changes concerning integration with the bootloader and etc?

I see that in case of the thud branch, you provided some solution for migration support to newer warrior branch. What is the prospect of such support for migration from other versions? I mean migration from thud branch to newer ones, or in the future - for exampe from newest (at the moment) dunfell branch to even newer ones?

Considering the case when some kind of migration is required, the system image does not need to have support for state scripts before updating - it should be added in the artifact that will make the update, I’m right?

I know that the problem may seem a bit general, but it can also be clarified by referring to selected cases of boards, versions etc.

Thanks for any feedback.

1 Like

Generally, requiring “migration steps” in meta-mender has been the exception instead of the rule. As far as I can recall we have only required this for thud -> warrior because we changed how mender.conf works as it can be stored in multiple locations.

As far as I know, upgrading warrior -> zeus -> dunfell did not require any special migration steps in meta-mender.

Is it right to worry that despite keeping the same artifact format, after updating the Yocto branch (and thus the meta-mender) it will be not possible to update firmware due to i.e changes concerning integration with the bootloader and etc?

Not necessarily, and I hope some additional community members can confirm based on their past experience.

By default. we do not update the bootloader which should enable a seamless migration. It does get a bit more complicated if you intend to update the bootloader as well and care must be taken (to your concerns) that the configuration does not change, primarily where the U-Boot environment is stored etc.

Considering the case when some kind of migration is required, the system image does not need to have support for state scripts before updating - it should be added in the artifact that will make the update, I’m right?

That is correct. Note that state-scripts for e.g Download and Idle states must be in the rootfs while all other states are provided together with the Artifact (link)

I think this was what I had for now :slight_smile:, if there are any specific concerns please let me know and I will try to help.