Configuring Open Embedded to bake Angstrom images for the mini2440
Please Note: I noticed a few people were having trouble with the Angstrom build using Doug’s article, so I thought I’d post the exact method I used (which seemed to work!) so others can retrace my steps with out confusing anyone by editing the previous article! If you have already successfully baked an Angstrom image please ignore this post!
First off I’d like to point out that this article is essentially an amalgamation of the Open Embedded Wiki (Getting Started) and Angstrom’s ‘Building Angstrom’ articles but in context relating to the mini2440 Embedded PC. If you would like a more detailed and probably better written explanation please refer to these two articles.
Make sure you have the packages needed for Open Embedded(OE) by visiting here and looking under the section relating to your distro. Running fedora 11 I did:
python-psyco perl texinfo texi2html diffstat openjade docbook-style-dsssl
docbook-style-xsl docbook-dtds docbook-utils sed bison bc glibc-devel glibc-static
gcc binutils pcre pcre-devel git quilt groff linuxdoc-tools patch linuxdoc-tools
gcc-c++ help2man perl-ExtUtils-MakeMaker"
Getting down to business…
Open up a terminal. Issue these commands:
mkdir -p /stuff2/build/conf
chmod 777 -Rf /stuff2/
exit
cd /stuff2/
Download latest bitbake from here and extract the bitbake directory in the archive (eg. bitbake-1.8.16) to /stuff2/
A few more commands:
git clone git://git.openembedded.org/openembedded
cp openembedded/conf/local.conf.sample build/conf/local.conf
Edit the config you have just copied using your favourite text editor.
It is important that you read the config carefully so that you understand what everything does…
Next edit it to look something like this (which is just a slightly modified version of openembedded/contrib/angstrom/local.conf) :
Note: Do not copy and paste from this article due to formatting issues. You can download a pre-made local.conf here.Just extract to /stuff2/build/conf/ …
# Where to store sources
DL_DIR = "/stuff2/downloads"
INHERIT += " rm_work "
# Make sure you have these installed
ASSUME_PROVIDED += "gdk-pixbuf-csource-native imagemagick-native librsvg-native"
# Which files do we want to parse:
BBFILES := "/stuff2/openembedded/recipes/*/*.bb"
BBMASK = ""
# What kind of images do we want?
IMAGE_FSTYPES += " tar.bz2 "
# Set TMPDIR instead of defaulting it to $pwd/tmp
TMPDIR = "/stuff2/${DISTRO}-dev"
# Make use of SMP and fast disks
PARALLEL_MAKE = "-j2"
BB_NUMBER_THREADS = "2"
#tinderbox
#INHERIT += "oestats-client"
OESTATS_BUILDER = "myname"
DISTRO = "angstrom-2008.1"
Save and exit the editor. Download this script and move it to the directory /stuff2/ .
Check it is ok:
It should look something like this:
export PATH=/stuff2/bitbake/bin:$PATH
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"
save, and start the script:
source source-me.txt
one last update:
Issue a few commands to fix build issues:
sysctl vm.mmap_min_addr=0
setenforce 0 (Fixes an SELINUX problem during building)
exit
issue build commands:
Be prepared to saturate your internet connection, wait a long time and take up a lot of disk space!
The result ends up in:
You should have the image(s) in .jffs2 for flashing and .tar.gz for mounting using NFS.


