OS Builder/Run on XO hardware: Difference between revisions
(→Recipe) |
(→Recipe) |
||
Line 21: | Line 21: | ||
* disable automatic power management from the Sugar control panel, or in Gnome: |
* disable automatic power management from the Sugar control panel, or in Gnome: |
||
sudo touch /etc/powerd/flags/inhibit-suspend |
sudo touch /etc/powerd/flags/inhibit-suspend |
||
* configure |
* configure the system to keep documentation after package installation<ref>this is needed so that the example files in olpc-os-builder are kept, which are classified as documentation for the olpc-os-builder package, and are deleted by default on OLPC OS</ref>: |
||
sed -i '/excludedocs/d' /etc/rpm/macros.imgcreate |
sudo sed -i '/excludedocs/d' /etc/rpm/macros.imgcreate |
||
* install some packages: |
* install some packages: |
||
sudo yum install -y ntpdate gparted olpc-os-builder binutils git |
sudo yum install -y ntpdate gparted olpc-os-builder binutils git gcc make libtomcrypt-devel zlib-devel |
||
⚫ | |||
⚫ | |||
blkid /dev/mmcblk1p1 |
|||
UUID="ff1bfee8-4051-4d53-ba5e-e21559fc3c24" TYPE="swap" |
|||
# add this UUID to fstab to use swap automatically on every boot |
|||
⚫ | |||
# enable all swap partitions in fstab |
|||
swapon -a -v |
|||
⚫ | |||
⚫ | |||
sudo ntpdate pool.ntp.org |
sudo ntpdate pool.ntp.org |
||
⚫ | |||
⚫ | |||
eval $(blkid -o export /dev/mmcblk1p1) # get the UUID |
|||
⚫ | |||
⚫ | |||
cd olpc-os-builder |
|||
swapon -a -v # enable swap |
|||
⚫ | |||
eval $(blkid -o export /dev/sda1) # get the UUID |
|||
umount $DEVNAME |
|||
mkdir /oob |
|||
echo UUID=$UUID /oob ext4 auto,rw 0 0 >> /etc/fstab # add to table |
|||
mount -a # mount the filesystem |
|||
⚫ | |||
cd /oob # change directory |
|||
⚫ | |||
cd olpc-os-builder # change directory |
|||
* customise your build to make it build faster, by editing examples/olpc-os-13.2.1-xo4.ini |
* customise your build to make it build faster, by editing examples/olpc-os-13.2.1-xo4.ini |
||
** remove the ''[usb_update]'' module, |
** remove the ''[usb_update]'' module, |
Revision as of 04:54, 30 July 2013
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
Each of these must be dedicated to the task for as long as you need to make builds:
- an XO-1.5, XO-1.75 or XO-4<ref>use an XO-1.5 to make XO-1 or XO-1.5 builds, and use an XO-1.75 or XO-4 to make XO-1.75 or XO-4 builds.</ref>,
- optional<ref>we have tested without swap on XO-1.5, XO-1.75 and XO-4, each of which have at least 1GB of RAM.</ref>; an 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,
- an unfiltered internet connection<ref>the builder must be able to download files from repositories, and filtering may prevent file downloads, in particular one user reported RPMs starting with the name tracker were blocked.</ref>.
Recipe
- install 13.2.0-13,
- boot to Sugar or Gnome, log in, and connect to your wireless network,
- optional; insert a USB ethernet adapter and connect to your wired network,
- disable automatic power management from the Sugar control panel, or in Gnome:
sudo touch /etc/powerd/flags/inhibit-suspend
- configure the system to keep documentation after package installation<ref>this is needed so that the example files in olpc-os-builder are kept, which are classified as documentation for the olpc-os-builder package, and are deleted by default on OLPC OS</ref>:
sudo sed -i '/excludedocs/d' /etc/rpm/macros.imgcreate
- install some packages:
sudo yum install -y ntpdate gparted olpc-os-builder binutils git gcc make libtomcrypt-devel zlib-devel
- ensure the system date and time are correct:
sudo ntpdate pool.ntp.org
- optional; insert external SD card, and prepare it for swap using gparted, Applications -> System Tools -> GParted Partition Editor, then add it to the filesystem table:
eval $(blkid -o export /dev/mmcblk1p1) # get the UUID echo UUID=$UUID swap swap defaults 0 0 >> /etc/fstab # add to table swapon -a -v # enable swap
- prepare the USB hard drive using gparted, Applications -> System Tools -> GParted Partition Editor, partitioning it with a large ext4 partition, then add it to the filesystem table:
eval $(blkid -o export /dev/sda1) # get the UUID umount $DEVNAME mkdir /oob echo UUID=$UUID /oob ext4 auto,rw 0 0 >> /etc/fstab # add to table mount -a # mount the filesystem
- download v7.0 of olpc-os-builder to the USB hard drive:
cd /oob # change directory git clone -b v7.0 git://dev.laptop.org/projects/olpc-os-builder # download cd olpc-os-builder # change directory
- customise your build to make it build faster, by editing examples/olpc-os-13.2.1-xo4.ini
- remove the [usb_update] module,
- in the [base] module, set versioned_fs=0 and make_tree_tarball=0,
- reduce the [global] langs= to the languages you need,
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.
Notes
<references/>