[yocto] Yocto-ish upgrade-in-place strategy

Patrick Doyle wpdster at gmail.com
Sun May 3 14:10:24 PDT 2015


On Sun, May 3, 2015 at 3:58 PM, Chris Morgan <chmorgan at gmail.com> wrote:
> We thought about the rescue/recovery approach as well. The issue was how the
> system would recover in the field and how updates were handled.
>
> Consider that to update the full system image you'd have to download and
> store that image to flash, unless you stored it somewhere, and if you were
> going to store it you'd have to have extra space for that. For recovery
> you'd have the similar approach of booting recovery but you could write
> directly to the primary fs since you're booted to recovery. The trouble
> there is download speed and connectivity. The system is down until you
> download the update diff/full image and that could take some time. And the
> system is down for that period.
>
> So we didn't see a path forward that would support slow connections plus no
> down time. And we would still need some place to put the new image that was
> guaranteed to be available which means it couldn't be used for application
> or other data that had to be preserved across updates. With two rootfs
> partitions we can download in place and take our time doing so. Plus no
> special recovery image and no reserved area that is unused except during
> update. We do have a full duplicate rootfs though.
>
> I see where you are going, for other use cases it may be better to have a
> primary and a recovery. Our rootfs is around 200MB at this point.
I don't expect my rootfs will be anywhere near 200MB.  It's a deeply
embedded, single function application.  So the issues of memory size
and bandwidth don't really apply for my particular application.

As I have thought about this more (driving to and from baseball games
for my kids), I think what I was really wishing for was a Yocto
standard/recommended Poky core-image-bootstrap image with appropriate
hooks and configuration items to allow me to tailor it to my
particular application.

So far, I'm not sure how core-image-bootstrap differs from
core-image-minimal, except for the additional packages and a custom
rc.local I mentioned previously.  So perhaps there isn't a need for
such a beast, and I'll go roll my own bootstrap/rescue upgrade
strategy myself.

I'll go start a different thread with a specific question along that line now...

--wpd



More information about the yocto mailing list