PDA

View Full Version : Qt App on ARM with X11/KDE Support



puneet.narsapur
13th July 2009, 12:59
Hi All,

Recently i compiled Qt 4.5 Embedded for an ARM platform and was able to successfully deploy it on the target board.

The application ran successfully on the target board, but there was a problem. The framebuffer usage conflicted with the KDE session that was running on the target board. Meaning, after running my application, the screen was updated to show the GUI from my application, but when i tried moving the mouse pointer, the screen traversed by the mouse erased my GUI and displayed the KDE session. In a way, both are using the same frame buffer and updating individually, with KDE taking the higher priority.

While doing the configuration to cross-compile Qt4.5 for ARM, i couldn't find any options that could allow me to run my application under the already running KDE session. Also there was no option to own the framebuffer exclusively to my application as well.

Can anyone help me get this issue sorted out? i believe the KDE session has a X11 Server running and if my application connects to it, then it could work as "just another window" with other windows inside the KDE session but i don't know how to do it.

If not possible to run inside the KDE session, is it possible to own the framebuffer exclusively? Has anyone ever faced such issues?

Any help would be really great.

Thanks.

e8johan
14th July 2009, 09:20
I you are running X11 and KDE on your target, you should not use Qt for embedded Linux. Instead, use Qt/X11, but cross compile it for arm.

puneet.narsapur
14th July 2009, 14:13
Hi,

yes the target board does run the X11 and KDE on it.

I will try your suggestion and update the thread back.

Thanks.

puneet.narsapur
16th July 2009, 14:39
Hi,

After trying to compile my application using the Qt installed on the target machine, i could get my application running inside the KDE session. :) Thanks.

However, i am not able to cross-compile the application on my Fedora Core linux machine. I am using qt-x11-opensource-src-4.5.0 and have given the following command to cross compile it for ARM

./configure -prefix /home/pnarsapur/QTWorking/SnapDragon/qt-x11-opensource-src-4.5.0 -make libs -make tools -no-openssl -no-xmlpatterns -no-scripttools -no-webkit -no-svg -xplatform qws/linux-arm-g++ -little-endian -host-little-endian

After doing this and running gmake to compile and generate libraries, i get errors in qatomic_i386.h
-----------------------------------------------------------------
../../include/QtCore/../../src/corelib/arch/qatomic_i386.h:120: error: impossible constraint in 'asm'
-----------------------------------------------------------------

Had to comment out some code in this to go to next stage where i got error in qlibraryinfo.cpp
-----------------------------------------------------------------
global/qlibraryinfo.cpp:573: error: unknown register name `edi' in `asm'
-----------------------------------------------------------------

Again had to comment only to get stuck in new error. i don't think cross compilation should give all such errors. am i doing something wrong?

How do i cross compile it?

puneet.narsapur
17th July 2009, 07:46
After doing the commenting out from the Qt files, when Qt compiler started linking for generating libQtCore library, i keep getting following error

-------------------------------------------------------------------------
/srv/tools/omap3evm/toolchain/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /lib/libpthread.so.0 when searching for /lib/libpthread.so.0
/srv/tools/omap3evm/toolchain/arm-2007q3/bin/../lib/gcc/arm-none-linux-gnueabi/4.2.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find /lib/libpthread.so.0
collect2: ld returned 1 exit status
-------------------------------------------------------------------------

the linker tries to find libpthread in /lib even though while configure i provided the path to the library folder that was copied from the target board to a local folder on my machine so that cross compilation take place.

this is the same error that comes if i try to just compile my application even without cross compiling the library.

there is something going wrong here. can anyone tell me what's going wrong?

yogeshkm
16th January 2014, 16:22
Hi,
Trying a really long shot here. Were you able to fix the problem.

Rgds