Building Ångström

All Ångström images are built using OpenEmbedded. This document described the steps necessary to setup an environment where you can build images and packages yourself. For a general introduction to setting up OpenEmbedded, see GettingStarted wiki page. If you run into trouble following the below tutorial, have a look at the GettingStarted wiki page, that contains information on all kinds of cornercases. The tutorial below is kept simple on purpose.

Step 1

Obtain bitbake and OpenEmbedded

Step 2

Install bitbake and OE:

mkdir /OE && cd /OE tar zxf /path/to/bitbake-1.8.8.tar.gz bunzip2 /path/to/OE.mtn.bz2 mtn --db=/path/to/OE.mtn pull monotone.openembedded.org org.openembedded.{stable,dev} mtn --db=/path/to/OE.mtn checkout --branch=org.openembedded.stable cd /path/to/org.openembedded.stable mtn pull monotone.openembedded.org org.openembedded.{stable,dev} ; mtn update

make a file to setup the environment variables (e.g. source-me.txt):

BBPATH=/OE/:/OE/build/:/OE/org.openembedded.stable/ PKGDIR=/OE/build/ DL_DIR=/OE/downloads echo Setting up dev env for Ångström if [ -z ${ORG_PATH} ] then ORG_PATH=${PATH} export ORG_PATH fi if [ -z ${ORG_LD_LIBRARY_PATH} ] then ORG_LD_LIBRARY_PATH=${LD_LIBRARY_PATH} export ORG_LD_LIBRARY_PATH fi PATH=/OE/bitbake-1.8.8/bin:${ORG_PATH} cd $PKGDIR LD_LIBRARY_PATH= export PATH LD_LIBRARY_PATH BBPATH export LANG=C echo "Altered environment for OE Development"

Step 3

Add the following to your local.conf:

# Where to store sources DL_DIR = "/OE/downloads" # Which files do we want to parse: BBFILES := "/OE/org.openembedded.stable/packages/*/*.bb" BBMASK = "" # ccache always overfill $HOME.... CCACHE="" # What kind of images do we want? IMAGE_FSTYPES = "jffs2 tar.gz " # Set TMPDIR instead of defaulting it to $pwd/tmp TMPDIR = "/OE/${DISTRO}-tmp/" # Make use of my SMP box PARALLEL_MAKE="-j4" BB_NUMBER_THREADS = "2" # Set the Distro DISTRO = "angstrom-2007.1" # 'uclibc' or 'glibc' or 'eglibc' #ANGSTROM_MODE = "glibc" MACHINE = "<your machine>"

Substitute "<your machine>" with the machine you want to build for, e.g.:

  • c7x0 - For pxa25x zaurus clamshells (SL-C700, SL-C750, SL-C760, SL-C860, SL-7500)
  • spitz - For pxa27x zaurus clamshells with a microdrive (SL-C3000, SL-C3100, SL-C3200)
  • akita - For pxa27x zaurus clamshells without a microdrive (SL-C1000)
  • tosa - For the SL-C6000
  • h2200 - For the iPAQ h2200 series
  • hx4700 - For the iPAQ hx4700
  • fic-gta01 - For the neo1973 phone
Or get some inspiration from here for picking a MACHINE.

Step 4

Start building:

# set environment variables source source-me.txt #Go to the OE tree cd /path/to/org.openembedded.stable #Make sure it's up to date mtn pull ; mtn update #Start building bitbake base-image ; bitbake console-image ; bitbake x11-image

Step 5

Building for a different machine or C library is just a matter of changing the MACHINE= or ANGSTROM_MODE statement in local.conf to a new value. There is ABSOLUTELY no need for using different directories for that; Angstrom takes care of all the details, it was specifically designed for this.

Back to top