OS Builder/Run on XO hardware: Difference between revisions

From OLPC
Jump to navigation Jump to search
Line 22: Line 22:
mount
mount
# unmount any existing partition
# unmount any existing partitions
umount /media/mysdcard
umount /media/mysdcard
# use fdisk to delete manufacturer's partition
# delete manufacturer's partition
# create a new partition, of at least 2GB, type 82
# create a new partition, of at least 2GB, type 82
fdisk /dev/mmcblkN
parted /dev/mmcblkN
(parted) rm 1
(parted) mkpart primary linux-swap 1M -1s
(parted) quit
# prepare the new partition to be swap
# prepare the new partition to be swap
# it will report a UUID identifier
# it will report a UUID identifier
partprobe
mkswap /dev/mmcblkNp1
mkswap /dev/mmcblkNp1
# add this line to fstab to use swap automatically on every boot
# add this line to fstab to use swap automatically on every boot
UUID=<UUID reported by mkswap> swap swap defaults 0 0
echo UUID=<UUID reported by mkswap> swap swap defaults 0 0 >> /etc/fstab
# enable all swap partitions in fstab
# enable all swap partitions in fstab
swapon -a -v
swapon -a -v
* Prepare the USB HDD 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:
* Prepare the HDD partitioning it with fdisk with a large partition of type "83", then use mkfs to create an ext3 or ext4 partition.
date --utc --set="{{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY}} {{CURRENTHOUR}}:{{CURRENTMINUTE}}:{{CURRENTSECOND}}"
* Ensure the system date is correct, if not -- use date -s "current date" to set
* Follow the [[OS_Builder/Development|OS Builder development installation instructions]] -- remember to disable firstboot, and note that you will want to have your OS Builder directory on the external USB disk
* Follow the [[OS_Builder/Development|OS Builder development installation instructions]] -- remember to disable firstboot, and note that you will want to have your OS Builder directory on the external USB disk
* On F14, you will need to bind-mount /var/tmp to be on your external USB HDD; some large tmp files:
* For 11.3.x, On F14, you will need to bind-mount /var/tmp to be on your external USB HDD; because some large files are created:
mkdir /media/externaldisk/vartmp
mkdir /media/externaldisk/vartmp
cp -pr /var/tmp/* /media/externaldisk/vartmp/
cp -pr /var/tmp/* /media/externaldisk/vartmp/

Revision as of 03:23, 13 June 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.75 and XO-4 hardware and builds of the 11.3.x series and 13.2.x series.

Ingredients

  • XO-1.75 or XO-4
  • Good, fast SD card for swap,
  • External USB HDD -- fast, large capacity, to store cached RPMs and build files,

Recipe

  • Install a recent OS (we used 11.3.1-17 or 13.2.0-8)
  • Boot to Sugar or Gnome, log in, connect to network
  • Disable automatic power management from the Sugar control panel, or in Gnome:
 touch /etc/powerd/flags/inhibit-suspend
  • Insert external SD card to be used for swap
  • Prepare the SD for swap -- in a terminal, as root
 # see what block device id is the external SD
 mount 
 
 # unmount any existing partitions
 umount /media/mysdcard
 
 # delete manufacturer's partition
 # create a new partition, of at least 2GB, type 82
 parted /dev/mmcblkN
 (parted) rm 1
 (parted) mkpart primary linux-swap 1M -1s
 (parted) quit
 
 # prepare the new partition to be swap
 # it will report a UUID identifier
 mkswap /dev/mmcblkNp1
   
 # add this line to fstab to use swap automatically on every boot
 echo UUID=<UUID reported by mkswap> swap swap defaults 0 0 >> /etc/fstab
 
 # enable all swap partitions in fstab
 swapon -a -v 
  • Prepare the USB HDD 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 17:43:32"
  • Follow the OS Builder development installation instructions -- remember to disable firstboot, and note that you will want to have your OS Builder directory on the external USB disk
  • For 11.3.x, On F14, you will need to bind-mount /var/tmp to be on your external USB HDD; because some large files are created:
 mkdir /media/externaldisk/vartmp
 cp -pr /var/tmp/* /media/externaldisk/vartmp/
 mount -o bind /media/externaldisk/vartmp /var/tmp
  • For 11.3.x, we want to work on branch v4.0, so
  git checkout -b v4.0 origin/v4.0
  • For 13.2.x, install the olpc-os-builder package:
sed -i '/excludedocs/d' /etc/rpm/macros.imgcreate
yum install olpc-os-builder
  • During test builds, generating only one image is faster -- edit examples/olpc-os-11.3.1-xo1.75.ini to disable 8GB image generation and comment out the "usb_update" module.

Your setup is ready, you can now do:

 sudo ./osbuilder.py examples/olpc-os-11.3.1-xo1.75.ini