Summary

Provide downloads of pre-built Linaro images, avoiding the need for developers to download a rootfs+hwpack and run that through linaro-media-create locally.

Rationale

Currently, to get a Linaro image a developer has to install linaro-media-create, download an hwpack/rootfs for their board and finally run l-m-c passing the hwpack/rootfs. Doing so is not trivial (proof of that is the rather long wiki page with instructions on how to do so) and most people would expect to find a single file that they can just flash to their SD card and boot their boards, in the same way they'd do with a regular Ubuntu image. To make matters worse, installing l-m-c on distros other than Ubuntu is not easy (and virtually impossible on Windows), so lots of developers can't get hold of a Linaro image to test on their boards.

User stories

  • As a possible contributor, I want to install Linaro on my Panda board without having to run a big script as root (as I don't have time to audit it) so that I can give it a try and decide whether or not to get involved
  • As a Linaro engineer I want to be able to point people at QEMU test images that they can easily run without having to install other programs first, so that we can get more users testing our changes.
  • As a Fedora/OpenSUSE user I want to see how the latest Ubuntu LEB performs on my Panda board so that I can decide whether or not to switch to Ubuntu.
  • Developers ( e.g ARM DS-5 users ) who are creating apps on Linaro platforms would want to run applications on different Linaro target platforms without having to use other tools / without root privileges for using the media create tool

Design

We will provide prebuilt, fixed-size images for each of our milestones. These images will be gzip-compressed to reduce storage needs and for faster downloads. On the same directory as each of them there will be symlinks to the rootfs and hwpack used to build them. All of this will be done by a tool that is ran by the release manager.

Even when compressed, each generated image will have at least 100MiB, with most of them having significantly more, so we'd like to run the tool inside the DC and download/upload things from/to the internal network. That's slightly problematic because linaro-media-create requires root access, so we've asked IS if it's possible for them to give us a chroot and a user with root access there (RT #45968), where we can run our tool. For that to work we need to make sure our tool works when ran inside a chroot, as l-m-c does.

Our docs will be updated with instructions on how to burn those images to an SD card (both on Windows and Linux) as well as to resize the root filesystem after it's burned onto the SD card.

For the first two releases where we provide prebuilt images, we will do so for all image types and then evaluate their download counts to decide whether or not it makes sense to continue providing prebuilt images for all of them.

Implementation

The tool will generate one image for every hwpack/image-type combination, using the latest built hwpack and rootfs tarball. It will also be possible to specify a subset of all image types for when we don't want/need images of certain types. These images will then be copied to releases.linaro.org.

Some hwpacks+rootfs combinations will have to be blacklisted as it doesn't make sense to use them together (e.g. omap3+ubuntu-desktop; omap3-x11-base should be used in this case).

The optimal image size for every image type will be defined in the tool itself (e.g. 256MiB for nano, 2GiB for ubuntu-desktop, etc).

We'll also want to change TestDrive to use the prebuilt images when they're available but if we keep the hwpack/rootfss available for download as well, it should continue working just fine until we update it.

Wiki instructions

Have to be updated; instructions added to use the milestone images on both Linux and Windows

Other solutions considered but not suitable

  • Make l-m-c available as RPM
    • Would be quite some work
    • Would not be enough: l-m-c is a long way from working on Windows.
  • Provide a QEMU instance remotely, similar to WebLive

    • People will generally want to try it on the hardware they have
  • Provide a "Linaro developer environment VM" with Linaro development tools including linaro-media-create
    • Would help solve this problem for other Linaro tools (gcc-linaro etc.)
    • IGEP people do this
    • Large download and disk space requirements
    • May not be able to access SD card reader (e.g. built-in SD reader)
  • Testdrive provides the experience that people want, but still requires them installing l-m-c locally, so it's not of any help

Comments

Please can we also have links to exact source and debug packages for the pre built images as without these the images would not be of much use for developers?

  • I would also like source and debug symbols that correspond to the prebuilt images to be available. Along with the prebuilt images, this would help users because they would (a) not have to each use l-m-c on a Linux host and (b) they could debug the kernel without needing to rebuild it. --sd


CategorySpec CategoryTemplate

Platform/Specs/11.11/PrebuiltImages (last modified 2012-01-19 10:30:40)