ARMPreinstalledSDCardImages

Summary

With the maverick ARM release we will start to support several SoCs that are ROM-restricted to only boot from a single disk like device. On these boards the traditional installer approach of booting from one media to install to another is not workable. To solve this problem images with a preinstalled system that do the hardware specific configuration as well as the user specific configuration during first boot will be created by our build system.

Release Note

Maverick ARM now comes with images that do not need a separate installation step. Customisation of the installation is performed at first boot.

Design

Today the live image builders create a squashfs which then gets used by a special boot implementation (casper) to run an installable live session. We will adjust the live image build system to instead create ext3 images to be used by a newly implemented boot process (suggestion: jasper) which does the hardware specific setup on first boot, expand the ext3 filesystem to the full size of the media and then boots into oem-config for initial user configuration. The oem-config process removes itself after running and rebuilds the initramfs. We will use this existing functionality to remove jasper alongside so on second boot the system behaves like any other ubuntu install.

Implementation

  • A new initramfs tool will be created to adjust the initial setup of fstab, flash-kernel, sudoers, system groups and loopback networking. This tool will also extend the ext3 partition to the full size of the device as well as regenerate the UUID for usage in fstab and on the kernel cmdline. We will call this tool jasper. Research has to be done in the installer to guarantee that all adjustments jasper does are identical to a normal ubuntu install.
  • livecd-rootfs will get support for using genext2fs/tune2fs to create ext3 images instead of a squashfs
  • livecd-rootfs will be changed to install jasper instead of casper with a special commandline switch.
  • the existing debian-cd scripts for armel subarchitectures will be changed to create a two partition image, the first partition will be vfat formatted and contain a fully set up bootloader (u-boot), kernel (uImage) and an initramfs (uInitrd). Since we only support the OMAP platform in maverick only these scripts will be changed. In case other sub-architectures will re-appear in maverick+1 these scripts can serve as a base for similar implementations.
  • The oem-config packages will be changed to include jasper in the removal task before it rebuilds the initramfs.

Test/Demo Plan

  • Write an image to SD card and run it on an ARMv7 system.
  • Verify presence/content of files present in an installed system, but not typically present in a livecd-rootfs constructed filesystem.

Outstanding issues

  • Integration of a working first-boot image into a factory install process: the intent of this spec is limited to hobbist installs, and more work may be required for use at a significant scale.


CategorySpec

Specs/M/ARMPreinstalledSDCardImages (last edited 2010-05-19 10:51:49 by p2238-ipbf7204marunouchi)