Migrating Ångström framework (Bitbake/Poky/OpenEmbedded issues)

Last week I had to use my wife’s powerful laptop. Since downloaded sources take approx. 13 GB, starting from scratch would be not especially efficient. So I had to copy the stuff and met some problems. Of course, it was up to absolute paths contained in configuration files and created temporary data. Following points are important:

  • delete old .oe directory from your home directory if there was one before
  • change saved_tempdir file in ../angstrom/setup-scripts/build/tmp-angstrom_2010_x-eglibc as there is a absolute path to the original temporary directory in it (do simple `pwd` > saved_tempdir)
  • delete content of ../angstrom/setup-scripts/build/tmp-angstrom_2010_x-eglibc, leave only saved_tempdir file in it
  • delete site.conf and sanity-info files contained in ../angstrom/setup-scripts/conf, they are being created while running MACHINE=beagleboard ./oebb.sh config beagleboard
  • sometimes, but do not ask why, sanity.conf contained in ../angstrom/setup-scripts/sources/openembedded-core/meta/conf must be touched. Rules for this behavior remain unknown.

This instruction sounds to be simple and short, but discovering it took quite a while. I hope it will help you !


Another bad thing found is u-boot recipe error, deployment is done only once, after building for first time. The only method to do it again is running following commands with –force option:

bitbake -f -c clean u-boot

and consecutive

bitbake -f -c deploy u-boot

Only this combo works! bitbake u-boot doesn’t – copying from staging area fails, although logfile comment remarks an attempt to do that!


Ångström never ending battle

Found out where the f*** meta-toolchain recipes are stored. Hoorrah!!  /Projects/angstrom/setup-scripts/sources/openembedded-core/meta/recipes-core

Ångström  distribution build environment set following infos at : http://www.angstrom-distribution.org/building-angstrom

I must say, the fragmentation of the embedded linux software development tools is horrific. I’ll try to make my notices publique to contribute a small piece to open source community.

There is a difference between “setup-script method” and Narcissus building – the latter one uses ancient stable 2.6.32 kernel, the first one the 3.0.14 branch.


General remark: never ever use Ralink WLAN adapters (rt73usb) on Linux! After years spent on chasing sloooow SSH logins and dripping SSH-Session bytes I discovered ath9k_htc driven TP-LINK device (TL-WN722NC) – it works like a charm. 


Why am I using Ångström? It is coherent (sic!! in comparison to Ubuntu rootfs/kernel splitted maintanance). My goal is to create a BeagleBoard based low-latency gateway system for connecting CAN bus with WLAN device on the other side. It needs PEAKCAN driver, stable WLAN driver, and hostapd based Access Point. That’s all. It took a lot of time to build separate working software chunks. Ubuntu Natty rootfs with Robert C Nelson kernel 3.1 + hostapd + PeakCan driver works allright (but slow!). One has to remember aligning gdb and gdbserver when working remotely from Ubuntu Oneiric + linaro toolchain (GDB version mismatch).


Angstrom “setup-script” compilation this morning:

  • meta-toolchain -> OK
  • meta-toolchain-sdk -> NOK, fails while trying to change something in my host /etc and so on. Why? Where is the description of this bb file? What does it do? Questions over questions…
  • console-image -> OK


Next problem will be compiling PeakCAN driver with Angstrom kernel, since the driver needs kernel headers. Compilation of Ubuntu RCN kernel aganist them was a piece of cake.


Next, I’ll try Yocto/Poky. How do they differ form OpenEmbedded? How often do they cross-contribute if ever? I think without analyzing Angstrom setup-scripts which are somehow easier to understand I’ll stay stupid…


This link let me understanding what to do to be able to cross-compile stuff using local built native ipk packages:


Hopefully, this will work fo bare-bone Angstrom/OE, not Poky only.