Implementing an update/upgrade system for embedded Linux devices

后端 未结 5 750
忘了有多久
忘了有多久 2021-01-29 21:03

I have an application that runs on an embedded Linux device and every now and then changes are made to the software and occasionally also to the root file system or even the ins

5条回答
  •  佛祖请我去吃肉
    2021-01-29 21:20

    Atomicity is critical for embedded devices, one of the reasons highlighted is power loss; but there could be others like hardware/network issues.

    Atomicity is perhaps a bit misunderstood; this is a definition I use in the context of updaters:

    • An update is always either completed fully, or not at all
    • No software component besides the updater ever sees a half installed update

    Full image update with a dual A/B partition layout is the simplest and most proven way to achieve this.

    For Embedded Linux there are several software components that you might want to update and different designs to choose from; there is a newer paper on this available here: https://mender.io/resources/Software%20Updates.pdf

    File moved to: https://mender.io/resources/guides-and-whitepapers/_resources/Software%2520Updates.pdf

    If you are working with the Yocto Project you might be interested in Mender.io - the open source project I am working on. It consists of a client and server and the goal is to make it much faster and easier to integrate an updater into an existing environment; without needing to redesign too much or spend time on custom/homegrown coding. It also will allow you to manage updates centrally with the server.

提交回复
热议问题