Building Angstrom

I’ve been meaning to put this up for a while. Providing nothing goes wrong the whole process is actually very easy! This is basically a rehash of the Angstrom webpage so you might prefer to follow that taking notes of the minor deviations below:

export OETREE="/home/doug/OE"
mkdir -p ${OETREE}

cd ${OETREE}
git clone git://git.openembedded.org/openembedded.git openembedded
cd openembedded
git checkout origin/stable/2009 -b stable/2009

To update the OE metadata simply:

cd ${OETREE}/openembedded
git pull

Now make the suggested script source-me.txt changing OETREE to suit your needs:

export OETREE="/home/doug/OE"

BBPATH=${OETREE}/:${OETREE}/build/:${OETREE}/openembedded/
PKGDIR=${OETREE}/build/
DL_DIR=${OETREE}/downloads
echo Setting up dev env for ร…ngstrรถm

if [ -z ${ORG_PATH} ] ; then
ORG_PATH=${PATH}
export ORG_PATH
fi

if [ -z ${ORG_LD_LIBRARY_PATH} ] ; then
ORG_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
export ORG_LD_LIBRARY_PATH
fi

PATH=${OETREE}/openembedded/bitbake/bin:${ORG_PATH}

cd $PKGDIR

LD_LIBRARY_PATH=
export PATH LD_LIBRARY_PATH BBPATH
export LANG=C
export BB_ENV_EXTRAWHITE="MACHINE DISTRO OETREE ANGSTROM_MODE ANGSTROMLIBC LIBC"

echo "Altered environment for OE Development"

I also had to set:

sudo sysctl vm.mmap_min_addr=0

Then setup local.conf:

mkdir -p ${OETREE}/build/conf
cp ${OETREE}/openembedded/contrib/angstrom/local.conf ${OETREE}/build/conf/

Now edit ${OETREE}/build/conf/local.conf and add this to the end:

MACHINE = "mini2440"

Now download the mini2440 config file from openembedded. Put this in:

${OETREE}/openembedded/conf/machine/

Now source the source-me.txt, go to the OE tree, check it’s up to date

source source-me.txt

cd ${OETREE}/openembedded

git pull - -rebase

Now build the images, you can build all of them or just one. I used the base image for running Qt but i also built the gpe image which worked nicely if you need it.

bitbake base-image ; bitbake console-image ; bitbake  x11-image ; bitbake gpe-image

Be prepared to saturate your internet connection, wait a long time and take up a lot of disk space!

The result ends up in:

${OETREE}/angstrom-dev/deploy/glibc/images/mini2440

You should have the image(s) in .jffs2 for flashing and .tar.gz for mounting using NFS.

