[yocto] minimize size of SW update bundle

Paul Eggleton paul.eggleton at linux.intel.com
Wed Oct 18 13:34:53 PDT 2017


On Wednesday, 18 October 2017 3:11:59 AM NZDT Marc Ferland wrote:
> On Tue, Oct 17, 2017 at 9:12 AM, Robert Berger
> <yocto.user.mailinglist at gmail.com> wrote:
> > Hi,
> >
> > Imagine you have only a limited bandwidth to your devices available for SW
> > update. So you would like to minimize what's uploaded (over the air) to 
your
> > devices.
> >
> > How would you do this with yocto?
> >
> > [1] and [2] might be able to do incremental updates, but maybe there are
> > more ideas out there.
> >
> > Like how would you get a diff between two release builds...
> >
> 
> Some ideas:
> 
> - SquashFS with agressive compression settings can be quite
> impressive. I was able to reduce my image size from 650MB
> (uncompressed) down to maybe 120MB. This was for a complete system
> update though.
> - The new zstd algo from facebook looks promising (haven't tried it
> yet) and might be worth investigating, I think it is supported as a
> squashfs decompressor.
> - bsdiff can generate diffs from binary files (be carefull if diffing
> compressed files, i.e.: gzip --rsyncable).
> - there's also casync (never tried it): https://github.com/systemd/casync/

FWIW I have preliminary recipes for casync and zstd here, but I'm having 
trouble with some native dependencies not being populated properly when 
casync-native is pulled in by other recipes (or -c addto_recipe_sysroot), so 
it still needs work:

http://cgit.openembedded.org/meta-openembedded-contrib/log/?h=paule/casync

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list