OLPC/ImageTools

= OS image builder tools =

The image tools are a set of scripts used for building the OS 'firmware' images for the OLPC platform. They take a YUM repository as input, and generate a disk image as output, which can then be copied to the flash, or run within the  simulator.

Process

 * Use the YUM tool to install a chroot containing a minimal set of packages from the upstream Fedora OLPC repository.
 * Use a black/white list to strip out files which are either not required at all (man pages, documentation, etc) or to be distributed separately (locales, charsets, fonts).
 * Setup basic system configuration make the basic OS services run without needing further admin configuration
 * Generate initial ramdisk for booting the images under a variety of scenarios, such as real hardware, host PC, or simulator.
 * Generate a JFFS2 filesystem containing all the files from the (stripped) chroot
 * Create a file to representation the master disk image & partition as needed.
 * Copy the JFFS2 filesystem into the disk image
 * Setup the bootloader on the MBR

During the course of this process data is collected on various aspects of the system, such as RAW per-directory disk usage, per-directory disk usage in compressed JFFS2 image, disk usage associated with each source RPM after file stripping & JFFS2 compression. These reports both, allow day-to-day development progress to be tracked, and enable easier identification of areas of the OS image which will require further space optimizaiton.

Desired functionality
At this time the image tools produce a hard disk image which can be either run in the simulator, or copied to a USB flash memory stick for direct boot. It is also desirable to be able to create VMDK images for VMWare, and ISO images to act as a Live CD demo.