Compile Angstrom for Beagle Bone black.


I want to use Angstrom linux on Beangle bone black. I come across some steps used to compile Angstrom (from source code) for BeagleBone but not for BeagleBone black. so My query is:

  1. Can I directly use the images compiled for BeagleBone on BeagleBone Black? If not, can you please refer me some good reference links for the same?

  2. In other linux distribution (like ubuntu), we need MLO, u-boot, uImage & file system image to boot up the board. To use Armstrom on I am following compilation steps from this link: And at the end, it generated uImage. So where are the other components (MLO, uboot, file system)?Do we need to compile them separately from other source code?

  3. I found different different steps to push the images on Beagle Bone. Can you please refer me what steps I should use?


On 10/15/2013 5:22 AM, wrote: I think you have missed the bottom of step 2. ( ans yes it is a little confusing) For a console image: MACHINE=your_machine ./ bitbake console-image For a gnome desktop image: MACHINE=your_machine ./ bitbake systemd-gnome-image You should then have MLO and u-boot. Mark

Hi Mark,

Thanks for our prompt response.

Can you please share you inputs on other points (1 & 3) also. Apart from this, when I was done with compilation, I just look over the different directories generated in to setup-scripts to find out the kernel source code. But I am not seeing the source code in it. I found the same directory structire as it is normally in kernel source code at : setup-scripts/build/tmp-angstrom_v2012_12-eglibc/sysroots /beaglebone/usr/src/kernel. but it does not contain the driver source file and all. I want to make some changes/add some new driver support, compile it and use it on beagle bone black. So am I missing something in this? I mean, what is correct from the below points?

  1. Is MACHINE=beagleboard ./ bitbake virtual/kernel command should download the kernel code? If yes, can you please share the directory path?
  2. If NO, then from where should I download it? and how to compile it?


This guide details the process of building a Beaglebone (White/Black) console image from the Angstrom source on an Ubuntu Linux host. In theory you could do this on the target, but it will take a very time and you may run out of memory (both NAND and RAM).


Then we need some additional development tools. Enter the following:

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

And finally we need bitbake:

sudo apt-get install bitbake

Download Angstrom Distribution and Build

To download the distribution for Beaglebone enter the following commands:

cd ~/Projects

mkdir angstrom-v2012.12

cd ./angstrom-v2012.12

git clone git://

cd setup-scripts

git checkout angstrom-v2012.12-yocto1.3

MACHINE=beaglebone ./ config beaglebone

MACHINE=beaglebone ./ update

In file setup-scripts/conf/local.conf modify the following line:

INHERIT += “rm_work”


INHERIT += “rm_work”

And to compile the console version of the distribution:

. ~/.oe/environment-angstromv2012.12

bitbake console-image

During these steps the computer must be connected to the Internet. The resulting MLO, u-boot.img and root file system are found in:


It takes a while for all of this to complete.

Hi All,

I need your help in one more point. I am not able to flash new image in BBB board’s eMMC. I have followed the step mentioned at :". What I am observing is:

  • first I power down the board–>press user button–>power up the button (keep user button pressed) till LED glows on… With this steps, beaglebone black gets booted from the image written in SD card. As I understand, at this imnstance, eMMC flashing should be started.

  • While googling more, I come across the link"!topic/beagleboard/aledCGHimBY". In this page, they are manually executing script from the BBC’s command prompt but it gives me error.

Can you please guide me If I am missing any thing in this. I am using 5V 3A power adaptor while flashing eMMC. Also ethernet cable is not connected while doing all this which may draw some current.



Does this work for you?

Just to make sure that the issue is with your SD card and not something else.



Yup, I have also referred the link with you have suggested. But it did not worked for me.

I was able to write .img file successfully in to SD card with the disk image writte utility. Also, BBC board is successfully booted up from the SD card. But I want to write the image in to eMMC but the steps mentioned in the link did not worked for me to flash the image in eMMC.


The information in the link I sent works for us. We have done it over 80,000 times and it works every time. Of course, the SD card has to be correct.

You need to go to the author of the information in the link.



Thanks. Tomorrow I will give it a try with newer SD card and will get back to you with the updates.


Hi All,

eMMC falshing done successfully. There was a bad from my side. It is suggested that there should not be any USB device connected while flashing the image in eMMC. I was keeping FTDI cable connected though another end of th cable (USB connector) was not connected with PC but still it did not worked. But then I have removed TDMI cable from serial debug port of the board and tried again and it worked very well.

Glad you are up and running.


Hi All,

I am stuck at following in beagle bone task. Please share your inputs in this regard:

Hi All,

I would like set-up a web server lighttpd on beaglebone black. i have tried with following approaches:

  1. first tried with installing package through opkg
    opkg update
    opkg install lighttpd

but above process gets hung at “Configuring lighttpd” message. i have waiting for 3-4 hours but it still stuck at this point.

  1. Then I have decided to go with source code compilation. I have downloaded the source code and tried to cross compile it as per the reference link “”. In this link, I have modified configuration command as:

./configure --prefix=/home/user/build_lighttpd/build_pcre/_install --build=i386-linux --host=arm-linux --target=arm-linux CC=/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc AR=/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-ar STRIP=/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-strip RANLIB=/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-ranlib LDFLAGS=/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-ld

It configured successfully without any error (I have modified this command because I was getting an error with the original command given in the link). But after that, when I apply make command, I am getting an error: “./.libs/ could not read symbols: File in wrong format”. Can you guys please add your inputs in this stuff.

If I am following wrong reference link for cross compilation, please suggest the appropriate one.


I have sucessfully used lighttpd on the BBB before, and also had the problem where it got stuck at the “Configuring lighttpd” message. Like you, I tried waiting hours with no progress. I found that I could just Ctrl-C abort the process at that point and everything worked anyway. I also had to run these commands first to disable the built-in web service:

systemctl disable bonescript.socket
systemctl disable bonescript.service
systemctl disable bonescript-autorun.service
systemctl stop bonescript.socket
systemctl stop bonescript.service
systemctl stop bonescript-autorun.service

Hope that helps!

  1. Does this method leave open the possibility to modify the source code for the kernel? I’d like to be able to modify some things and wonder if the compile process won’t just revert all code back to its original state first. I have done this process for the BBW a while ago, and kind of remember the INHERIT += “rm_work” modification will keep your changes. Is that correct?

  2. Also, I see that the original poster got his image to flash to the eMMC. I was under the assumption that there are two different kinds of images you could write to an SD card: one for those that intend to boot straight off the SD card, and another for flashing the internal eMMC (after which the SD card is no longer needed). Would this method create an image that I can use to then flash the eMMC?


Hi All,

Yup agreed. I too had aborted the process at “Configuring lighttpd” wbut still lighttpd works fine with me on BBB. Infact after that, I was able to compile lighttpd from source code and it worked well on BBB.

Thank you all for your help!


I’m following the instructions posted above, but when I run bitbake console-image, I immediately get a “No such file or directory” error for “setup-scripts/sources/meta-angstrom/conf/layer.conf”. I should note that I’ve recently tried other methods for building the kernel. For this new attempt I made a new directory. Simple fix?