28 Replies to “Building Angstrom”

  1. Hi, I can’t say with much certainty because i left it running over night and it had finished by the morning. That’s for all the four images above using a T7400 cpu and a 10 Mbit/s internet connection. I think those will be the limiting factors. Good luck if you try!

  2. You are the best Doug! Its so rare to find a complete instruction page in a single place in the linux world. Almost all instruction pages take you through a journey of links inside links till u forget where you started from :-). Am going to try the Angstrom build again tonight after a failed attempt last time while trying to follow the official build instruction page :-). Lets see how it goes this time. Hope about updating the Qt build blog entry also on similar lines with all instructions in same page ๐Ÿ˜‰

    Thanks
    Pankaj

  3. @Doug Doug there are two typos in the instructions above.

    1. Instead of MACHINE=”” it should be MACHINE=”mini2440″ that should be added to local.conf

    2. The git pull -rebase command should actually be git pull –rebase

    I have kicked off the bitbake process. Will update you when its done.

    Cheers
    Pankaj

  4. @Pankaj Hehe looks like the problem is not with the instructions but with wordpress editor. Here I try again:

    1. The angle brackets in MACHINE should not be there.

    2. The rebase option in git pull should be preceded with minus minus and not a single minus.

    Cheers
    Pankaj

  5. Thank you very much for your comments Pankaj ๐Ÿ™‚ I’ve amended the instructions, at some stage i will look for a code module for wordpress! Good luck with the build! When i originally did this it failed on a couple of missing libraries. My installed package list is on the kernel building post if you need it. Cheers, Doug

  6. Doug, did you also download the linux-mini2440-2.6.x+git recipe file and put under recipes/linux. The mini2440.conf file refers to this recipe but it doesnt exist in teh 2009 stable branch and just like you pulled mini2440.conf shouldnt you need to pull the recipe also.

    Cheers
    Pankaj

    1. I’m almost certain the only things i did are in the post above. It has been a couple of months since i last tried so i’ve set it running again on a different machine to see if the procedures still valid. It seems to be going fine so far on 584 of 3021. I checked mini2440.conf and i can’t see any reference to it? I will post back later on the build status!

      Thanks Charlie, that machine sounds perfect for the job! My laptop runs at 90 degrees building this but at least it doubles as a hand warmer!

  7. @Charlie Springer Hi Charlie, Good to see you here too. As you can see I am getting pretty desperate to get my mini2440+Qt/E working. Get your quad box cranking and give me a nicely baked Angstrom+Qt 4.5.2 to feast on.

    Doug, sorry for hijacking your blog to write personal messages but looks like we are all in the same boat.

    Cheers
    Pankaj

  8. @Doug Doug, the PREFERRED_PROVIDER_virtual/kernel = “linux-mini2440” points to linux-mini2440 which is not there and hence the build defaults to two kernel images : 2.6.25 and 2.6.9-omap1. The 2.6.9-omap1 un_pack() task (task number 1599) is what fails. If you are on the angstrom-dev list check out my latest thread there on the same.

  9. Worked for me, although I didn’t do a git checkout as I was following the openembedded’s ‘getting started’ directions. I also didn’t need to download a mini2440.conf, so the only thing I can suggest is to try again omitting the git checkout , rebase and downloading of the mini2440.conf (the one I downloaded in the original git pull is identical anyway). I also have several files relating to linux-mini2440 in my recipes/linux folder.

  10. @Doug
    Hi Doug,

    Thanks for all the help. I am up and running with Qt/E 4.5.3 on mini2440. I though havent moved to Angstrom that I built as yet and am using the Linux Qtopia image thats available from andahammer.com. I just built Qt/E using the Angstrom toolchain that got created as part of Angstrom OE build. I then modified the startup sequence of linux qtopia to not invoke qtopia and instead invoke my application. Long term though I will prefer to move to Angstrom because I think thats what Charlie is looking at as supported platform for mini2440.

    Thanks again,

  11. Hi Friends, Doug and Pankaj,
    I am trying for building angstrom, I am doing same as on http://www.angstrom-distribution.org/building-angstrom . I downloaded mini2440.conf and copied it to ${OETREE}/openembedded/conf/machine/ . My purpose is building VLC for mini2440. But I got failure when i building base-image.
    The error is from
    /angstrom-dev/work/armv4t-angstrom-linux-gnueabi/binutils-cross-2.18.50.0.7-r6/temp/log.do_configure.3200
    This error message is
    “FATAL: no configure script found”

    I am sorry for that question but Can you help me?

  12. It would be very helpful for those of us who suffer OS and Language overload if the prompt were included in these listings so we can see what dir is current when a command is given.

    Other than that, great stuff.

    1. I will see what i can do next time. Hopefully tomorrow i will post a new guide about compiling Angstrom, the kernel and qt all at once using bitbake. It is actually incredibly easy and only slightly different to the above (hint use the proper git tree!!) only i didn’t realise at the time!

      Anafor, have you tried cleaning the package and trying again? I’ve had this happen a few times. I eventually got a smart error saying my hdd is on the way out!

  13. Hi boys and girls. I installed a nice fresh Fedora 12 on my laptop and started with this page. I’m sure there are a ton of required things I have not installed, however when I run the source-me.txt my paths get messed up enough that I cannot su or yum or do much but cd and ls.

    I’m not sure how to get it back to normal and wonder if there are still any typos in the example?

    1. Hi,

      I think the formatting gets messed up when posting it on worldpress. if you were copying and pasting try downloading this version of source-me.txt and editing the paths to match. I recently followed through this guide through on my fedora 12 install and it seemed to work nicely. There was one mistake to do with being in the wrong directory when executing a command, but I can’t remember which one it was ( should have corrected at the time!). If you try, let me know of any mistakes and I’ll correct them asap.

      Will

  14. Hi Charlie,

    This is quite an old post, have a look at these two:

    http://cowboycoders.org/?p=109

    http://cowboycoders.org/?p=88

    The required packages are listed for Fedora (copied from the OE manual) in both cases. The same command will work in F12, i’ve tried it. That’s all you’ll need to install.

    The first link builds from BusError’s repo. In general this is more reliable but it’s also quite out of date (last time i checked).

    The second link is by my brother and he’s attached an example file to setup your environment so you shouldn’t have to worry about copy / paste errors. (One day i’ll have some time to install a code module for WP!). This clones the OE repo which is much more up to date but you’re more likely to run into problems. Last time we built this we had to remove I2C from the recipe.

    Any problems and i’ll do my best to help you out.

    Doug

  15. Hi, guys,
    I have a mini2440 with 256M from my employer. I wrote a program that is using X11+GTK as the environment.

    I tried to set up a GPE image following this: http://narnia.cs.ttu.edu/drupal/node/131
    , but when I rebooted I got white screen.

    After some digging I found out that the issue is that ths image is for 64M mini2440.

    Is there anyway possible to create a working GPE image for my hardware? I was talking to the re-sellers here in US and it appears there is none and I really need this one going.

    Or maybe this info is outdated and there is at least working X11 image with GTK+ support? That’s my minimum requirements. I’m working with wxWidgets and they just started porting the library to QT…

    Thank you.

  16. You can bitbake a gpe image using openembedded (bitbake gpe-image). I’ve done this in the past and it’s worked perfectly with the 64MB version. I have no idea about the other versions but i can’t imagine it would take much to get it working.

  17. Hi, Doug,
    Thank you for reply.

    Is 64M device 16-bit/32-bit/64-bit?
    Because even if I throw the original bootloader and kernel and that gpe image for 64M device didn’t boot either.

    Any idea?

    Thank you.

  18. Hi
    I am trying to build image as explained above without success see printout:
    NOTE: Running task 662 of 2692 (ID: 1551, /home/tmessik/OE/openembedded/recipes/gettext/gettext_0.17.bb, do_install)
    ERROR: function do_install failed
    ERROR: log data follows (/home/tmessik/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/gettext-0.17-r2/temp/log.do_install.28411)
    | NOTE: make DESTDIR=/home/tmessik/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/gettext-0.17-r2/image install
    | make: *** No rule to make target `install’. Stop.
    | FATAL: oe_runmake failed
    NOTE: Task failed: /home/tmessik/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/gettext-0.17-r2/temp/log.do_install.28411
    ERROR: TaskFailed event exception, aborting
    ERROR: Build of /home/tmessik/OE/openembedded/recipes/gettext/gettext_0.17.bb do_install failed
    NOTE: Running task 1832 of 2692 (ID: 650, /home/tmessik/OE/openembedded/recipes/alsa/alsa-utils_1.0.18.bb, do_compile)
    ERROR: Task 1551 (/home/tmessik/OE/openembedded/recipes/gettext/gettext_0.17.bb, do_install) failed

    1. Try cleaning the package and building again. I built it today from a fresh clone and it worked fine. I think the command will be:

      bitbake -c clean gettext

      then

      bitbake gettext

      If that works then carry on as normal, otherwise time to start reading the log file!

Leave a Reply

Your email address will not be published. Required fields are marked *