Currently we use Fedora 9.0 with QtDesigner4, It design for Qtopia4. But in default mini2440 with Qtopia 2.2.0. Please help me upgrade mini2440 with Qtopia 2.2.0 to Qtopia 4.
Upgrade Qtopia 4.5
Here is a guide for Qt 4.5 on mini2440 http://blog.cor-net.org/?p=15
Hi, I read above link , but not succeeded. But , i cross compiled qt 4.5.3 , added to my fs with some changes and ported on board. It works fine. (r8 now without tslib)
Hi Neo, Would you please share your steps? I have got tslib1.4 successfuly. However when compiling Qt4.5.3, I got these messages. g++ -fno-exceptions -Wl,-O1 -Wl,-rpath,/home/vikikivi/mini2440-bootstrap/output/qt45/lib -Wl,-rpath,/home/vikikivi/mini2440-bootstrap/output/qt45/lib -o ../../../bin/moc release-shared/moc.o release-shared/preprocessor.o release-shared/generator.o release-shared/parser.o release-shared/token.o release-shared/main.o -L/home/vikikivi/mini2440-bootstrap/output/tslib/lib -L../bootstrap -lbootstrap -L/home/vikikivi/mini2440-bootstrap/output/tslib/lib -ldl /usr/bin/ld: ../bootstrap/libbootstrap.a(compress.o): Relocations in generic ELF (EM: 40) ../bootstrap/libbootstrap.a: could not read symbols: File in wrong format collect2: ld returned 1 exit status make[1]: *** [../../../bin/moc] Error 1 make[1]: Leaving directory `/home/vikikivi/mini2440-bootstrap/qt-embedded-linux-opensource-src-4.5.3/src/to ols/moc' make: *** [sub-moc-install_subtargets-ordered] Error 2
Hi lim, I don't know how to cross compile qt 4.5 with tslib support. But , of course you can cross compile both the things separately and then merge on board. Also, i think u r using local g++ for compiling qt4.5, which will not be useful for mini2440. What i have done is:- 1) Downloaded qt 4.5 from http://trolltech.com/downloads. 2) Used a arm based cross-compiler toolchain like gcc 4.3.2 (http://www.andahammer.com//Downloads/linux/arm-linux-gcc-4.3.2.tgz) 3) Now , in qt4.5 directory, open file mkspecs/qws/linux-arm-g++/qmake.conf , and replace "arm-linux-" with "arm-none-linux-gnueabi-" everwhere. 4) create directory Qt in /usr/local/ 5) compile qt4.5 with as:- ./configure -prefix /usr/local/Qt -release -shared -fast -pch -no-qt3support -no-sql-sqlite -no-libtiff -no-libmng -no-libjpeg -qt-zlib -no-libpng -no-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-svg -no-phonon-backend -no-3dnow -no-largefile -no-gif -no-mmx -no-xrender -no-xmlpatterns -no-xkb -no-sm -no-xinerama -no-xshape -no-webkit -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -no-gtkstyle -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license (This is without tslib configuration). 6) make 7) make install 8) Now, download and cross compile tslib from (http://download.berlios.de/tslib) with our arm compiler. 9) Now, you can merge tslib and Qt dirs on your filesystem on board and set paths according to instructions given here (http://blog.cor-net.org/embedded/mini2440/qt-45-on-mini2440/) for tslib and Qt. I hope it will helpful to you. My tslib is working fine now.......
Hi Neo, I am having same problem. I have compiled qt 4.5 as per the link given. I have copied the libraries (libQtCore,Gui,Network..) on the board. When I run hello program it gives me sh: :./hello not found. what might be the cause? where I have to copy the libs? I have tried /lib, /opt/Qtopia, /usr/local/Qt etc. but failed. Thanks
Can you plz tell me whether the hello program came along with demos/examples of cross compiled qt4.5 or its your own created on desktop? b coz i got this error only in one of two cases:- 1) either i compiled hello prog. using local g++ and qmake on host (desktop) machine. OR 2) I had used a cross compilation toochain which is not compatible to mini2440.
Hi lim, By compilation environment , do you mean something like bitbake or open embedded environment or so? Sorry but I didn't understood your question. BTW , i didn't used any compilation environment. Just cross compiled qt 4.5.3 source with arm based gcc 4.3.2. that's it! Plz feel free to ask any of your doubts or any help from my side.
HI Neo, I meant, the environment variables that you set before begin compiling Qt4.5. Something like below. export CC=arm-none-linux-gnueabi-gcc export CXX ? export CROSS_COMPILE=arm-none-linux-gnueabi- etc.... and finally ./configure -prefix /usr/local/Qt -release -shared -fast -pch -no-qt3support -no-sql-sqlite -no-libtiff -no-libmng -no-libjpeg -qt-zlib -no-libpng -no-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-svg -no-phonon-backend -no-3dnow -no-largefile -no-gif -no-mmx -no-xrender -no-xmlpatterns -no-xkb -no-sm -no-xinerama -no-xshape -no-webkit -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -no-gtkstyle -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license Hope these explain my questions.
Hi Neo, I have tested both options. - Program compiled with Qt4.5 and - my own program none of above works, Actually I had compile the qt4.5.2 with incompatible toolchain. But when I tried with arm 4.3.2, it gives error & stop compilation. Error is ERROR: Source object .obj/release-shared-emb-arm/jquant2.o has EABI version 0, but target libqjpeg.so has EABI version 5
Problems resolved. Just changed the contents of mkspecs/qws/linux-arm-g++/qmake.conf to include the full path to the toolchain.
Hello, lim... I meet the same problem with you. configuration passed , but found error when make g++ -c -pipe -fno-exceptions -O2 -Wall -W -DQT_MOC -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_TEXTCODEC -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_GEOM_VARIANT -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_STL -DQT_NO_SYSTEMLOCALE -DQT_NO_TEXTSTREAM -DQT_NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -I../../../mkspecs/qws/linux-x86-g++ -I. -I. -I. -I../../../include -I../../../include/QtCore -I../../../include/QtXml -I../../xml -o release-shared/token.o token.cpp g++ -c -pipe -fno-exceptions -O2 -Wall -W -DQT_MOC -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_TEXTCODEC -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_GEOM_VARIANT -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_STL -DQT_NO_SYSTEMLOCALE -DQT_NO_TEXTSTREAM -DQT_NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -I../../../mkspecs/qws/linux-x86-g++ -I. -I. -I. -I../../../include -I../../../include/QtCore -I../../../include/QtXml -I../../xml -o release-shared/main.o main.cpp g++ -Wl,-rpath-link,/home/leter/samba/QT/qt-everywhere-opensource-src-4.6.0/lib -fno-exceptions -Wl,-O1 -Wl,-rpath,/ITRI/QT_PREFIX/lib -Wl,-rpath,/ITRI/QT_PREFIX/lib -o ../../../bin/moc release-shared/moc.o release-shared/preprocessor.o release-shared/generator.o release-shared/parser.o release-shared/token.o release-shared/main.o -L/home/leter/samba/QT/qt-everywhere-opensource-src-4.6.0/src/tools/bootstrap -lbootstrap /usr/bin/ld: /home/leter/samba/QT/qt-everywhere-opensource-src-4.6.0/src/tools/bootstrap/libb ootstrap.a(compress.o): Relocations in generic ELF (EM: 40) /home/leter/samba/QT/qt-everywhere-opensource-src-4.6.0/src/tools/bootstrap/libb ootstrap.a: could not read symbols: File in wrong format collect2: ld returned 1 exit status make[1]: *** [../../../bin/moc] Error 1 make[1]: Leaving directory `/home/leter/samba/QT/qt-everywhere-opensource-src-4.6.0/src/tools/moc' make: *** [sub-moc-make_default-ordered] Error 2 But, I have modified the contents of mkspecs/qws/linux-arm-g++/qmake.conf to include the full path to the toolchain. =============================== qmake.conf ================ # # qmake configuration for building with arm-linux-g++ # include(../../common/g++.conf) include(../../common/linux.conf) include(../../common/qws.conf) # modifications to g++.conf QMAKE_CC = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc QMAKE_CXX = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-g++ QMAKE_LINK = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-g++ QMAKE_LINK_SHLIB = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-g++ # modifications to linux.conf QMAKE_AR = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ar cqs QMAKE_OBJCOPY = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-objcopy QMAKE_STRIP = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-strip load(qt_config) any comment is preciated
I would suggest the following steps: #1 try with distclean and use the configuration to recompile. If it doesn't work then try step #2. #2 delete the whole Qt4.5 folder. Reinstall a fresh one. And then apply the qmake.conf changes. Recompile. Make save a copy of your qmake.conf before deleting it. Good luck.
hey im following Neos steps to upgrade the Qt on mini2440. I did everything as told, im very new to this platform so please bear with me :) when compiling Qt im getting this error. Creating qmake. Please wait... /cross-compile/bin/arm-linux-g++ -c -o project.o -pipe -DQMAKE_OPENSOURCE_EDITION -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -Igenerators/symbian -I/root/Desktop/setups/qt-everywhere-opensource-src-4.6.0/include -I/root/Desktop/setups/qt-everywhere-opensource-src-4.6.0/include/QtCore -I/root/Desktop/setups/qt-everywhere-opensource-src-4.6.0/src/corelib/global -I/root/Desktop/setups/qt-everywhere-opensource-src-4.6.0/src/corelib/xml -DQT_NO_PCRE -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS -I/root/Desktop/setups/qt-everywhere-opensource-src-4.6.0/mkspecs/linux-g++ -DHAVE_QCONFIG_CPP -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT project.cpp gmake: /cross-compile/bin/arm-linux-g++: Command not found gmake: *** [project.o] Error 127
Neo, Can you tell me how did you compile tslib? There is no config file in the tslib directory. I see that I have to use autoconf but I get some error using it.
Janusz You need to have automake and libtool installed Then run in the tslib folder ./autogen.sh ./configure --build=i386-linux --host=arm-linux --target=arm --disable-inputapi --prefix=${TSLIBOUTPUT}/ make make install Should work Cheers Pajolo
Hallo, Thanks spectrum and Pajolo for help. Unfortunately I have other problem. I have compiled tslib and qt4.5 and now I want to copy compiled qt libraries on the board. Unfortunately I have bought EM2440-III-LCD-7 board which is similar to the Mini 2440(based on the same module) but has different Linux distro (embede sky) - I hadn't know that Mini 2440 exist :(. I found this page after I had bought the board. So ...In my distro there is no ldconfig file so I don't know if I can just copy TQ4.5 libraries to the /usr/lib or /lib directory ? Or what can. Change linux distro ?
Hi Neo, 1 - I successfully crossed compiled the Qt 4.6.2 by runing the following commands $ tar -xzvf qt-everywhere-opensource-src-4.6.2.tar.gz $ cd qt-everywhere-opensource-src-4.6.2 $ mkdir /usr/local/Qt $ ./configure -embedded arm -xplatform qws/linux-arm-g++ -prefix = /usr/local/Qt -qt-mouse-tslib -little-endian $ make $ sudo make install 2 - I succesfully crosed compile the tslib by runing this commands: $ tar -xjvf tslib-1.0.tar.bz2 $ cd tslib-1.0 $ ./autogen.sh $ export ac_cv_func_malloc_0_nonnull=yes $ ./configure --build=i386-linux --host=arm-linux --target=arm-linux --disable-inoutapi --prefix=${TSLIBOUTPUT} $ make $ sudo make install And till that point every thing gonna good The questions now are 1 - what are the libraries required to be copied to the mini2440 board. 2 - what is the benefit of the tslib and wher i can configure it, i successfully crossed compile the tslib but i don't make any of the export commands because I don't know what is the true configuration. I have two configuration this is one: #haigang added this for tslib export TSLIB_TSEVENTTYPE=H3600 export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_TSDEVICE=/dev/touchscreen/0 export TSLIB_CALIBFILE=/usr/etc/pointercal export TSLIB_CONFFILE=/usr/etc/ts.conf export TSLIB_PLUGINDIR=/usr/lib/ts And this is the another configuration export TSLIB_TSEVENTTYPE=INPUT export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_TSDEVICE=/dev/input/ts export TSLIB_CALIBFILE= export TSLIB_CONFFILE=/usr/etc/ts.conf export TSLIB_PLUGINDIR=/usr/lib/ts Thanks M.Hamed
Hi every body 1 - what are the libraries required to be copied to the mini2440 board. 2 - what is the benefit of the tslib and wher i can configure it, i successfully crossed compile the tslib but i don't make any of the export commands because I don't know what is the true configuration. Thanks M.Hamed
Hi there. I've written way of upgrading Qt4.6.2 for mini2440. You could check there, thanks http://mini2440vietnam.blogspot.com/2011/04/upgrade-qt462-in-mini2440.html