[ELDK] [ANNOUNCE] Deployment of ELDK/Yocto images on target

Stefano Babic sbabic at denx.de
Mon Nov 18 15:00:04 CET 2013


Hi everybody,

it becomes more and more important to provide a suitable and reliable
way to install a new version of our software on the target. And in most
cases, this happens in field.
This issue was raised in the last ELCE in Edinburgh last month, too: how
can we efficiently deploy Yocto images ?

The main issue is that, even if it is fun and comfortable to work with
packages, in embedded world it is often (always ?) preferable to have a
single image (firmware), that the manufacturers have strongly tested and
lastly released. Letting the customer playing with single versions of
the packages is a nightmare that does not guarantee a valuable support -
and customers do not want this.

I worked on this issue, and I could provide a software tool that is
already in production in several customers' projects. Not only, it is
strongly used in the development phase to update the software on target
by the application developers, giving them a common and easy way to
update their software.

I am now proud to announce that I can publish this tool as standalone
open source project, released under GPL2.0+, with the name "swupdate".

I released the sources under:

	https://github.com/sbabic/swupdate

and I have also added a layer for generating an image containing the
tool for Yocto/ELDK:

	https://github.com/sbabic/meta-swupdate

I have started to write some documentation as well : you will find it in
the doc/source/swupdate.rst. I beg your pardon: developers don't
willingly write documentation, and I am not an exception. But I am
working on myself on this point, and I will try to improve the docs.

First at all, I have tried to explain pros and cons of some solutions:
- which strategies are suitable to update the software ?
- which resources are interested ?
- how can we update the single parts of the system ? How can we updated
 for example the firmware on microcontrollers attached to the main
system running Linux ?
- how can we assure that a broken / interrupted update does not break
the system ?

As usual, there is no a single answer, but I tries to explain my
solution and how I tried to make it for general purposes.

The fact that it is successfully running on several projects gives me a
good feeling that maybe I was not on a wrong direction.

Some features that are already in the tree:

- installing from storage (SD, USB,...) or from network.
- updating of MTD partitions, UBI Volumes, CFI flashes, SD, u-boot
variables,..
- let the customers a way to describe the software that must be
installed and how.
- hardware / software compatibility check
- support of a single big image containing the software of many devices.
It is possible to have a single image containing the images of several
products, and the software extracts only the parts it needs.
- runtime partitioning (not yet in tree, possible currently if done in a
script)
- expandable implementing "handler" for a specific installer
- pre- and post- scripts: it runs scripts in LUA
- check against corruption (checksum)
- inform the operator about the progress. AJAX is used for the
integrated Webserver, an interface is provided for other purposes (LCD /
GUI, ..).
- features are configurable via menuconfig like busybox
- ... what have I forget ?

As roadmap, I would like to add these new features in future:

- image verification with signed images to ensure only certified images
to be installed.
- together with first point, adding support for encrypted images can be
a common request.
- I am sure I will get several useful hints about what is needed.
- and of course, I will work to make this project useful for the open
source community.

I hope this can interest some of you and I will glad if someone will
share his comments.

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the eldk mailing list