Customization stick

From OLPC
Revision as of 07:36, 16 August 2008 by Skierpage (talk | contribs) (Preparing the key:: use <tt> for files, restructure, clarify)
Jump to: navigation, search
  Please copy/paste "{{Translationlist | xx | origlang=en | translated={{{translated}}}}}" (where xx is ISO 639 language code for your translation) to Customization stick/translations HowTo [ID# 152875]  +/-  


  This page is monitored by the OLPC team.

A customization key is a USB flash drive with special boot files that upon reboot will install activities, and optionally a new OS image, from the USB flash drive onto an XO.

This lets you install your own set of activities and library content on top of a signed OLPC build. You may want to include a named activity pack in your customization key.

Preparing the customization key:

  • Get a USB flash drive
    • NOTE: this does not currently work when booting from an SDIO card. You must use a USB drive.
    • The USB flash drive must be formatted with a VFAT partition, this is the default for larger USB flash drives.
  • Unpack customization-2.zip into the root directory of the USB flash drive.
    • This will create an empty subdirectory bundles and a subdirectory boot containing two files runos.zip and actos.zip. These two files have the special boot instructions that install the other files you put on the
  • Optional: If you want to install an OS image, add fs.zip and osXYZ.img to the USB flash drive from the base build you want to install.
    • This is optional. If no signed base build is present, the activities will still be installed.
    • For example, the files for build 708 (release 8.1.1) are at http://download.laptop.org/xo-1/os/official/708/jffs2/ , where you'll find the files fs.zip and os708.img.
    • Only official releases are signed, and have an associated fs.zip file.
  • Drag the .xo files (activity bundles) and .xol files (library bundles) you want to install into the bundles directory on the USB flash drive.
  • If you create a zip file containing files named frame00.565 through frame26.565 and place it in bundles with a name ending in .pb, you can customize the boot animation. You might also replace the shutdown graphic (but our UL certification depends on displaying the standard graphic).

Using the key:

Once you've created your USB flash drive(s) in this way:

  • Insert the USB flash drive into a powered-off XO
  • Turn the machine on while holding down all four game pad keys to update to newer build and customize.

The machine will erase all contents of the flash including any existing activation lease or developer key on the XO, install the base build, and then install your custom activity and content set. It will then power-off, and you can remove the USB flash drive and move on to the next XO.

  • If you only want to customize:
    • On secure/restricted machines you can turn the machine on; you don't have to hold down any game pad keys.
    • On developer/unrestricted machines on developer machines you will need to hold down the x game key to simulate security.

NOTE: If your machine is unactivated, this key does not perform the activation step for you. You will need to Activate your XO in order to get the machine to boot after this process. Note that you can not put your activation lease on the customization key and expect it to work; it will boot the customization routine instead of booting into the activation routine. Your activation lease file (lease.sig) must be on a different key (or else you must temporarily rename the 'boot' directory on the customization key).

Scaling up

For large-scale country deployments, we provide a tool to convert a customization key into a filesystem image suitable for Quanta to flash onto machines at the factory. See the Image builder page for more information.

See also

Firmware Security explains how the XO firmware handles files like runos.zip and actos.zip at boot time.

Previous Versions:

  • customization-1.zip deprecated: this version hangs when unpacking bundles with many files because of a resource starvation bug