The Ångström distribution is a Linux distribution for many embedded devices, the Beaglebone included. Here I am going to document the steps that I took in order to build a full distribution of Angstrom (easier to write without the unusual letters). I am working from the steps described at this site: http://www.angstrom-distribution.org/ but here I will document any difficulties and the times involved.

Step 1 – Download the setup scripts (<1 minute):

I am working from a directory called beaglebone that I created on a desktop Ubuntu installation. The directory is /home/molloyd/beaglebone/

Ensure that you have git installed – If not then type “sudo apt-get install git” A very short step ( <1 minute). This created a directory on my system called setup-scripts

Step 2 – Configure for the beaglebone ( <10 minutes):

This builds the profile for the beaglebone.

The first time I ran this it came up with an error on using bash rather than sh. I checked the oebb.sh script and it was configured for bash (this may have happened automatically) so, I tried it again and it worked the second time. This step took about 10 minutes.

Step 3 – Check for updates (<1 minute):

No changes were made.

Step 3 – The long one! Build time… (6+ hours)

This is where you will find out if your desktop Linux distribution has any missing tools. The obvious tools that will be missing are bitbake, but I had a few more too. I installed these by:

And so on as required – Others required include: cvs, build-essential, coreutils, texinfo, sed, gawk, make, unzip, gcc, g++, subversion, xmlto, docbook, etc.

See: http://www.openembedded.org/wiki/Getting_started for more information

Warning – before you continue make sure you have plenty of space. The build will require about 12GB of space and maybe even more during build. Leave about 20GB of space.

At this point you can choose a particular “recipe” for the type of build that you require. You can have a look at the sources directory (/home/molloyd/beaglebone/setup-scripts/sources/meta-angstrom/) and you can apply specific patches if required.

So, once you are ready, in the directory home/molloyd/beaglebone/setup-scripts/, for a more sophisticated and complete build you could use:

If necessary you could clean it up using:

In this example I am going to use a very compact kernel image:

Here are the other recipes that are available (The (***) one is the recipe that I am baking):

Once it is built will be left with a fairly unsatisfying prompt; however, there are no major errors and in my case the build is found in the /build/tmp-angstrom_v2012_12-eglibc/deploy/images/beaglebone:

You now have a .gz and a .xz version of each build.

Step 4 – Write the image to the SD Card… (10-20 mins)

Now to write the image to the SD Card. Place the SD card (I’m using a 4GB SD Card) in your desktop machine and go to the directory: setup-scripts/build/tmp-angstrom_v2012_12-eglibc/deploy/images/beaglebone/ or the equivalent for your build. Instructions for this are listed at: http://downloads.angstrom-distribution.org/demo/beaglebone/

Check where you have mounted your SD card:

You can see here that my SD card is mounted under /dev/sde

Now to prepare the disk and to write the image:

Be very careful that this is the SD card device. The last call will give an output like (shortened):

Next we have to mount the SD card:

Now check that everything has mounted correctly:

Now to copy the image files to the SD Card:

u-boot, MLO and uImage are symbolic links and should be renamed if necessary – the /mnt/boot/ should look like this:

Finally, the file system needs to be copied:

This will take a little while! (2-3 minutes)…

Remove the SD Card and boot your Beaglebone… (fingers crossed!). The user LEDs on the board should flash as the beaglebone boots.

Scan your network to see if it shows up! (this is my range

Which will give the output:

You can now ssh into the Beaglebone (username root/password root):

All is in order and you can check the current version using uname…