Updates to snappy and ubuntu-device-flashApr 20, 2015
The past few weeks in the snappy world have been a revolt, better said a rapid evolution for it to be closer to what we wanted it to be.
Some things have change, if you are tracking the bleeding edge you will notice a couple of changes, the store for example now exposes packages depending on the OS release, and system images are now built against an OS release as well. For core images we have two choices:
15.04 will be nicely locked down and guarantee stability while
rolling will just roll
on and you will see it stumble over (although it shouldn’t break badly,
APIs are what we
will try and aspire to keep in the breaking zone). Try is a strong word, which is why
are being used; the
core images have the concept of
channel which can be:
Today, as of this writing, we are supporting
alpha for each OS release and as soon
as we release we will have a
stable channel enabled. Store support for channels is coming to
a future near you which means that eventually packages can track different channels.
Another addition is a new
snap type called
oem, this snappy package allows OEMs to enable
devices and boards with a degree of customization such as:
- preinstalled unremovable or removable packages
- default configurations for preinstalled packages and ubuntu-core
- lock down configurations.
- custom DTBs
- boot files (e.g.; u-boot, uEnv.txt)
This package, uploaded to the store allows people to create custom enablements to support their product stories. This package’s capabilities can grow in the future to support some other niceties.
If you happen to use the development ppa for snappy
ppa:snappy-dev/tools you should be seeing
ubuntu-device-flash in the updates which supports most of this syntax and retires early
So in order to create a default image for the Beagle Bone Black you would do:
sudo ubuntu-device-flash core 15.04 --channel edge --oem beagleblack --output bbb.img
To create an generic amd64 image
sudo ubuntu-device-flash core 15.04 --channel edge --output x86.img
15.04 could be replaced with rolling and today the default channel is
edge but will be
stable as soon as we have something in there :-)
Keep in mind now that
rolling will return different store search results depending
on what the developer has targetted.
oem snaps passing in
--oem forces you to setup
the package is not signed by the store.
Last but not least, the
flashassets entry from
device tarballs used to enable new devices are
now ignored in favor of using the information from the
oem snappy package, this means that if
you have a port you will need to move it over to the oem packaging.