Dummies Guide to Building Angstrom Linux for MinnnowBoard



=Summary= This guide explains building the Embedded Linux distribution - Angstrom from source in a beginner friendly manner.

Important Notes
1. These instructions have been documented using Ubuntu 12.04 LTS as the reference operating system. It is advised that you also have the same setup.

2. Please make sure that you have at least 18GB of free space available as the source code can take up a lot of space.

3. It took 8 hours to build a systemd-image on a dual core I7 machine with 8GB RAM and only two(out of the possible 4) threads used.

=Procedure=

Step-1:

Install the pre-requisites by typing the command below in the terminal:

sudo apt-get install gawk wget git diffstat unzip build-essential chrpath libsdl1.2-dev xterm unzip texinfo \ git texi2html subversion ncurses-dev sed cvs coreutils docbook-utils python-pysqlite2 help2man make \ gcc g++ desktop-file-utils chrpath dosfstools kpartx

''Note:- DO NOT install a distro-packaged version of bitbake. The metadata included in various yocto layers only works with a particular version of bitbake. Angstrom and Yocto will ensure the correct version is included when you check out the code.''



Step-2:

Change the default shell in Ubuntu from dash to bash typing the command below in the terminal::

sudo dpkg-reconfigure bash





Step-3:

The next step is to download the Angstrom setup scripts which will help us prepare a development environment for building the Angstrom image. Type the following command in your terminal:

git clone git://github.com/Angstrom-distribution/setup-scripts.git



Step-4:

By default the git branch you will be working with will be master. Since the master continuously undergoing changes and bug fixes it can sometimes lead to unsuccessful build generation. So, it is better to switch to a stable branch. To see which branch you are currently working with type the commands below:

cd setup-scripts/ git branch -a



Now type the command below to switch to a stable branch of your choice:

git checkout -b

The command in our case becomes git checkout -b remotes/origin/angstrom-v2013.06-yocto1.4



Step-5:

Make the necessary changes to the local.conf file as shown below. This file can be found in ~/setup-scripts/conf/local.conf.



LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin commercial" NOISO = "1"
 * 1) Add this to the bottom:

Explanation: * LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin commercial" : This is required to prevent the resulting image from including anything that might violate the license terms of the packages used to implement the video acceleration feature, such as gst-ffmpeg and ffmpeg. * NOISO = "1" : Due to a bug in ISO generation when building for EFI-only machines, it is necessary to include this line in   your local.conf:

Step-6:

Setup the necessary environment for MinnowBoard by typing the command below in the terminal:

MACHINE=minnow ./oebb.sh config minnow



Step-7:

When it comes to building the Angstrom image you have lots of options and recipes to choose from, each resulting in a different configuration and packages. The typical command would be:

MACHINE=minnow ./oebb.sh bitbake 

Few examples of the types of Image you can build are systemd-image (minimalistic and perfect for embedded developers) or the systemd-gnome-image (With gnome2 desktop environment)

Let us finally build the image now:

MACHINE=minnow ./oebb.sh bitbake systemd-gnome-image



Step-8:

In my case the resulting image was located in /setup-scripts/deploy/eglibc/images/minnow



=Writing the Angstrom Image to an external storage device=

Now that we have successfully built an Angstrom image from source, the next step is to write the image to an external storage device(microSD card, HDD etc.) and test it on the MinnowBoard. Depending on which type of storage device you are planning to write the image to, please select an appropriate link from below:


 * Installing Angstrom on a Hard Disk


 * Installing Angstrom on a microSD card

=Troubleshooting=