OS Builder/Run on XO hardware: Difference between revisions
Jump to navigation
Jump to search
(→Recipe) |
(move to subpage) |
||
Line 61: | Line 61: | ||
= Experiences = |
= 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|experiences]] for further detail. |
|||
== 2013-07-29, XO-4, 2GB RAM, 4GB SWAP, 500GB USB HDD, 13.2.0 == |
|||
Build took 31 minutes. |
|||
# time ./osbuilder.py examples/olpc-os-13.2.0-xo4.ini |
|||
... |
|||
real 30m55.275s |
|||
user 12m42.790s |
|||
sys 2m8.370s |
|||
Configuration file: http://dev.laptop.org/~quozl/z/1V3fiW.txt |
|||
Hardware performance measurements: |
|||
* internal eMMC, sequential read, 49 MiB/s, (operating system), |
|||
* internal eMMC, filesystem write, 13.7 MiB/s, |
|||
* USB HDD, sequential read, 27 MiB/s, (osbuilder filesystem), |
|||
* USB HDD, filesystem write, 27 MiB/s, |
|||
* external SD, sequential read, 15 MiB/s, (swap), |
|||
Performance tweaks: |
|||
* versioned_fs=0 |
|||
* make_tree_tarball=0 |
|||
* no sugar |
|||
* a warm file cache (timing of a subsequent run, not an initial run) |
|||
== 2013-07-30, XO-1.75, 1GB RAM, no SWAP, 500GB USB HDD, 13.2.0 == |
|||
Build took 43 minutes. |
|||
# time ./osbuilder.py examples/olpc-os-13.2.0-xo1.75.ini |
|||
... |
|||
real 43m13.025s |
|||
user 23m44.010s |
|||
sys 4m17.620s |
|||
Configuration file: http://dev.laptop.org/~quozl/z/1V3xjq.txt |
|||
Hardware performance measurements: |
|||
* internal eMMC, sequential read, 27.8 MiB/s, (operating system), |
|||
* internal eMMC, filesystem write, 7.38 MiB/s, |
|||
* USB HDD, sequential read, 27.5 MiB/s, (osbuilder filesystem), |
|||
* USB HDD, filesystem write, 27 MiB/s, |
|||
Performance tweaks: |
|||
* versioned_fs=0 |
|||
* make_tree_tarball=0 |
|||
* no sugar |
|||
* a warm file cache (timing of a subsequent run, not an initial run) |
|||
== 2013-07-30, XO-1.5, 1GB RAM, no SWAP, 500GB USB HDD, 13.2.0 == |
|||
Build took 39 minutes. |
|||
# time ./osbuilder.py examples/olpc-os-13.2.0-xo4.ini |
|||
... |
|||
real 38m50.632s |
|||
user 21m16.550s |
|||
sys 2m58.560s |
|||
Configuration file: http://dev.laptop.org/~quozl/z/1V3vxy.txt |
|||
Hardware performance measurements: |
|||
* internal microSD, sequential read, 18.2 MiB/s, (operating system), |
|||
* internal microSD, filesystem write, 6.23 MiB/s, |
|||
* USB HDD, sequential read, 32 MiB/s, (osbuilder filesystem), |
|||
* USB HDD, filesystem write, 29.4 MiB/s, |
|||
Performance tweaks: |
|||
* versioned_fs=0 |
|||
* make_tree_tarball=0 |
|||
* no sugar |
|||
* a warm file cache (timing of a subsequent run, not an initial run) |
Revision as of 02: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
- 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-11-21 14:23:46"
- 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.