Firmware/Building

From OLPC
Jump to navigation Jump to search

Recipes for building Open Firmware for the OLPC XO.

Fedora - native self-hosting

Building on the hardware, or the same architecture, on which Open Firmware will be run.

Warning: we have experienced bricks as a result of compiler changes, the most recent being the switch from Fedora 11 to Fedora 14 on ARM. A brick test is when the build is checked on a laptop that can be easily debricked. We may mark recipes that are brick tested.

XO-1

How to build Open Firmware for an XO-1, on an XO-1:

  • start with OLPC OS 13.2.0 build 8,
yum install -y gcc git svn make glibc-static iasl
svn checkout -q svn://openfirmware.info/openfirmware
(cd openfirmware/cpu/x86/pc/olpc/build; make olpc.rom)
  • brick tested.

XO-1.5

How to build Open Firmware for an XO-1.5, on an XO-1.5:

  • start with OLPC OS 13.2.0 build 13,
yum install -y gcc git svn make glibc-static acpica-tools
svn checkout -q svn://openfirmware.info/openfirmware
(cd openfirmware/cpu/x86/pc/olpc/via/build; make olpc.rom)
  • does not currently work, fails with
--- Cmd: iasl -p dsdt -vi -vr -vs ../dsdt.dsl
../dsdt.dsl(387) : warning  3104: Reserved method should not return a value (_PTS)
../dsdt.dsl(1566) : warning  3124: Switch expression is not a static Integer/Buffer/String data type, defaulting to Integer
../dsdt.dsl(1656) : warning  3124: Switch expression is not a static Integer/Buffer/String data type, defaulting to Integer
../dsdt.dsl(1964) : error    6033: _HID string must be exactly 7 or 8 characters (XO15EC)
../dsdt.dsl(1976) : error    6136: Non-hex letters must be upper case (15EBK)
ASL Input:     ../dsdt.dsl - 2218 lines, 58890 bytes, 926 keywords

XO-1.75

How to build Open Firmware for an XO-1.75, on an XO-1.75:

yum install -y gcc git svn make glibc-static wget
svn checkout -q svn://openfirmware.info/openfirmware
(cd openfirmware/cpu/arm/olpc/1.75/build; make olpc.rom)
  • brick tested on 2013-09-13 with svn 3703 using 32013o2.zd,
  • brick tested on each release, as this is the basis of the configuration used for building the release, although an XO-4 is used as the builder rather than XO-1.75,

XO-4

How to build Open Firmware for an XO-4, on an XO-4:

  • start with OLPC OS 13.2.0 build 8,
yum install -y gcc git svn make glibc-static wget
svn checkout -q svn://openfirmware.info/openfirmware
(cd openfirmware/cpu/arm/olpc/4.0/build; make olpc.rom)
  • brick tested on each release, as this is the basis of the configuration used for building the release,

Ubuntu

An XO-1.5 build using an Ubuntu 13.04 Raring chroot:

apt-get install debootstrap schroot
debootstrap --arch i386 raring raring-i386 http://archive.ubuntu.com/ubuntu
cp -p /etc/apt/apt.conf raring-i386/etc/apt/      # for universe, security, etc
cp -p /etc/apt/sources.list raring-i386/etc/apt/  # for proxy settings
cp -p /etc/environment raring-i386/etc/           # for proxy and locale settings
cp -p /etc/sudoers raring-i386/etc/               # for %admin on Ubuntu
ln -s /proc/mounts raring-i386/etc/mtab
cat << EOF > /etc/schroot/chroot.d/raring-i386
[raring-i386]
directory=/home/james/ephemeral.iso/raring-i386
type=directory
personality=linux32
groups=users,admin
EOF
schroot -c raring-i386
apt-get update
apt-get install git subversion gcc patch make wget iasl
svn checkout -q svn://openfirmware.info/openfirmware
(cd openfirmware/cpu/x86/pc/olpc/via/build; make olpc.rom)
  • brick tested with q3c15,