Advertisement

Home > Uncategorized > Building Angstrom

Building Angstrom

November 1st, 2009 Leave a comment Go to comments

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.

Categories: Uncategorized Tags: , , ,
  1. November 2nd, 2009 at 14:09 | #1

    Hey Doug, how much time did it take you to make the compelte build?

  2. November 2nd, 2009 at 14:46 | #2

    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!

  3. Pankaj
    November 3rd, 2009 at 17:33 | #3

    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

  4. Pankaj
    November 3rd, 2009 at 18:01 | #4

    @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

  5. Pankaj
    November 3rd, 2009 at 18:04 | #5

    @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

  6. November 3rd, 2009 at 18:29 | #6

    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

  7. November 4th, 2009 at 02:30 | #7

    Great effort here. Prepare to be copied :-) I have a new and naked quad intel box ready for Debian and lots of bit baking.

  8. Pankaj
    November 4th, 2009 at 13:13 | #8

    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

  9. November 4th, 2009 at 14:10 | #9

    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!

  10. Pankaj
    November 4th, 2009 at 14:14 | #10

    @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

  11. November 4th, 2009 at 14:19 | #11

    No problem! Hopefully my brother might post something here soon. I know he’s been making some progress on building Angstrom / Qt.

  12. Pankaj
    November 4th, 2009 at 14:19 | #12

    @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.

  13. November 4th, 2009 at 15:35 | #13

    I’ve just reproduced the same error. I will double check my old config when i get home.

  14. Will
    November 5th, 2009 at 14:19 | #14

    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.

  15. Pankaj
    November 6th, 2009 at 08:33 | #15

    @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,

  16. November 9th, 2009 at 11:46 | #16

    You’re welcome! Thank you for your feedback and helping to clear up some of the problems!

  17. anafor2004
    November 12th, 2009 at 14:19 | #17

    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?

  18. November 13th, 2009 at 20:50 | #18

    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.

  19. November 16th, 2009 at 22:09 | #19

    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!

  20. February 23rd, 2010 at 08:04 | #20

    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?

  21. February 23rd, 2010 at 13:57 | #21

    Hi Charlie,

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

    http://www.electronics.diycinema.co.uk/?p=109

    http://www.electronics.diycinema.co.uk/?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

  22. Will
    February 23rd, 2010 at 14:00 | #22

    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

  23. Igor
    March 3rd, 2010 at 20:40 | #23

    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.

  24. March 4th, 2010 at 12:48 | #24

    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.

  25. Igor
    March 4th, 2010 at 17:33 | #25

    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.

  26. tmessik
    September 5th, 2010 at 19:41 | #26

    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

  27. September 5th, 2010 at 20:08 | #27

    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!

  1. November 5th, 2009 at 16:57 | #1