Launchpad Entry: selection-of-arm-images
Packages affected: livecd-rootfs, debian-cd
This specification describes an informational discussion held at UDS Jaunty in Mountainview about the right selection on initial images for the armel architecture in ubuntu 9.04
Ubuntu supports the ARMv7 architecture with the following images ...
With the armel architecture appearing in ubuntu it needs to be identified which selection of images should be built. ARM uses very specific boot methods for hardware that can vary from board to board, the currently vfat/syslinux or iso9660/isolinux image setup used for other architectures will not boot right away, ARM will need special treatment and we need to identify a bootloader process that works for the majority of the devices. It will also need to be identified if we want to use live images with ubiquity or go for a textbased install via debian-installer, which will also be influenced by the flavours to be built (ubuntu-desktop might suit better for live images, while ubuntu-server will require to be built with debian-installer support)
Jon bought a new freescale pegatron netbook that he got without OS for only $150, he wants to install ubuntu on it, downloads a live rootfs from cdimage.ubuntu.com, fires up the image-merger tool he installed on his ubuntu desktop at home in which he then selects the proper kernel for his netbook. The tool asks him to plug in a USB key to be used for installation and within minutes Jon has a bootable USB key to install ubuntu from a livesystem on his new netbook.
Willy has a nokia n810. He wants to use an ubuntu installation on it. Willy downloads the ubuntu-alternate-armel.img from cdimage.ubuntu.com, writes this image to an SD card, boots his nokia device from it and installs ubuntu to the internal flash memory. During the installation Willy selects the n8x0 kernel flavour and after a reboot his tablet boots into ubuntu.
The livefs.sh script from the livecd-rootfs package needs to grow a --skip-kernel option that suppresses the installation of kernel images in the squashed rootfs, so kernel-less rootfs images can be created.
An offline tool will be created that merges a downloadable squashfs with a kernel package for a selectable target board and writes the merged image file to a target device.
The ubuntu build servers will create debian-installer based images for armel that include all binary kernels for the possible target boards. The necessary armel related bits and pieces apart from the kernels are already available from debian.
The following set of images was discussed at UDS to be built for jaunty:
- live ubuntu-desktop (kernel-less)
- d-i ubuntu-server
Possible additional images (if we get community support and requests) were discussed as well but are more likely to show up in a later cycle:
- live netbook-remix (needs GL support for the desktop launcher)
- live kubuntu
- live xubuntu
Future possible images are:
- live MID
- An extremely small image which would fit in flash and wouldn't require mass storage such as a SATA disk
Installation from disk or flash devices as well as netbooted installs will be supported by debian-installer, the -desktop flavour as a default will be made avilable through an alternate image, optionally the user can select other flavours than desktop in the expert mode of debian-installer in this image, where tasksel is available to install all other possible flavours of ubuntu.
With the livecd-rootfs changes in place the build servers will be able to roll kernel-less squashfs images that will be provided for download. An offline GTK based tool will be written to select a target kernel and create an actual livefs. The mentioned tool will write the image to a target device (USB or SD card) as a final step.
There are different bootloaders that can be used on ARM based systems, most common are uboot and redboot (JTAG based devices are out of scope, these have to be installed vendor side), currently it is up to the user to configure the bootloader to boot from the installation device. A possible solution that doesnt yet go into the image build could be provided by ARMSoftbootLoader but this is beyond the scope of this spec and probably rather a task for the jaunty+1 development cycle.