OemIso

Summary

Create a CD image optimised for OEM deployment. In Dell's case, it should include what is on the standard CD image, all language packs, proprietary drivers, kernel & headers (PAE kernel & headers also for i386), and Ubiquity. Other OEMs may have different requirements.

Release Note

Ubuntu now includes a simple customisation tool that can be used by OEMs to construct modified CD images appropriate for their needs.

Rationale

Some OEMs have very tight margins on their factory deployments: the speed of installation has a direct effect on how fast they can churn out systems. The size of the installation image often makes a considerable difference to installation speed, and the Ubuntu DVD is typically much slower than the Ubuntu desktop CD. (In particular, Dell's recovery partition is created by copying the installation image.)

On the other hand, we don't want to have to try to figure out what's suitable for all OEMs, nor do we really want to centrally maintain and test another image for each of several flavours. As such, a tool to generate appropriate images seems to be the best option.

Scope

To allow us to squeeze this work into Lucid, we'll be keeping the scope quite tightly under control. In particular, at this point we will not permit customising the live filesystem, but only the package pool on the CD. The user will need to supply an existing image with an appropriate live filesystem.

Canonical's OEM Services team may be able to offer QA services for individual output images. That is out of scope for this development project, but is of course in scope for the wider organisational work.

User stories

  • Mario wants a CD image containing (in addition to the Ubuntu desktop CD) all language packs, fglrx, nvidia, wl, and linux-generic-pae, since that is what's appropriate for his deployed systems. He only cares about i386 for the moment, but will switch to amd64 once 64-bit Flash is stable.

Design

oem-config dependencies

oem-config needs to be able to install extra packages from the CD pool, e.g. language packs.

We will add additional preseedable templates to specify the pool location (default: just follow /etc/apt/sources.list) and for an arbitrary early shell command in oem-config (no default; in this case, could be used to mount the recovery partition where the pool may reside).

(See the language-installer tool written by OEM Services, although we may prefer to reuse existing code from ubiquity since it's already in the same source package.)

Customisation tool

The customisation tool will take at least an existing image, a list of package names or patterns to add to the pool, and optionally a list of package names or patterns to remove from the pool. It will fetch these packages from the archive and add them to the pool, regenerate Packages and Release files (without GPG-signing), and build the resulting tree into a new image. Constrained to this modest level of complexity, this should be reasonably straightforward.

Test/Demo Plan

It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.

This need not be added or completed until the specification is nearing beta.

Future work

A web (or other) front-end to permit arbitrary package selection. See also previous discussions around customisation tools, cf. Fedora's Reconstructor etc.


CategorySpec

FoundationsTeam/OemIso (last edited 2009-11-26 15:09:48 by 82-69-40-219)