ArmRootfsBuilderGUI

Summary

To build a rootfs tarball for armel based systems that match the ARMv7 standard but are not supported by any prebuilt image in ubuntu we currently provide a qemu wrapper script that sets up and configures a system using a script. The existing wrapper needs to be packaged and enhanced with GUI elements (i.e. oem-config) that take responsibility for a proper system setup which does not differ from a standard ubuntu installation so that the currently used setup script can be replaced.

Release Note

The new Ubuntu Offline Builder enables you to create a completely configured tarball for your ARMv7 system to be extracted on a rootdevice. The installed system does not differ from any other Ubuntu 9.10 installation.

Rationale

Ubuntu only supports a minimal set of ARMv7 hardware. To enable a broader community the RootfsFromScratch setup was invented in 9.04. The wrapper script used to set up a standard Ubuntu system inside a virtual machine currently does not produce a 100% identical setup to a normal image that was installed by debian-installer or ubiquity. The target of this spec is to enhance the existing wrapper to use standard tools to set up a system as close to a normal install as possible.

Design

  • A GUI frontend to the existing script will be created that enables the user to modify a subset of the commandline options the existing script uses (output format, task selection etc).
  • If a desktop system is chosen for installation inside the image an X session will be started completely transparently inside the VM to run oem-config this will be integrated into the running desktop session by either spawning a VNC connection to the VM or running a later to be uninstalled ssh server to which the running desktop connects via ssh X forwarding.
  • The GUI will offer a way to save the selected configuration.
  • Preparation for later kernel inclusion.

Implementation

  • The GUI will be implemented in pygtk and call original script as subprocess
    • Options
      • Read/write cfg file...
      • Mirror selection
      • Task selection or alternatively spawn synaptic inside the VM
      • Image size
      • Component selection
      • Hostname, login name, passwd will be set through spawning oem-config inside the VM
      • Output format (tarball or qemu image)
      • Logfile
      • --keep-image, --notarball options of existing script

Test/Demo Plan

  • Build an image and run it on an ARMv7 system.

Unresolved issues

  • Should kernel inclusion be possible, if so, how should handling unpackaged kernels be solved ?
  • Why did we not consider vmbuilder
    • Has different target use cases (cloud, dedicated appliance, multiple vm backend)
    • KVM bound (no qemu arm support in KVM)
    • Different output formats (live iso, portable vm specific backends), not root images for usb/raw use....
    • Bundles kernels while we want only a rootfs


CategorySpec

Specs/ArmRootfsBuilderGUI (last edited 2009-06-18 19:54:31 by p5098ed03)