Bitbaking the kernel, Angstrom and qt4-embedded all at once

This is what i should have done to begin with! The instructions are very similar to previous ones except this time we clone the right git repository!

On a fresh copy of Fedora 11 I updated the system and installed the packages reccommended by OE:

su -cyum install python m4 make wget curl ftp cvs subversion tar bzip2 gzip unzip
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”

I then made a folder called OE in my home directory and git cloned the mini2440 repo:

cd ~

mkdir OE

cd OE

git clone git://repo.or.cz/openembedded/mini2440.git openembedded

I then setup the source-me.txt similar to before:

gedit source-me.txt

I put the following in:

export OETREE="/home/doug/OE"

BBPATH=${OETREE}/:${OETREE}/openembedded/

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}

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

su -c 'sysctl vm.mmap_min_addr=0'

echo "Altered environment for OE Development"

Now all you need to do is setup the local.conf. Simply edit the example and copy it to the right place:

cd openembedded
gedit mini2440_local_conf_example.conf

Read this file and edit as appropriate. I have attached mine as an example. Now copy it to the conf/local.conf

cp mini2440_local_conf_example.conf conf/local.conf

If you want qt4-embedded or any other package included in the build simply edit the recipe in:

openembedded/recipes/images/mini2440-image.bb

I added qt4-embedded:

#Angstrom bootstrap image

IMAGE_PREPROCESS_COMMAND = "create_etc_timestamp"

ANGSTROM_EXTRA_INSTALL ?= ""

DEPENDS =  "task-base-extended
psplash-zap
esekeyd u-boot-utils tslib
i2c-tools i2c screen rsync nfs-utils
directfb gdbserver directfb mtd-utils
"


IMAGE_INSTALL = "task-base-extended
${ANGSTROM_EXTRA_INSTALL}
psplash-zap qt4-embedded
esekeyd u-boot-utils tslib-calibrate tslib-tests
i2c-tools i2c screen rsync nfs-utils-client
directfb gdbserver directfb mtd-utils
rsvg pango
"


export IMAGE_BASENAME = "mini2440-image"
IMAGE_LINGUAS = ""

inherit image

Then all you have to do is source the script from wherever you put it:

source source-me.txt

and run bitbake:

bitbake mini2440-image

from the ~/OE/openembedded/ directory..

If you get an error trying to build a package try cleaning it:

bitbake -c clean INSERTPACKAGENAME

Then try and build the image again. Maybe you won’t have this problem. I guess it’s either because the checksum parser failed to build or my hdd is dodgy. It only happened once on binutils but worked fine after cleaning it.

A few hours later if all goes well you should have images in:

~/OE/oetmp/deploy/glibc/images/mini2440/

Obviously that directory depends on what you setup in the local.conf.

Good luck!

