On 21 December 2017 at 14:51, Guillaume Tucker <guillaume.tucker@collabora.com> wrote:
On 21/12/17 14:49, Guillaume Tucker wrote:
On 19/12/17 19:02, Guillaume Tucker wrote:
[...]
I've now added some patches to generate the FIT image using
mkimage using a similar approach as for uImage, see all the
current reviews here:

https://review.linaro.org/#/q/topic:T6321-depthcharge

As Tomeu pointed out, the "mkimage -f auto" option can be used to
automatically generate a .its structure without actually using
any intermediate file.  There are a few things that can't be done
with this simple mode but as far as I can tell it should cover
our needs for Depthcharge.

The LXC support remains available if particular tests need customised
handling or options (or if a patched version of mkimage is needed).

The FIT format has been around for long enough for it to work
with standard mkimage, I would hope.  But yes, if some LAVA labs
use an older distro with an incompatible version then LXC would
be a way to keep the version of mkimage under control.  It would
however make the test definitions a bit more complicated and
depthcharge-specific, which is something we would prefer to avoid
for kernelci.org in particular.

So I'll see how it goes with running mkimage on the dispatcher
and with various versions of mkimage.

I still need to compare various versions of mkimage.

So Debian Stretch has mkimage 2016.11 which supports the "-f
auto" option.  However, Debian Jessie has mkimage 2014.10 which
does not and really needs an its file to generate an FIT image.

There's no backport to jessie-backports currently.

Add a check the validate() based on infrastructure_check() and see if the version can be checked for compliance - raise InfrastructureError exception if not. Then it will be up to admins to base their dispatchers on Stretch. We'll be moving to Stretch being the recommended base for LAVA in the New Year and dropping support for Jessie at some point in 2018.
 

Is it OK to require a recent enough version of mkimage as in
Stretch in order to generate these FIT images, or should we
generate the its file to support older versions?

I started to look at options to generate the its file, it can be
a bit cumbersome but should not be technically challenging...
Would be nice to avoid it if possible to keep the code simpler.

Alternatively, it should hopefully be easy enough to backport
u-boot-tools from Stretch to a local Jessie repository.

Also, dtc is not installed on ci.linaro.org so the Gerrit

Compare with existing unit tests - if you need a tool in the path which is not always installed, use a @skipIf decorator with the infrastructure_check on that binary.
 
automated unit tests are now failing since I added a check:

  14:35:27 JobError: Invalid job data: ["Cannot find command 'dtc' in $PATH"]

Guillaume



--