OS Builder/Run on XO hardware

From OLPC
< OS Builder
Revision as of 02:54, 30 July 2013 by Quozl (talk | contribs) (move to subpage)
Jump to navigation Jump to search

It is usually possible, if a bit slow, to run OS builder on XO hardware. On platforms where fast machines are available (such as x86), using a server-class "builder" machine is recommended.

When resources are limited, or if server-class machines are not available for the platform (such as ARM), this recipe is recommended.

The procedure has been tested with XO-1.5, XO-1.75 and XO-4 hardware and 13.2.0-13.

Ingredients

  • an XO-1.5, XO-1.75 or XO-4,
  • a SD card for Swap; minimum size 512 MB, good quality, fast access, e.g. class 10,
  • a USB hard disk drive for storing RPMs and build files; minimum size 120 GB, fast, large capacity,

Recipe

  • install 13.2.0-13,
  • optional; insert a USB ethernet adapter and connect to your network,
  • boot to Sugar or Gnome, log in,
  • optional, if you have no USB ethernet adapter; connect to your wireless network,
  • disable automatic power management from the Sugar control panel, or in Gnome:
 sudo touch /etc/powerd/flags/inhibit-suspend
  • optional; insert external SD card, and prepare for swap -- in a terminal, as root
 # see what block device id is the external SD, usually mmcblk1p1
 mount | grep mmcblk
 
 # unmount any existing partitions
 umount /dev/mmcblk1p1
 
 # delete manufacturer's partition
 # create a new partition, of at least 2GB, type 82
 parted /dev/mmcblk1
 (parted) rm 1
 (parted) mkpart primary linux-swap 1M -1s
 (parted) quit
 
 # prepare the new partition to be swap
 mkswap /dev/mmcblk1p1

 # the above will report a UUID identifier, such as
 Setting up swapspace version 1, size = ... KiB
 no label, UUID="ff1bfee8-4051-4d53-ba5e-e21559fc3c24"

 # add this UUID to fstab to use swap automatically on every boot
 echo UUID=ff1bfee8-4051-4d53-ba5e-e21559fc3c24 swap swap defaults 0 0 >> /etc/fstab
 
 # enable all swap partitions in fstab
 swapon -a -v 
  • prepare the USB hard drive, partitioning it with a large partition of type "83", then use mkfs to create an ext3 or ext4 partition,
  • ensure the system date is correct, set it if necessary:
 date --utc --set="2024-12-18 05:34:20"
  • install the olpc-os-builder and binutils packages:
sed -i '/excludedocs/d' /etc/rpm/macros.imgcreate
yum install olpc-os-builder binutils
  • during test builds, generating only one image is faster -- edit examples/olpc-os-13.2.1-xo4.ini to comment out the "usb_update" module.

Your setup is ready, you can now make the first build:

 sudo ./osbuilder.py examples/olpc-os-13.2.1-xo4.ini

The first build will take much longer than subsequent builds, because it will download RPMs and activities to disk.

Experiences

On XO-1.5, XO-1.75 and XO-4 with a typical USB hard drive, the build takes between half an hour and an hour on subsequent runs. See experiences for further detail.