102 Replies to “Bitbaking the kernel, Angstrom and qt4-embedded all at once”

  1. Hello,
    The image created works fine, but QT does not starts!
    The only executable program I found is qtdemo that run only with the -qws option.
    No other QT software are present. Only library.
    Where am I wrong?
    TIA

    Clemente.

    1. Hi Clemente, I have the same behaviour. I haven’t had a chance to try and figure out why the demos don’t get included but i guess one of the patches in the bb recipe might exclude them? After all they take up a lot of space and i suppose most people wouldn’t want them in an image if they were writing their own apps. You should still be able to compile your own stuff (or the demos) and run them using that image. As far as i know you always need the -qws option. Please let me know if you figure out how to include them! I have hardly any free time at the moment. Cheers, Doug

  2. Had a quick play around with this. Look in your openembedded directory, for me the demos are located here::

    ~/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/qt4-embedded-4.4.3-r10/qt-embedded-linux-opensource-src-4.4.3/demos/

    You can copy these (and the examples if you want) to the mini2440. Then simply run the demos using the -qws switch. You need to configure tslib and run ts_calibrate if you want the touch screen working.

  3. @Doug Hey Doug, nice blog. BTW, any idea how I can force the qt/e 4.5.0 to get built instead of the 4.4.3. The recipe is already there but it picks the 4.4.3 instead of 4.5.0. Am no good with OE/bitbake so if you have figured it out, do let me know.

    Cheers
    Pankaj

    1. Thanks 🙂

      I think you can specify the version by appending it to the end..for example:

      bitbake qt4-embedded-4.5.0

      In this case OE complains that multiple .bb files are due to be built which each provide qt4-embedded. I haven’t figured out how to make it exclude the old version yet. I would be interested to know if anyone has?!

      EDIT: Scrap that! The build crashes when it starts running the recipe for qt4-embedded-4.5.0. Looks like the above problem needs to be resolved before it will compile properly.

  4. Hi man, I following your tutorial with fresh install of fedora 12, and when I do ‘source source-me.txt’ i get
    bash: export: `LIBC”’: not a valid identifier
    su: user vm.mmap_min_addr=0′ does not exist
    and when i try ‘bitbake mini2440-image’ i get
    ERROR: Unable to open conf/bitbake.conf
    I don’t know whats wrong.
    BTW, i installed bitbake from fedora repository.

    thank, for your help.

    1. Well..these instructions are for Fedora 11 and it sounds like something changed. I would suggest using the bitbake from the git clone and deleting the vm.mmap_min_addr=0 line. Also make sure you have the right packages installed (check the openembedded manual to see if they suggest anything for Fed12). If that doesn’t help i know it works on Fedora 11! Good luck! Doug

  5. Hello Doug,

    I am completely green to linux and I need help getting started.

    I need to build a linux(Debian) PC and have it ready for application development( with IDEs, Debuggers, compilers or xcompilers and the like).

    can you please help point me in the right direction?
    I will be developing on the micro2440 sdk35, and will need to build an Angstrom Image with the lattest version of Qt/Embedded.

    Thanks in advance

    1. You’ll have to read the manual for open embedded if you want debian or you can simply install fedora (i used the live cd, version 11) and follow the instructions on this post:

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

      That sets you up for the mini2440. Everything suddenly becomes very easy with openembedded.

      You might also be interested in the Fedora Electronic Lab Release (FEL):

      http://fedoraproject.org/wiki/FedoraElectronicLab

      A lot of very nice software packaged into a distro for you.

      Good luck! Doug

  6. I get a error running bitbake.. Looks like I have a conflict with my version of GCC. I need gcc3 and it looks like all I have it gcc4 installed on this fedora 11 install. Yum doesn’t seem to let me install gcc3

    bitbake mini2440-image
    ERROR: Openembedded’s config sanity checker detected a potential misconfiguration.
    Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
    Following is the list of potential problems / advisories:

    gcc3-native was in ASSUME_PROVIDED but the gcc-3.x binary can’t be found in PATHPlease install following missing utilities: gcc-3.x (needed for qemu-native)

  7. ferock :
    Hi man, I following your tutorial with fresh install of fedora 12, and when I do ’source source-me.txt’ i get
    bash: export: `LIBC”’: not a valid identifier
    su: user vm.mmap_min_addr=0′ does not exist
    and when i try ‘bitbake mini2440-image’ i get
    ERROR: Unable to open conf/bitbake.conf
    I don’t know whats wrong.
    BTW, i installed bitbake from fedora repository.
    thank, for your help.

    ferock, you’ll get this error if you copy and past the source-me.txt contents above without removing the cntrl chars. I had this same problem you did, until I removed the extended chars in my source-me.txt file.

  8. Read the local.conf file you created (mine is attached in the above post as an example) and comment out ASSUME_PROVIDED += “gcc3-native”. Bitbake then downloads the source and builds the compiler for you. That should be all!

  9. bitbake mini2440-image
    ERROR: Openembedded’s config sanity checker detected a potential misconfiguration.
    Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
    Following is the list of potential problems / advisories:
    gcc3-native was in ASSUME_PROVIDED but the gcc-3.x binary can’t be found in PATHPlease install following missing utilities: gcc-3.x (needed for qemu-native)

    I may have misunderstood this error. Assume provided means that it assume I already have gcc3 binary. but I just need to comment this line out and run bitbake again?..?

  10. I think the idea is that you can speed up the build process by providing the various utilities in the local.conf, but if you don’t have them it doesn’t matter because bitbake will build them from source, it just takes a little longer. I think i commented everything out just incase although you shouldn’t need to!

  11. Good to hear it worked! Yes, i would definitely start by installing u-boot. I found with the 128mb version i couldn’t get it to boot from the RAM, i had to write u-boot to the flash, reboot, format the flash which wiped out u-boot and then flash u-boot back, I guess there is probably a better way or it’s been fixed by now but that worked fine. Once you have u-boot you’ll probably find it most useful to set it up to boot over NFS (see the guide) which makes testing new builds / apps very easy and you won’t wear the flash out.

  12. To xmodem this to the mini2440. I assume you need a null modem cable or something that reverses the tx and rx pins. That document doesn’t mention anything like that, but I’m guessing thats the case?

  13. Doug, can you do a little write up on flashing the uboot and getting all these files working on the mini2440. I’m having some issues. My uboot file is 241664 bytes long which is bigger then other examples I have seen, not sure if that is a issue. And once I send it over I get a “nand_scan(): Cannot allocate oob_buf” which I have found some examples of maybe fixing. but it would be nice to have some more examples of getting this working. The howtos I have followed don’t seem to be working.

    Here is what I get when I run
    load ram 0x31000000 241664 u

    Then I upload via USB.. once uploaded I type
    go 0x31000000

    and get the following.

    U-Boot 1.3.2-mini2440 (Dec 16 2009 – 01:35:49)
    I2C: ready
    DRAM: 64 MB
    Flash: 2 MB
    NAND: Bad block table not found for chip 0
    Bad block table not found for chip 0
    64 MiB
    *** Warning – bad CRC or NAND, using default environment
    USB: S3C2410 USB Deviced
    In: serial
    Out: serial
    Err: serial

    U-Boot 1.3.2-mini2440 (Dec 16 2009 – 01:35:49)
    I2C: ready
    DRAM: 64 MB
    Flash: 2 MB
    NAND: nand_scan(): Cannot allocate oob_buf
    0 MiB

  14. Hello Doug,
    I get an error running bitbake while rsync processing. Following your instruction I tried to execute “bitbake -c clean rsync” but after that I get the same error. I’m a newbie in this area. Could you make it clear for me what can be a reason of this error?
    I see the message “gzip: stdout: Broken pipe” but I don’t understand what it means in this context. The package is unpacked correctly as I can see.

    Bitbake output:

    NOTE: Running task 1296 of 2692 (ID: 295, /home/alex/downloads2/arm/S3C2440/OE/openembedded/recipes/rsync/rsync_3.0.0.bb, do_unpack)
    NOTE: Unpacking ../sources/rsync-3.0.0.tar.gz to ../oetmp/work/armv4t-angstrom-linux-gnueabi/rsync-3.0.0-r1/

    gzip: stdout: Broken pipe
    tar: Child returned status 1
    tar: Exiting with failure status due to previous errors
    NOTE: Task failed:
    ERROR: TaskFailed event exception, aborting
    ERROR: Build of /home/alex/downloads2/arm/S3C2440/OE/openembedded/recipes/rsync/rsync_3.0.0.bb do_unpack failed
    ERROR: Task 295 (/home/alex/downloads2/arm/S3C2440/OE/openembedded/recipes/rsync/rsync_3.0.0.bb, do_unpack) failed
    NOTE: Waiting for 1 active tasks to finish
    NOTE: 1: /home/alex/downloads2/arm/S3C2440/OE/openembedded/recipes/i2c-tools/i2c-tools_3.0.2.bb, do_setscene (30404)
    NOTE: Tasks Summary: Attempted 1294 tasks of which 1291 didn’t need to be rerun and 1 failed.
    ERROR: ‘/home/alex/downloads2/arm/S3C2440/OE/openembedded/recipes/rsync/rsync_3.0.0.bb’ failed

  15. Hi Doug, i installed Fedora 11 and followed your instructions but after I do “bitbake mini2440-image” i get this error:

    NOTE: Running task 2 of 2614 (ID: 19, /home/Usuario/OE/openembedded/recipes/shasum/shasum-native.bb, do_fetch)
    ERROR: Build of /home/Usuario/OE/openembedded/recipes/shasum/shasum-native.bb do_fetch failed

    can you help me with this?
    thanks a lot.

    1. @jack

      Personally i’ve setup Qt creator to use my tool chain and then i copy the file across onto my NFS share. I will try and make a post about how to do this..it doesn’t involve much.

  16. I have prepared my rootfs , I want to compile my qt project for mini2440 nfs, how can I compile it, I tried to use qmake from qt-embedded in “/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/qt4-embedded-4.4.3-r10/qt-embedded-linux-opensource-src-4.4.3/bin/”

    How should I compile my codes , Do I have to build another qt-embedded for CrossCompiling?

  17. Hello Doug,

    I am completely new to openembedded.

    I need to build a linux(Debian) PC and have it ready for application development.
    what will be the DISTRO and MACHINE variables in the local.conf file?
    can you please help me?

    Thanks in advance

  18. Doug , now I have my image of rootfs and the uImage, but im trying to boot from sd but im having trouble with this, i can load to ram the uImage and Im passing the next arguments to the uboot:

    bootargs = console=ttySAC0,115200 noinitrd root=/dev/mtcblk0p1 rootwait rw

    boot just start loading the kernel and never finish, i dont know if you have tried this or if you have an how to for booting from SD.

    one more time, thanks a lot.

  19. If You want to boot from SD, first put u-boot and kernel on your mini2440. Then you should create linux partition on SD and formate it as ext3. Then untar as root your (.tar.gz) image on SD card. (cd to SD card, then do something as: tar xzvf /..path to your image../Desktop/Angstrom-mini2440-qt4-image-glibc-ipk-2009.X-stable-mini2440.rootfs.tar.gz ). Put SD in card reader on your mini2440, turn it on and hit a key to get in u-boot . Then do:

    setenv bootcmd nboot.e kernel ; bootm
    setenv bootargs console=ttySAC0,115200 root=/dev/mmcblk0p1 rootdelay=2 mini2440=3tb
    saveenv

    Then reset mini2440.

    if You don’t have 3.5″ Toshiba display use 1tb instead of 3tb.

    Good luck!

  20. Hi, can you give me your Email please? my company wants to make you an offer by making work the mini2440 with qt and the crosscompile of qt.

  21. Any thoughts on the following error?
    /bin/sh ./i686-linux-libtool –tag=CC –mode=link ccache gcc -isystem/home/allan/OE/oetmp/staging/i686-linux/usr/include -O2 -ffloat-store -version-info 2:1:1 -L/home/allan/OE/oetmp/staging/i686-linux/usr/lib -Wl,-rpath-link,/home/all$
    i686-linux-libtool: link: ccache gcc -shared .libs/exceptions.o .libs/extract.o .libs/uceil_exp2.o .libs/uceil_log2.o .libs/ufloor_log2.o .libs/add.o .libs/add1.o .libs/add_ui.o .libs/agm.o .libs/clear.o .libs/cmp.o .libs/cmp_abs.o .lib$
    .libs/hypot.o: file not recognized: File truncated
    collect2: ld returned 1 exit status
    make[1]: *** [libmpfr.la] Error 1
    make[1]: Leaving directory `/home/allan/OE/oetmp/work/i686-linux/mpfr-native-2.3.1-r0/mpfr-2.3.1′
    make: *** [all-recursive] Error 1
    FATAL: oe_runmake failed

    I compiled this sucessfully on my previous fedora 11 install, made a new install and now i’m getting this error. Was fairly sure I followed the same steps.

    1. I’ve never seen that. The first thing i’d do is bitbake -c clean mpfr-native and then try again.. Which repo did you clone? If it was openembedded i’d try updating it..

  22. Hi,
    I followed everything, no errors until it came to:

    bitbake mini2440-image
    NOTE: Out of date cache found, rebuilding…
    NOTE: Handling BitBake files: (4706/6712) [70 %]:87: DeprecationWarning: the sets module is deprecated
    NOTE: Handling BitBake files: (6712/6712) [100 %]
    NOTE: Parsing finished. 0 cached, 6410 parsed, 302 skipped, 0 masked.
    NOTE: Resolving any missing task queue dependencies
    ERROR: ‘[‘/home/developer/OE/openembedded/recipes/images/mini2440-image.bb’]’ RDEPENDS/RRECOMMENDS or otherwise requires the runtime entity ‘qt4-embeddedesekeyd’ but it wasn’t found in any PACKAGE or RPROVIDES variables
    NOTE: Runtime target ‘qt4-embeddedesekeyd’ is unbuildable, removing…
    Missing or unbuildable dependency chain was: [‘qt4-embeddedesekeyd’]
    ERROR: Required build target ‘mini2440-image’ has no buildable providers.
    Missing or unbuildable dependency chain was: [‘mini2440-image’, ‘qt4-embeddedesekeyd’]

    where and what shall I download, to resolve this dependency?
    Thanks!

  23. ok. managed to get it all compiled. Mayb this is a stupid question but my image is around 90MB… How do i flash an image larger than the ram? The only way i know is to load to ram and then write to nand….

  24. Has anyone gotten PyQt_4.4.3 to work with qt4-embedded. The image built with no errors but looking back into the build log. I get the following message in the build log complaining about python-sip. When I tried to run a simple program I wrote the mini2440 complained that SIP was not installed.

    The following is the first part of the the message I see in the build log.

    NOTE: Running task 1326 of 2849 (ID: 1532, /home/ed/mini2440/OE/openembedded/recipes/python/python-sip_4.7.9.bb, do_setscene)
    NOTE: :exceptions must be classes or instances, not str while evaluating:
    ${@python_dir(d)}
    NOTE: :exceptions must be classes or instances, not str while evaluating:
    install -d ${D}${libdir}/${PYTHON_DIR}/site-packages/
    install -m 0755 libsip.so.1.0.0 ${D}${libdir}/${PYTHON_DIR}/site-packages/sip.so

    Any ideas?
    Thanks
    Ed

  25. hello dough.

    I have a micro2440 with 128M NAND. I am tying to fun bitbake and create an image and jffs2 for my board but I am getting the following errors:

    gcc3-native was in ASSUME_PROVIDED but the gcc-3.x binary can’t be found in PATH/

    i have conmmented out that line in my local.conf file but i am still getting this error.

    Any idea…
    thanks

  26. Hey Doug. I tried this on fresh Fedora 12. I hit a problem right off. After everything is loaded and brought up to date, I run the source-me.txt and it does something to important paths. I can’t use su, etc. In fact, the source-me.txt errors with “su no such command” or something like that.

    Suggestions?

    Also, in this version you don’t explicitly create the directory structure and it is a little confusing about what happens and where.

    BTW, I was getting Momadee’s error above with Debian.

  27. Hi Charlie,

    I’m not sure what’s going wrong here. I just copied and pasted the source-me.txt from above into a file and sourced it from a terminal by typing ‘source source-me.txt’ and it worked fine on F12. The su command is something to do with selinux and memory mapping. If you don’t run it then bitbake will complain about it which is why i’ve added it to the script.

    These instructions should be a complete walkthrough and will make most sense if followed in sequence. The only directory you need to create is the one in which you want to work from. For example here it is ~/OE. When you git clone OE you’ll create ~/OE/openembedded automatically and bitbake will sort out the others which are configured in the local.conf. There is an example i’ve filled in you can refer to.

    Also be aware that since this git clones the OE tree it is frequently updated. I rebuilt the other day and I had to remove I2C from the recipe. I vaguely remember reading it’s been split up but since i don’t need it i just removed it.

    Hope that helps,
    Doug

  28. I’ll check that I have everything right again. You say it doesn’t matter where you do the source-me? I guess it doesn’t from looking at it.

    Speaking of su, the other su apparently, do you know how to add your user to the sudoers list? It scolds me every time I try sudo. I followed some directions from googling it but no joy.

    Your accelerometer demo has me excited about getting this working.

  29. I’m sourcing it from the ~OE/ directory. I gave up using sudo and instead i use su -c ‘COMMAND’ If you want to use sudo i know you have to edit the sudoers file using visudo as root although I can’t remember what i edited in that file to add myself! We’re hoping to do some integration with the accelerometer. Will’s already written a program to calculate the transformation matrix for calibration. It would be nice to get a gyro on there as well, then add a Kalman filter and GPS for inertial navigation.

  30. I’m not sure how a Kalman will help without a deterministic model. It’s equivalent to least squares in time and least squares needs to fit a function to something. Inav has vel, acceleration, and jerk (do they still call the third derivative jerk?). I know they use Kalman in GPS units but they have complete knowledge of the statistics and nature of the error terms. I have used it in determining orbits of incoming ICBMs — in fact 3000 at once from IR sensor data for SDI back in the 80’s. I think deciding how to skip the bumps is more important than a Kalman Filter. Its a lot of computation with matrix multiply and inversion for every step, which is a good stress test for floating point. Just integrating and some simple predictor/corrector for offset and drift would be fun to play with. I picked up 3 axis accelerometers and 3 axis gyros and a GPS to use with the ARM7 Arduino compatible board and maybe send data to a Mini.

  31. Hmm…ICBM? I need to think more about this, i’ve seen quite a few papers on using extended kalman filters to fuse sensor data from gyros, accelerometers and gps but i’ve only scratched the surface so far. It will be interesting to hear how you get on with all those sensors!

  32. Well, cooking with gas now!

    NOTE: Running task 718 of 2666 (ID: 1597, /home/charles/oe/openembedded/recipes/u-boot/u-boot-mkimage-openmoko-native_oe.bb, do_fetch)
    git: error while loading shared libraries: libcrypto.so.0.9.7: cannot enable executable stack as shared object requires: Permission denied

    Ends here. No output. u-boot must be the first thing built?

  33. Everything went great on the Linux box at work. Images of all sorts and lots to test. Very cool!

    However, at home on the laptop with the same Fedora, I error out on the last task or second to last.

    Sorry for the flood. I have tried reloading all the packages and a git pull and a cleanup and fsck and gc. Still get this deprecated message and error.

    charles@fujitsu oe]$ bitbake mini2440-image
    NOTE: Handling BitBake files: (6712/6712) [100 %]
    NOTE: Parsing finished. 6410 cached, 0 parsed, 302 skipped, 0 masked.
    NOTE: Cache is clean, not saving.
    NOTE: Resolving any missing task queue dependencies
    NOTE: Preparing runqueue
    NOTE: Executing runqueue
    NOTE: Running task 2665 of 2666 (ID: 10, /home/charles/oe/openembedded/recipes/images/mini2440-image.bb, do_rootfs)
    ERROR: function do_rootfs failed
    ERROR: log data follows (/home/charles/oe/oetmp/work/mini2440-angstrom-linux-gnueabi/mini2440-image-1.0-r0/temp/log.do_rootfs.30726)
    | + rm -rf /home/charles/oe/oetmp/rootfs
    | + mkdir -p /home/charles/oe/oetmp/rootfs
    | + mkdir -p /home/charles/oe/oetmp/deploy/glibc/images/mini2440
    | + ‘[‘ 0 ‘!=’ 1 ‘]’
    | + for devtable in /home/charles/oe/openembedded/files/device_table-minimal.txt /home/charles/oe/openembedded/files/device_table_add-s3c_serial.txt
    | + makedevs -r /home/charles/oe/oetmp/rootfs -D /home/charles/oe/openembedded/files/device_table-minimal.txt
    | + for devtable in /home/charles/oe/openembedded/files/device_table-minimal.txt /home/charles/oe/openembedded/files/device_table_add-s3c_serial.txt
    | + makedevs -r /home/charles/oe/oetmp/rootfs -D /home/charles/oe/openembedded/files/device_table_add-s3c_serial.txt
    | + rootfs_ipk_do_rootfs
    | + set -x
    | + package_update_index_ipk
    | + set -x
    | + ipkgarchs=’all any noarch arm armv4 armv4t mini2440′
    | + ‘[‘ ‘!’ -z ” ‘]’
    | + touch /home/charles/oe/oetmp/deploy/glibc/ipk/Packages
    | + ipkg-make-index -r /home/charles/oe/oetmp/deploy/glibc/ipk/Packages -p /home/charles/oe/oetmp/deploy/glibc/ipk/Packages -l /home/charles/oe/oetmp/deploy/glibc/ipk/Packages.filelist -m /home/charles/oe/oetmp/deploy/glibc/ipk
    | /home/charles/oe/oetmp/staging/i686-linux/usr/bin/ipkg.py:39: DeprecationWarning: the md5 module is deprecated; use hashlib instead
    | import md5
    | Traceback (most recent call last):
    | File “/home/charles/oe/oetmp/staging/i686-linux/usr/bin/ipkg-make-index”, line 7, in
    | import ipkg
    | File “/home/charles/oe/oetmp/staging/i686-linux/usr/bin/ipkg.py”, line 39, in
    | import md5
    | File “/home/charles/oe/oetmp/staging/i686-linux//usr/lib/python2.6/md5.py”, line 10, in
    | from hashlib import md5
    | File “/home/charles/oe/oetmp/staging/i686-linux//usr/lib/python2.6/hashlib.py”, line 136, in
    | md5 = __get_builtin_constructor(‘md5’)
    | File “/home/charles/oe/oetmp/staging/i686-linux//usr/lib/python2.6/hashlib.py”, line 63, in __get_builtin_constructor
    | import _md5
    | ImportError: No module named _md5
    NOTE: Task failed: /home/charles/oe/oetmp/work/mini2440-angstrom-linux-gnueabi/mini2440-image-1.0-r0/temp/log.do_rootfs.30726
    ERROR: TaskFailed event exception, aborting

  34. The warhead problem is not so hard in itself. After all when it is “exoatmospheric” (I grind my teeth when they say that) You know it is on an ellipse centered near the center of the Earth. The Kalman is all about the sensor positioning errors – it is an IR telescope in a 747. (A girl who graduated with me in physics ran the instrumentation on the Keiper flying observatory out of NASA AMES for many years, the Kuiper flying observatory. (Its new replacement has about a 90 inch scope and flys with a door open for observation instead of an IR window.) The scope pointing software was similar. Plus there was the “endoatmospheric” stage where the IR signature can be used to tell a warhead from a decoy from the booster which is coming in right behind.

    The Inav of the missile on the other hand must have a detailed gravity map of the launch region. If you use inertial nav over much range, as in an aircraft, local crust density and mountains and hills will throw you off. Granite floats on basalt so if you travel from basalt to a granite dome, g changes enough to affect your nav system.

    The coolest part was that while various IV League faculty “proved” in Scientific American that you couldn’t use space based LASERs to hit atmospheric missiles, the researchers developed the phase conjugate mirror, which made it impossible to miss.

  35. Hmm.. i’d guess you have a problem with python module md5.

    I’d try running the yum command again at the top of the page. It’s strange it’s worked for you on the other box and not the laptop.

    If that doesn’t help i’d try importing md5 in python. Type ‘python’. Then type ‘import md5’ in the python shell. If it doesn’t import you’ve got a clue!

    Normally when i get an error it can be resolved by cleaning the package and starting again. Here i’d try:

    bitbake -c clean mini2440-image

    And then build it again. I’m not sure why i get these seemingly random errors sometimes, it seems like on occasion things get corrupted, but this normally resolves the problem!

    Until now i’d never heard of a phase conjugate mirror! After work i’ll have a look!

  36. Hi Doug

    I followed your instructions but I am having the error below. What is the problem?

    By the way, I have Ubuntu8.1.

    …..
    yes
    | checking for setlocale… yes
    | checking for putc_unlocked… if [ x”” != x ]; then
    | gcc -c -DHAVE_CONFIG_H -isystem/home/sgoren/MINI2440/OE/oetmp/staging/i686-linux/usr/include -O2 -I. -I/home/sgoren/MINI2440/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/gcc-cross-initial-4.2.4-r5/gcc-4.2.4/libiberty/../include -W -Wall -pedantic -Wwrite-strings -Wstrict-prototypes -Wc++-compat /home/sgoren/MINI2440/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/gcc-cross-initial-4.2.4-r5/gcc-4.2.4/libiberty/pex-one.c -o pic/pex-one.o;
    | else true; fi
    | cc1: error: unrecognized command line option “-Wno-overlength-strings”
    | make[2]: *** [fixincl.o] Error 1

  37. I got the mini2440 from FriendlyARM reseller to write a program for it. Since I wanted to develop in X11/GTK, after little research I found that I needed GPE. Further research revealed that there is an image available with the instructions at: http://narnia.cs.ttu.edu/drupal/node/131.

    However, trying to drop the gpe image on the device won’t work. I followed an instructions, but when I reset the device, it didn’t reboot and went to the error message on my HyperTerminal. Then I threw the original kernel image that came with the device. It didn’t boot again, but now it didn’t boot at all.

    Here is some info:

    MINI2440 # nand info

    Device 0: NAND 256MiB 3,3V 8-bit, page size 2048, sector size 128 KiB

    I would like to have a working X11/GPE mini2440 device to start debugging my program.

    Is there a working solution somewhere either locally or on the Web?

    Thank you.

  38. @sgoren
    I haven’t experienced this problem but Isn’t this a bug in the older versions of gcc when using 64bit processors? Have you got the latest gcc? Maybe it is time to upgrade your distro 😉

  39. Hi, Will,
    I understand.
    From my experience working with Linux and from what I see is happening here with mini2440, it’s either GPE on that instruction was provided for 64M “hard drive” and when I try to load it to 256M hard drive there is an unknown/unidentified space for the kernel and it fails to boot.

    I got this from the situation where I threw the original bootloader, original kernel image and the GPE image from that link.

    However, what I don’t understand is that why the boot didn’t even started. All it did was saying:


    Setup Linux Parameters 0x30000100
    linux command line is: “noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0″
    MACH_TYPE=1999
    Now, Booting Linux….
    Uncompressing Linux………………………………………………. done, booting the kernel

    and that’s it.

    It should at least start booting and throw the kernel panic on the HyperTerminal here.

    Again this is done using the original bootloader/kernel and the GPE image from the instructions of Mr Bao.

    Am I right in this assumption? Or it’s something else going on here?

    Thank you.

  40. Hi, did anyone had problem with 3.5″ screen and touchscreen?
    I bitbaked image with tslib and qt-embedded,
    but when running examples, axis on touchsreen are inverted!
    tslib calibration and tests are working fine
    display type is T35 by chinesse images,
    for angstrom passing lcd type ‘3’ from loader
    How to correct touchcreen?

  41. Doug,

    I was able to complete the bitbake of x11-image (as per your recomendation for X11).

    It flashed OK on my mini2440 and bootsup fine but the LCD Screen is blank. I am able to login thru serial console.

    Do you have any clues . I tried using mini2440=0tb and 1tb. I have a 3.5 Display but when I set to
    1tb I see the linux penguin during start of boot and then all blank.

    If you haven’t seen this, Can you point me to somewhere I can read about it.

    Any help welcome

  42. Will

    Thanks for the response. I tried with mini2440=3tb in bootargs(setenv bootargs ….)
    I get a white screen. Then I tried mini2440=2tb and I see portion of a flickering Penguin at the
    bottom Left corner.

    I have a board from Developmentboard.net that I bought in end of Jan.
    I cleanedup x11-image and bitbaked qtopia-core-gui-image as well. No success.

    Should I try any other recipe. I tried init 3 and then init 5. It doesn’t seem to have any effect atall on the
    LCD Screen.
    My bootargs is
    root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200 mini2440=1tb

    I build on Ubuntu 9.1
    Any clues/ suggestions/pointers please…

  43. Hi Doug,

    I have tried all the options with mini2440. I see that when the kernel starts coming up , a picture of
    Linux Penguin is displayed. When I remove console=ttySAC0,115200, I see the boot message on the LCD screen.

    Once the boot process is completed, the LCD screen becomes blank with a # at the bottom Left of screen.
    init 3 ;init 5 did not make any change. How do I debug this

    I was expection to see a GUI with some buttons so that I can write an App to display something.

    Is there any other way of compiling to get this. Any other options. I am interested in a Linux system with GUI, that’s all.

  44. Hi Doug,

    I have been trying to follow this tutorial on my Ubuntu machine, but each time I get to the: bitbake mini2440-image part, I get the following message:


    NOTE: Psyco JIT Compiler (http://psyco.sf.net) not available. Install it to increase performance.
    ERROR: no files to build.

    NOTE: Parsing finished. 0 cached, 0 parsed, 0 skipped, 0 masked.
    ERROR: Nothing PROVIDES ‘mini2440-image’ (but ‘[]’ DEPENDS on or otherwise requires it)

    I have limited Linux experience, but it looks like an environment problem? I have gone over the tutorial several times but can’t see what I have done wrong. I have changed the source-me.txt and local.conf files to match my directory structure… any ideas/help appreciated.

    1. Hi Matt,

      The first warning is probably because you are missing the python psyco package. I don’t use Ubuntu but i think this should work:

      apt-get python-psyco

      ..But before you try that have you read this page?

      http://wiki.openembedded.net/index.php/OEandYourDistro

      If you haven’t i’d work your way through it so you know you have all the right packages installed.

      Secondly the mini2440-image.bb doesn’t exist in all repos. It’s just the base-image plus a few extra packages you may or may not need. Have a look in …OE/openembedded/recipes/images… If you can’t see the recipe in there then you can copy it over from BusError’s repo, but to be honest you might as well try building the base-image first and start worrying about adding extra packages when that works. You can do that by typing:

      bitbake base-image

      Hope that helps,
      Doug

  45. Ok,

    Since my last post I have got things moving.. No doubt these are obvious to a Linux pro, but to a novice such as me I have to write down every step.

    In Ubuntu I was missing two packages, svn and makeinfo, for these I had to install the following:

    sudo apt-get install subversion texinfo

    I then had to change the default dash to bash using the following:

    sudo dpkg-reconfigure bash

    Selecting NO from the menu options, now the bitbake seems to be underway, so I will get the kettle on!

  46. Well, not surprisingly after several hours.. it failed 🙁 with the following error message:

    make[4]: *** [file-ostream.lo] Error 1
    make[4]: Leaving directory `/home/matt/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/gettext-0.17-r2/gettext-0.17/gettext-tools/libgettextpo’
    make[3]: *** [all] Error 2
    make[3]: Leaving directory `/home/matt/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/gettext-0.17-r2/gettext-0.17/gettext-tools/libgettextpo’
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/home/matt/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/gettext-0.17-r2/gettext-0.17/gettext-tools’
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/home/matt/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/gettext-0.17-r2/gettext-0.17/gettext-tools’
    make: *** [all-recursive] Error 1
    FATAL: oe_runmake failed

    I’m going to check the OE link Doug sent earlier, clean up and try again!

    1. Hi Matt. I’ve never come across it failing there before. I find about 50% of problems are fixable by cleaning the package and trying again. For example here i think it would be:

      bitbake -c clean gettext

      I’d try baking the individual package that failed until the problem is fixed and then go back to the image recipe.

      Good luck!

  47. Hi Doug,

    Thanks for the tip! I have read through the OE page, and installed the suggested packages. I am just in the process of: bitbake gettext as you suggest. If this works, will I need to celan the mini2440-image prior to starting the whole thing again? Thanks for your help with this, appreciated!

  48. No problem…. you don’t need to clean the mini2440 image, just the broken package. It should then just carry on baking the remaining packages for the image file.

  49. So far I have made it to step 1284 of 2692, and it now looks like I’m going to run out of disk space.. I’m only on a dual boot system which has a 40G partition for Ubuntu. I have removed as many unwanted files and packages as I can to free up more space, but the bitbake just keeps eating it up! How much should the resulting OE folder take up?

  50. Hmm…i would have thought you’d just about be ok with 40GB. I forget exactly how much space mine is taking up, i’ll have a look when i get home. If you need to save space you can add:

    INHERIT += “rm_work”

    to the local.conf to remove build directories after the package has been built. That should save ~50%. Saying that you’ll most likely want more space in the long run when you start compiling other things. This is where LVM becomes very useful!

  51. Well I got to 7Gb and ran out of free space, Turns out that it is only an 18Gb partition!

    I presume if I change the local.conf file I will then need to do a complete clean and revuild in order to take advantage of the INHERIT option?

  52. I think that’s very likely, although i haven’t actually tried using that option yet. If I were you i’d increase the size of the partition!

  53. Hi

    I am succesfully able to bikbake with the above procedure. I need to build a modified kernel. (I need to put in
    a bootup logo and enable some features in kernel) . Looks like bitbake unpacks a kernel and builds it. How do I make it build my modified kernel sources.

    Thanks

  54. Hi
    First of all: thanks for the tutorial.
    Everything worked fine to me, except for one thing:

    Whatever I try, the calibration won’t work in Qt, even tough it works out of Qt, while doing a test.
    I tried many ways, many sites, but it still don’t work…
    Can somebody help me plz? I’m really getting desperated…

    Thanks

  55. for the source source-me.txt to work the line

    su -c ‘sysctl vm.mmap_min_addr=0’ should be sudo sysctl vm.mmap_min_addr=0

  56. Hello !
    I’m new and not have experience with OE. I start work with angstrom and I can build examples ..but when I try to write specific reciepe .BB file I recieve this ERROR :
    bitbake -b test_qt.bb
    NOTE: Preparing runqueue
    NOTE: Executing runqueue
    NOTE: Running task 7 of 19 (ID: 10, /home/eukrea/ttk-fgnet-20100630/eukrea-project/recipes/test_qt/test_qt/test_qt.bb, do_compile)
    NOTE: package test-qt-r0: task do_compile: Started
    ERROR: Task 10 (/home/eukrea/ttk-fgnet-20100630/eukrea-project/recipes/test_qt/test_qt/test_qt.bb, do_compile) failed with 256
    ERROR: ‘/home/eukrea/ttk-fgnet-20100630/eukrea-project/recipes/test_qt/test_qt/test_qt.bb’ failed
    ERROR: Function do_compile failed
    NOTE: Task failed: (‘function do_compile failed’, ‘/home/eukrea/ttk-fgnet-20100630/tmp_angstrom/work/armv6-angstrom-linux-gnueabi/test-qt-r0/temp/log.do_compile.2899′)
    ERROR: Logfile of failure stored in: /home/eukrea/ttk-fgnet-20100630/tmp_angstrom/work/armv6-angstrom-linux-gnueabi/test-qt-r0/temp/log.do_compile.2899
    Log data follows:
    | /home/eukrea/ttk-fgnet-20100630/tmp_angstrom/sysroots/armv6-angstrom-linux-gnueabi/usr/lib/crt1.o: In function `_start’:
    | init.c:(.text+0x30): undefined reference to `main’
    | collect2: ld returned 1 exit status
    NOTE: package test-qt-r0: task do_compile: Failed
    ERROR: TaskFailed event exception, aborting
    ERROR: Build of /home/eukrea/ttk-fgnet-20100630/eukrea-project/recipes/test_qt/test_qt/test_qt.bb do_compile failed
    ERROR: Task 10 (/home/eukrea/ttk-fgnet-20100630/eukrea-project/recipes/test_qt/test_qt/test_qt.bb, do_compile) failed with 256
    ERROR: ‘/home/eukrea/ttk-fgnet-20100630/eukrea-project/recipes/test_qt/test_qt/test_qt.bb’ failed
    eukrea@eukrea-laptop:~/ttk-fgnet-20100630/eukrea-project/recipes/test_qt/test_qt$

    Place help my !

    My test_qt.bb file is:

    # source : http://docs.openembedded.org/usermanual/html/recipes_examples.html

    DESCRIPTION = “My first QT test”
    PR = “r0”

    SRC_URI = “file://main.cpp
    file://mainwindow.cpp
    file://welcom.cpp
    file://contact.cpp
    file://mainwindow.h
    file://welcom.h
    file://contact.h”

    do_compile() {
    ${CC} ${CFLAGS} ${LDFLAGS}
    ${WORKDIR}/mainwindow.cpp -o mainwindow
    ${WORKDIR}/welcom.cpp -o welcom
    ${WORKDIR}/contact.cpp -o contact

    }

    #do_install() {
    # install -m 0755 -d ${D}${bindir} ${D}${docdir}/test_qt
    # install -m 0644 ${S}/test_qt ${D}${bindir}
    # # install -m 0644 ${WORKDIR}/README.txt ${D}${docdir}/test_qt
    #}
    Thanks in advance !

  57. Thanks for the quick response!
    I bitbake SDK now and stiil wait ..
    I apologize in advance for stupid questions 🙁 I’m new.
    What is the problem ? I can build examples and console applications but when I try build my custom project I recieve errors . I think my recipe file is wrog or …????
    Thanks !

  58. Hello again Doug !
    I succeеs bitbake QT SDK . I build examples from http://docs.openembedded.org/usermanual/html/ch05s08.html. But I do not understand why my project created with QT Creator is not allowed to compile a qmake2 and make. I get the following error:
    eukrea@eukrea-laptop:~/ttk-fgnet-20100630/eukrea-project/recipes/test_qt/test_qt$ qmake2
    eukrea@eukrea-laptop:~/ttk-fgnet-20100630/eukrea-project/recipes/test_qt/test_qt$ make
    make: Nothing to be done for `first’.
    If You can place help me !
    Thanks!

  59. Hi, I just compiling the image uscessfully. I loaded the uImage via Uboot. But, when I try to fatload the jffs2 to the rootfs directory, it either freezes or reboots depending upn the location I write to. I assume that the jffs2 file is too big? Mine came out to be about 75Mb. any odesa why it won’t load? Maybe I’m not waiting long enough?

    Any ideas? Thanks in advance, I’m a newbie so go easy on me:)

    command: fatload mmc 0:1 0x32000000 myrootfs.jffs2

  60. Hi Doug,
    nice tutorial, thanks – succeeded in baking the image the first time around without any errors!

    On booting the Angström splash screen appears with the bar moving to show that stuff is still loading, but i end up with a text-based login screen … any idea where i might start digging to fix this problem?
    I’m using a Mini2440 with 64 MByte SDRAM, 64 MByte Flash and the 7″ screen, boot args as per Bill’s article (http://billforums.station51.net/viewtopic.php?f=1&t=5).
    Regards,

    Steffen

  61. @Doug
    Hi Doug,
    thanks for the reply – i baked the ‘mini2440-image’, with ‘qt4-embedded’ included as in your tutorial … would’ve thought that this would give me a graphical desktop as directfb, tslib & stuff are baked as well?!
    Or am i missing something really obvious here? 😉
    Regards,

    Steffen

    1. Hi Stefan, what you have is an image with the required framework to run a qt4 application. You might be confusing it with Qtopia / Qt Extended which are desktop environments. If it helps the image you have is basically the image i used to make the accelerometer / RGB LED interfaces. Doug

  62. @RyanB
    Hi Ryan,
    had the same problem – You probably got the 64 MByte RAM / 64 MByte Flash version? Then the image won’t fit.
    Boot it off the SD – i put the kernel there as well – much easier to handle because You don’t have to go through all the loops again if You make some changes (e.g. a new kernel): Power off the Mini, write the new images onto it …
    Regards,

    Steffen

  63. @Doug
    Hi Doug,
    thanks – yupp, i was thinking along the lines of Qtopia …
    What kind of desktop environment did You use e.g. for the ‘Qt Embedded 4.6.0 + Qwt + kxps5 accelerometer’?
    Cheers,

    Steffen

  64. Hi Doug,
    sorry to bother You again – when i run the ‘qtdemo’ app the mouse pointer moves rather erratically, not even using up the whole area of the 7″ screen.
    I’ve found a couple of descriptions on various news groups and blogs on how to configure the touch screen but not two of them identical … and what’s more, none of them seems to work reliably (at least for me) 😉
    Could You provide a brief description how You got it working, maybe even include the environment variables necessary?
    Regards,

    Steffen

  65. Hi Doug,

    Thanks for this howto!

    Only problem i have is when trying to build the toolchain:

    bitbake meta-toolchain-qte

    i get:

    ERROR: Nothing PROVIDES ‘meta-toolchain-qte’

    Ik obviously miss some files. But how to install easy?

    Kind regards Jelle

Leave a Reply

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