Created snappy for ODROID C1 / image works but now there are questions

Simon Eisenmann simon at struktur.de
Mon Jun 8 11:01:57 UTC 2015


Hi,

i wanted to learn about Ubuntu Snappy and to do just that i built
support for the ODROID C1[1].

The image builder is releasd as a Makefile project at

  https://github.com/longsleep/snappy-odroidc

With this repository, one can build the required OEM snap and the device
tree from their corresponding sources (U-Boot and Kernel both compiled
from source). Resulting image even works.

I learned a lot about Snappy while doing this and also encountered some
challenges which i was only be able to solve with crude hacks.

Here comes a list in the order i found them

- How to build initrd

There is not much information about this, i ended up downloading
ubuntu-core/daily-preinstalled tar and repacking the included initrd.
That feels wrong.

- U-Boot compatibility

The snappy docs say a bunch of things about U-Boot requirements,
though they were not very helpful for me as it says nothing about
U-Boot version. It turned out that the U-Boot for ODROID C1 does lack
features and uses old style commands. At the end i had to overwrite some
of the stuff defined in snappy-system.txt using U-Boot scripting (see
https://github.com/longsleep/snappy-odroidc/blob/master/oem/boot-assets/boot.ini#L25).
The U-Boot is in poor shape and i started a discussion at the Hardkernel
board on this http://forum.odroid.com/viewtopic.php?f=111&t=13924. It
seems that noone has yet requested to get a newer U-Boot. I find that
strange as the ODROID-C1 is listed all over the place as on the Snappy
related pages.

- uEnv.txt is required

Even that the ODROID U-Boot does not require or use uEnv.txt, the snappy
tool still needs it as the presence of uEnv.txt is used for U-Boot
detection. I ship a empy one now.

- Device tree - where to put it

Everthing works, the image boots and can be upgraded fine, system-a, -b
switching works as well. So now the stuff needs to become official. I
managed to upload the OEM snap to the Ubuntu Snappy store, but there is
no way to publish the device tree. Both is required and should be signed
to produce a consistent verified environment. No solution as of now for
this.

- Entropy issues

I noticed the entropy pre seed does not work. I filed a bug[2]. This
seems critical, as the ODROID C1 comes with Kernel 3.10 which does not
block on entropy on boot. Essentially this means that the random number
generator has very few entropy after boot.

- How to add things to base system

To create a stable and secure base image, some more things need to be
added to the base image. It is not clear to me, how one creates,
maintains and publishes update-able changes / extensions to base system
stuff (eg. sysctl, additional system services, scripting, wifi auto
detection etc ..).


Any feedback and discussion is highly appreciated.

Best regards
Simon


[1]
http://www.hardkernel.com/main/products/prdt_info.php?g_code=G141578608433
[2] http://forum.odroid.com/viewtopic.php?f=111&t=13924

-- 

Simon Eisenmann

[ mailto:simon at struktur.de ]

[ struktur AG | Kronenstraße 22a | D-70173 Stuttgart ]
[ T. +49.711.896656.68 | F.+49.711.89665610 ]
[ http://www.struktur.de | mailto:info at struktur.de ]


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/snappy-devel/attachments/20150608/91ff9dda/attachment.pgp>


More information about the snappy-devel mailing list