Thanks Will!
You can also git clone the official mini2440 repository. The instructions are basically the same as above (although you don’t need to get bitbake).
git clone git://repo.or.cz/openembedded/mini2440.git openembedded
Fill in the mini2440 example config and copy it to /conf/local.conf
All the mini2440 specific files are already there
Now:
bitbake mini2440-image
You can add packages to this by editing the recipes in /openembedded/recipes/images/mini2440-image.bb
You might want to add ‘qt4-embedded’ here.
@Doug
Doug,
I figured out why Will’s build worked and yours didnt. You and I were trying to use the 2009 stable branch and that doesnt have mini2440 specific recipes there. The main branch though seem to have integrated the mini2440 recipes. Since Will cloned the main branch he got all the recipes and mini2440 MACHINE description. I though didnt used the qt-embedded recipe because it seems that its using GPL licensing and I need LGPL. Thats why I extracted Qt/E seperately and just used the toolchain from build/cross area of OE build but I guess using the DEPEND in the mini2440 receipe to have qt4-embedded will be so much easier as it will create a complete image and no need to hack around using teh SDCard to get Qt/E on mini2440. Will see fi recipe can be made to accept LGPL license.
Cheers
Pankaj
Is there any modifications required to build the image for 128MB boards.
regards
–amit
Hi Amit, i don’t have the 128MB version but I think Bus Error has updated the kernel to support it.
I used your instructions to bitbake an image for my micro2440. There were no jffs2 files or u-boot in my folder. is this normal or did something go wrong. I have a tar folder and two files name uImage-2.6.31+git-r0-micro2440.bin and uImage-micro2440.bin
how do i generate u-boot and my file system(jffs2)..?
You need to you change this line in your local.conf:
IMAGE_FSTYPES += ” tar.bz2 ”
to (if you only want jffs2):
IMAGE_FSTYPES = “jffs2″
Or you can specify multiple types in a white space separated list, like this:
IMAGE_FSTYPES = “jffs2 tar.bz2″
Please read the local.conf.sample in /stuff2/openembedded/conf for a full list of types.
I haven’t actually built u-boot using open embedded, but if you’d like to use an alternate method please see this post.
@mvofoana
You can build u-boot using open embedded using the command:
bitbake u-boot
Which you should find in:
/stuff2/angstrom-dev/deploy/glibc/images/mini2440
Haven’t actually actually flashed this, so if you try let me know how you get on.
hi will,
i’ve changed my local.conf file and I am baking right now. I’ll keep you posted on the results.
Thanks
Hi all,
I’m a new to mini2440 and i was wanna to design a GUI using the WxWidget libs i’m use a Ubuntu Linux for x86 machine i wanna to design my GUI, then download this program to the mini2440 board,
I asked the mini2440 board technical support and they said that we don’t support for the wxwidget , we support only the QT libs, but if you want to use the wxwidget try to use the OpenEmbedded
So could anybody help me to a ccomplish this task,you can reply to this form or you can mail me to this mail eng_m_elsaidy@yahoo.com
Thanks
Mohamed Hamed
Hi Mohamed,
As far as i know you need X11 for WxWidgets but i’ve never used them myself. Openembedded is the answer and the source of most problems! I would create a bitbake recipe which inherits x11-image.bb and has wxwidgets included in it. Look in the recipes folder after you’ve git cloned OE. In there you’ll find wxwidgets and you can specify one of the recipes within.
If that sounds like gibberish start by trying to bitbake x11-image after cloning the mini2440 OE repo, see here:
http://www.electronics.diycinema.co.uk/embedded/mini2440/bitbaking-the-kernel-angstrom-and-qt4-embedded-all-at-once/
With the exception that you should bitbake x11-image instead of mini2440-image.
Cheers,
Doug
Hello guys,
I´ve made those procedures including baking with: bitbake console-image x11-image
After a long time waiting i got all images and after i could boot inside my mini2440. I could not get X11 working.
Angstrom boots on console login and when i try to run Xinit i got error messages for no display found. My mini2440 has an tft touch lcd for 7″.
I tryed to export DISPLAY=localhost:0.0, loopbackip:0.0 and others but display error message keeps appearing, does any one has any idea why is this happening?
Am I´m baking the correct image option (x11-image)?
Thanks
Charles
Hello, i’ve trying to build a mini2440 image with gpe but im getting bunch of errors
NOTE: Handling BitBake files: | (0456/7200) [ 6 %]ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc_git.bb
NOTE: :EOL while scanning string literal (, line 1) while evaluating:
${@oe_filter_out(‘(-L\S+|-l\S+)’, ‘-Wl,-O1 ${TARGET_LINK_HASH_STYLE}’, d)}
ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc_git.bb
NOTE: Handling BitBake files: – (0497/7200) [ 6 %]ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc_0.9.30.3.bb
NOTE: :EOL while scanning string literal (, line 1) while evaluating:
${@oe_filter_out(‘(-L\S+|-l\S+)’, ‘-Wl,-O1 ${TARGET_LINK_HASH_STYLE}’, d)}
ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc_0.9.30.3.bb
NOTE: Handling BitBake files: | (0954/7200) [13 %]ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc-initial_git.bb
NOTE: :EOL while scanning string literal (, line 1) while evaluating:
${@oe_filter_out(‘(-L\S+|-l\S+)’, ‘-Wl,-O1 ${TARGET_LINK_HASH_STYLE}’, d)}
ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc-initial_git.bb
NOTE: Handling BitBake files: / (1179/7200) [16 %]ERROR: EOL while scanning string literal (DISTRO_UPDATE_ALTERNATIVES, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/tasks/task-boot.bb
NOTE: :EOL while scanning string literal (DISTRO_UPDATE_ALTERNATIVES, line 1) while evaluating:
${@base_conditional(“ONLINE_PACKAGE_MANAGEMENT”, “none”, “”, “${PREFERRED_PROVIDER_virtual/update-alternatives}”, d)}
NOTE: :EOL while scanning string literal (DISTRO_UPDATE_ALTERNATIVES, line 1) while evaluating:
base-files base-passwd busybox ${@base_contains(“MACHINE_FEATURES”, “keyboard”, “keymaps”, “”, d)} modutils-initscripts netbase ${DISTRO_UPDATE_ALTERNATIVES} ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}
ERROR: EOL while scanning string literal (DISTRO_UPDATE_ALTERNATIVES, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/tasks/task-boot.bb
NOTE: Handling BitBake files: \ (1760/7200) [24 %]ERROR: list indices must be integers, not NoneType while parsing /home/alvaro/oe2/openembedded/recipes/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb
NOTE: :list indices must be integers, not NoneType while evaluating:
http://projects.linuxtogo.org/frs/download.php/14/prismstumbler-0.7.4pre1.tar.gz file://gpsapi.patch ${@['', 'file://wireless.patch'][bb.data.getVar('PREFERRED_VERSION_linux-libc-headers', d, 1) and bb.data.getVar('PREFERRED_VERSION_linux-libc-headers', d, 1).split('.')[2] < '30']} file://fix-includes.patch;striplevel=0 file://libgps-check.patch file://replace-gps_query.patch
ERROR: list indices must be integers, not NoneType while parsing /home/alvaro/oe2/openembedded/recipes/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb
NOTE: Handling BitBake files: / (2167/7200) [30 %]ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc_0.9.31.bb
NOTE: :EOL while scanning string literal (, line 1) while evaluating:
${@oe_filter_out(‘(-L\S+|-l\S+)’, ‘-Wl,-O1 ${TARGET_LINK_HASH_STYLE}’, d)}
ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc_0.9.31.bb
NOTE: Handling BitBake files: / (4221/7200) [58 %]ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc-initial_0.9.30.2.bb
NOTE: :EOL while scanning string literal (, line 1) while evaluating:
${@oe_filter_out(‘(-L\S+|-l\S+)’, ‘-Wl,-O1 ${TARGET_LINK_HASH_STYLE}’, d)}
ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc-initial_0.9.30.2.bb
NOTE: Handling BitBake files: / (5565/7200) [77 %]ERROR: EOL while scanning string literal (FILESPATH, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/angstrom/angstrom-version.bb
NOTE: :EOL while scanning string literal (FILESPATH, line 1) while evaluating:
${@’:’.join(uniq(os.path.normpath(os.path.join(fp, p, o)) for fp in ‘/home/alvaro/oe2/openembedded/recipes/angstrom’.split(‘:’) for p in ‘angstrom-version-1_${DISTRO_VERSION}-r6:angstrom-version-${DISTRO_VERSION}:angstrom-version:angstrom-version-${DISTRO_VERSION}:angstrom-version:files:.’.split(‘:’) for o in reversed([''] + filter(None, ‘pn-angstrom-version:fail-fast:build-linux:arm:linux:angstrom-2008.1:mini2440:local’.split(‘:’)))))}
NOTE: :EOL while scanning string literal (FILESPATH, line 1) while evaluating:
${@patch_deps(d)}
ERROR: EOL while scanning string literal (FILESPATH, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/angstrom/angstrom-version.bb
NOTE: Handling BitBake files: \ (6346/7200) [88 %]ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc-initial_0.9.30.3.bb
NOTE: :EOL while scanning string literal (, line 1) while evaluating:
${@oe_filter_out(‘(-L\S+|-l\S+)’, ‘-Wl,-O1 ${TARGET_LINK_HASH_STYLE}’, d)}
ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc-initial_0.9.30.3.bb
NOTE: Handling BitBake files: \ (6471/7200) [89 %]ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc_0.9.30.2.bb
NOTE: :EOL while scanning string literal (, line 1) while evaluating:
${@oe_filter_out(‘(-L\S+|-l\S+)’, ‘-Wl,-O1 ${TARGET_LINK_HASH_STYLE}’, d)}
ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc_0.9.30.2.bb
NOTE: Handling BitBake files: | (6866/7200) [95 %]ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc-initial_0.9.31.bb
NOTE: :EOL while scanning string literal (, line 1) while evaluating:
${@oe_filter_out(‘(-L\S+|-l\S+)’, ‘-Wl,-O1 ${TARGET_LINK_HASH_STYLE}’, d)}
ERROR: EOL while scanning string literal (, line 1) while parsing /home/alvaro/oe2/openembedded/recipes/uclibc/uclibc-initial_0.9.31.bb
NOTE: Handling BitBake files: \ (7189/7200) [99 %]Command execution failed: Traceback (most recent call last):
File “/home/alvaro/oe2/bitbake/lib/bb/command.py”, line 85, in runAsyncCommand
self.cooker.updateCache()
File “/home/alvaro/oe2/bitbake/lib/bb/cooker.py”, line 829, in updateCache
if not self.parser.parse_next():
File “/home/alvaro/oe2/bitbake/lib/bb/cooker.py”, line 983, in parse_next
def parse_next(self):
File “/home/alvaro/oe2/bitbake/lib/bb/cooker.py”, line 1022, in parse_next
raise ParsingErrorsFound
ParsingErrorsFound
I using ubuntu 9.10 tried diferent versions bitbake-1.8.18 bitbake-1.10.2 bitbake-1.12.0 with no luck
Please give me some advice.
Thanks
Hi All,
I am using Fedora 11, in virtualbox(inside ubuntu-11.04).
bitbake version is (bitbake-1.10.2.tar.gz bitbake-1.8.16.tar.gz bitbake-1.12.0.tar.gz ) all are failed
Giving below error:
OTE: Handling BitBake files: \ (0304/7195) [ 4 %]ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/devimage-image.bb
ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/devimage-image.bb
NOTE: Handling BitBake files: \ (0318/7195) [ 4 %]ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/base-image.bb
ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/base-image.bb
NOTE: Handling BitBake files: \ (0341/7195) [ 4 %]ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/gpe-image-blank-user.bb
ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/gpe-image-blank-user.bb
NOTE: Handling BitBake files: / (0538/7195) [ 7 %]ERROR: EOL while scanning string literal (, line 1) while parsing /home/oe/OE/openembedded/recipes/uclibc/uclibc_0.9.30.3.bb
NOTE: :EOL while scanning string literal (, line 1) while evaluating:
${@oe_filter_out(‘(-L\S+|-l\S+)’, ‘-Wl,-O1 ${TARGET_LINK_HASH_STYLE}’, d)}
ERROR: EOL while scanning string literal (, line 1) while parsing /home/oe/OE/openembedded/recipes/uclibc/uclibc_0.9.30.3.bb
NOTE: Handling BitBake files: \ (0554/7195) [ 7 %]ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/qt4e-demo-image.bb
ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/qt4e-demo-image.bb
NOTE: Handling BitBake files: \ (0573/7195) [ 7 %]ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/bootmanager-image.bb
ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/bootmanager-image.bb
NOTE: Handling BitBake files: – (0586/7195) [ 8 %]ERROR: list indices must be integers, not NoneType while parsing /home/oe/OE/openembedded/recipes/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb
NOTE: :list indices must be integers, not NoneType while evaluating:
http://projects.linuxtogo.org/frs/download.php/14/prismstumbler-0.7.4pre1.tar.gz file://gpsapi.patch ${@['', 'file://wireless.patch'][bb.data.getVar('PREFERRED_VERSION_linux-libc-headers', d, 1) and bb.data.getVar('PREFERRED_VERSION_linux-libc-headers', d, 1).split('.')[2] < '30']} file://fix-includes.patch;striplevel=0 file://libgps-check.patch file://replace-gps_query.patch
ERROR: list indices must be integers, not NoneType while parsing /home/oe/OE/openembedded/recipes/prismstumbler/prismstumbler_0.7.3+0.7.4pre1.bb
NOTE: Handling BitBake files: | (0678/7195) [ 9 %]ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/angstrom-systemd-image.bb
ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/angstrom-systemd-image.bb
NOTE: Handling BitBake files: – (0714/7195) [ 9 %]ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/x11-image.bb
ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/x11-image.bb
NOTE: Handling BitBake files: – (0803/7195) [11 %]ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/helloworld-image.bb
ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/helloworld-image.bb
NOTE: Handling BitBake files: / (0856/7195) [11 %]ERROR: Could not inherit file classes/rootfs_${IMAGE_PKGTYPE}.bbclass while parsing /home/oe/OE/openembedded/recipes/images/nas-server-
It is ended with errors
pls update it
b.maheshwer@gmail.com
Sounds like a misconfiguration. Have a look at your local.conf . Uncommenting INHERIT = “package_ipk”, or similar should get you on your way. If you trying to bake the current repo you are not in for an easy ride. I’d start with BusError’s original repo as OE has changed a lot since i last posted. Quick post on that coming up.