All Ångström binaries are built using OpenEmbedded. This document described the steps necessary to setup an environment where you can build images and packages yourself.
The Angstrom buildsystem is using various components from the Yocto Project, most importantly the Openembedded buildsystem, the bitbake task executor and various application and BSP layers.
For the most up to date version of the instructions please check the README in the matching branch of the setup-scripts repo.
If you just want a simple toolchain, please read our simplified development setup instructions
The OE host distributions wiki has information about needed packages on your host and possible tweaks for e.g. SElinux.
get the setup scripts:
Go to the the setup-scripts repository and clone it, the URLS are on top of that page. You should end up doing something like:
git clone git://github.com/Angstrom-distribution/setup-scripts.git
If you are behind a firewalling proxy, have a look at the oebb.sh file, it has built-in proxy handling.
MACHINE=beagleboard ./oebb.sh config beagleboard MACHINE=beagleboard ./oebb.sh update MACHINE=beagleboard ./oebb.sh bitbake virtual/kernel
That will build the kernel for you.
Substitute “beagleboard;” 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
- om-gta01 – For the neo1973 phone
Or get some inspiration from looking in conf/machine in the various layers in the sources directory
#Build some more # you can specify machine on the cmdline: MACHINE=your_machine ./oebb.sh bitbake console-image MACHINE=your_machine ./oebb.sh bitbake systemd-gnome-image
Building for a different machine or C library is just a matter of changing the MACHINE= or TCLIBC 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.
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.