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:
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:
mkdir OE
cd OE
git clone git://repo.or.cz/openembedded/mini2440.git openembedded
I then setup the source-me.txt similar to before:
I put the following in:
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:
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
If you want qt4-embedded or any other package included in the build simply edit the recipe in:
I added qt4-embedded:
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:
and run bitbake:
from the ~/OE/openembedded/ directory..
If you get an error trying to build a package try cleaning it:
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:
Obviously that directory depends on what you setup in the local.conf.
Good luck!
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.
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
@Doug
Hello Doug,
thank you for the quick response!
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.
@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
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.
@Doug
Hello Doug,
There are all files I need inside that folder!
Thanks again!
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.
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
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
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
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)
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.
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!
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?..?
@Doug
Thanks Doug… just figured that one out! 🙂
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!
Cool. I got it all built! Do you recommend following the http://code.google.com/p/mini2440/wiki/MiniBringup instructions for loading it on the mini2440?
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.
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?
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
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
@alex
I’m pleased you fixed it!
@alex
Ok, I resolved rsync issue by rsync-3.0.0.tar.gz deleting.
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.
@Ferock
Sounds like the mirror is down?
Hello,
How can I cross compile my Qt project according to that rootfs?
@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.
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?
@Anafor
You need to edit the qmake.conf for arm-linux-g++, this is in your local Qt directory. If you use the tool chain arm-none-linux-gnueabi don’t forget to set the compiler flags!
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
@john
A working example of the config file is given in the post. This should get you up and running.
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.
Unfortunately i can’t help much with the SD card because i haven’t got round to playing with it yet. Have you seen this?
http://wiki.openmoko.org/wiki/Booting_from_SD
If you do get it to work please post your u-boot config!
Cheers, Doug
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!
@Aleksander
Thanks for posting this Aleksander!
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.
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.
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..
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!
It looks like a typo in the recipe mini2440-image.bb, next to qt4-embedded.
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….
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
I haven’t tried but i’d also be interested to hear if anyone’s got it working.
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
Are you sure?! Also have you installed the correct packages required for OE? (see either the posts on here or the official manual).
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.
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
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.
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.
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.
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!
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?
Have you got SELinux set to permissive?
If not, try a
su -c 'setenforce 0'
to temporarily set to permissive until restart.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
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.
By the way, this is why submarines had to launch from specific sites until GPS was finished.
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!
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
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.
@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 😉
@Igor
You can build a GPE image based on angstrom using Open Embedded. Try using the command:
bitbake gpe-image
.You will also want to follow these articles:
http://cowboycoders.org/booting-using-nfs-and-tftp/
http://cowboycoders.org/compiling-the-mini2440-kernel/
http://code.google.com/p/mini2440/wiki/MiniBringup
Which will build you a working boot loader (uboot), and explain how to flash it onto the mini2440.
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.
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?
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
@suni
You may need to use
mini2440=3tb
if you have a newer screen.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…
Hi Suni, i’m not sure what’s going wrong. To clear up the confusion with the boot args have a look at the source code for the machine conf:
http://repo.or.cz/w/linux-2.6/mini2440.git/blob/HEAD:/arch/arm/mach-s3c2440/mach-mini2440.c
Here you can see exactly what the options you are specifying are doing. As Will points out it looks like you need either 0 or 3 unless they have changed the screen again?
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.
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.
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
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!
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!
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!
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!
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.
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?
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!
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?
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!
Increased my partition by another 14Gb, and have re-started the bitbake, so far so good!
Doug, I’m currently looking for a Linux Expert to help with the robotics project I’m working on, I don’t suppose this would interest you?
http://www.hexapodrobot.com/forum/viewtopic.php?f=22&t=442
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
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
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
Are you using Ubuntu?
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 !
Hi George,
Have a look at this link:
http://docs.openembedded.org/usermanual/html/ch05s08.html
Bitbake the Qt E SDK, and follow the example.
Hope that helps,
Doug
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 !
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!
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
Just read my comment. Sorry about the spelling. It was late:)@RyanB
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
Thanks, that sounds about right… which image have you baked? Unless it’s something like gpe-image you won’t have a GUI.
@RyanB
You’re best off asking somewhere else about this, i’ve done nearly all my work using NFS. Sorry i can’t help. Doug
@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
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
@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
@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
Hi Steffen,
I used Qt Creator, I knocked the app together using my netbook (hp mini2133) which has a built in lis3lv triple axis accelerometer.
Once it was working i used the Qt Embedded SDK (see link below) to cross compile it, and bitbaked the kernel driver i wrote for the kxps5.
http://docs.openembedded.org/usermanual/html/ch05s08.html
Cheers,
Doug
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
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
Sounds like no recipe, are you sure the name’s correct? If you can’t find it you might need to pull it in from the OE classic branch.