keypad and touchscreen is not working on embedded device with x11(gnome) support
Hi Everybody,
We are trying to build Qt-5.2.1 for imx6SL(ARM-architecture) based embedded device with x11 support.
In out device there is gnome window manager, that is running fine.
We have build Qt-5.2.1 and we are able to run Qt-application in device with linuxfb.
But our keypad and touch screen is not working..., whenever we are pressing any
keys or using the touch screen our application is hanging/crashing... and going to gnome.
Means it seems taking input on gnome not in our qt-application.
What could be the problem and how to sort out, any suggestion will be valuable.
We are trying to run application like following.
./myQtApp -platform linuxfb
Even we have tried with like following but there is no effect.
./myQtApp -platform linuxfb -plugin evdevkeyboard -plugin evdevmouse -plugin evdevtouch
If we are giving "eglfs" platform plugin support then getting segmentation fault.
Please guide us.
Thanks in advance
Sanjeet
Re: keypad and touchscreen is not working on embedded device with x11(gnome) support
Question: if you have an X11 based system, why do you use the linuxfb platform plugin instead of the XCB plugin?
Cheers,
_
1 Attachment(s)
Re: keypad and touchscreen is not working on embedded device with x11(gnome) support
Attachment 10626Hi anda_skoa,
After your suggestion, when we are trying to build Qt by following configuration option
configure -xplatform linux-arm-gnueabi-g++ -opensource -confirm-license -make libs -device imx6 -device-option CROSS_COMPILE=/u02/tools/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi- --prefix=/usr/local/Qt-5.3.1/Qt-ARM-TARGET -I/u02/tools/rootfs/usr/include -L/u02/tools/rootfs/usr/lib -lz -sysroot /u02/tools/rootfs -no-gcc-sysroot -no-cups -no-nis -no-dbus -no-glib -no-pch -no-accessibility -no-gtkstyle -qt-xcb -no-directfb -no-eglfs -opengl es2 -nomake examples -nomake tests -no-c++11 -qt-zlib -no-sql-sqlite -no-linuxfb -release -optimized-qmake
Its not building and giving following types of error like :
XCB_ATOM__WM_NAME undeclared
You can see error in attachment.
Earlier we were trying with following configuration option, then its building but keypad and touch is working in device...
./configure -opensource -confirm-license -make libs -device imx6 -device-option CROSS_COMPILE=/u02/tools/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi- --prefix=/usr/local/TT-Qt-5.3.1/QT-X11-ARM-TARGET -I/u02/tools/rootfs/usr/include -L/u02/tools/rootfs/usr/lib -lz -sysroot /u02/tools/rootfs -no-gcc-sysroot -no-cups -no-nis -no-dbus -no-glib -no-pch -no-accessibility -no-gtkstyle -no-xcb -eglfs -no-directfb -qpa eglfs -opengl es2 -nomake examples -nomake tests -no-c++11 -qt-zlib -no-sql-sqlite
Can you guide me what should be the correct configuration argument ?
Re: keypad and touchscreen is not working on embedded device with x11(gnome) support
1. You cannot use eglfs or linuxfb together with GNOME (so with X11) - there can be only one thing displayed on the framebuffer (fb) - either your gnome desktop or your application. I assume that when using linuxfb your application takes over the framebuffer, but gnome is stealing your touch events (as it do not know about your app at all).
2. To compile xcb plugin you need to have all the dependencies. Check the qtbase/src/plugins/platforms/xcb/README file. You have to have at least development package of libxcb, as XCB_ATOM_WM_NAME is defined in xproto.h
3. Another thing is that qtbase/mkspecs/devices/linux-imx6-g++/ files might need some modifications to support the X11. There is -DEGL_API_FB=1 which is good for eglfs but vivante has different libraries and different declarations in EGL/eglvivante.h for FB, DFB and X11.
Re: keypad and touchscreen is not working on embedded device with x11(gnome) support
Hi faldzip,
Thanks for replying, you cleared me many doubt.
But still i am not able to build Qt-5.2.1 with XCB,
That time we left this issue and we went through Qt-4.8.5.
But we need to build Qt-5.2.1 for our ARM(imx6) based embedded device.
Again we are trying but getting following issue :
"Could not determine the target architecture!
Turn on verbose messaging (-v) to see the final report.
The test for linking against libxcb failed!
You might need to install dependency packages for libxcb.
See src/plugins/platforms/xcb/README."
My configure option is :
./configure -opensource -confirm-license -make libs -device imx6 -device-option CROSS_COMPILE=/u02/tools/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi- -no-pch -no-opengl -no-icu -no-c++11 -compile-examples -qpa xcb -qt-xcb -xplatform mkspecs/devices/linux-imx6-g++ -no-linuxfb -no-directfb -sysroot /u02/tools/rootfs -no-gcc-sysroot -prefix /usr/local/imx6Qt5.2.1
I have checked this "src/plugins/platforms/xcb/README" file
Here it is mentioned that libxcb >= 1.5 and has also mentioned about Ubuntu 11.10 and Ubuntu 12.04
But nothing has mentioned about Ubuntu 10.04
My Host PC is Ubuntu 10.04 and we trying to cross-compiled for arm-imx6.
Earlier in my rootfs this library libxcb.so.1.0.0 was present.
So, i have newly cross-compiled libxcb-1.10 and their dependent libraries successfully,
with this we got this version of libxcb.so.1.1.0
We kept all new xcb library in rootfs and then again tried to build Qt,
But we are getting same issue.
Can you help anybody... what is the issue and and how to resolve it ?
Re: keypad and touchscreen is not working on embedded device with x11(gnome) support
Your host pc's os has nothing to do with this. How did you obtain the rootfs for your device? What OS do you have on your device? For example for wandboard (i.MX6 based) you can download Ubuntu 12.04 image, and you have to install all the dependencies on this target system. Then you can mount this target os image on your host pc and set it as rootfs for cross compilation. So you can probably perform these steps:
1. Run the device.
2. Install all the dependencies on it (if it is Ubuntu then it is quite simple, as you have all the packages mentioned in .../xcb/README file)
3. Mount the device's file system somewhere on your host PC (for example: you can extract the image or mount if through the network with nfs)
4. Use this newly mounted rootfs for cross-compiling.
Re: keypad and touchscreen is not working on embedded device with x11(gnome) support
Hi faldzip,
Yeah, it is correct, host pc's os has nothing to do.
We are building rootfs through LTIB, and for this we are using "L3.0.35_4.1.0_130816_source.tar.gz"
version of ltib source.
With this we are getting rootfs and cross-compiler and same using to build Qt-5.2.1.
And we are having imx6-soloLite board based device.
So, with the same rootfs and all we are able to build Qt-4.8.5 and it is running well.
But when we are trying to build Qt-5.2.1 with same rootfs then we are getting above issue.
Re: keypad and touchscreen is not working on embedded device with x11(gnome) support
I do not have any experience with LTIB but (if I am not mistaken) it is now deprecated in favor of Yocto. In Yocto you have now recipes for Qt 5, so you can just build your own linux image containing latest Qt 5 libraries.
Re: keypad and touchscreen is not working on embedded device with x11(gnome) support
Hi faldzip,
You are correct LTIB is now deprecating in favor of yocto.
We have build successfully Qt-5 through yocto, But with yocto higher version of kernel is building.
And also with yocto higher version of compiler(gcc-4.8.1) is using.
That's why you are not going through yocto, and using LTIB.
Re: keypad and touchscreen is not working on embedded device with x11(gnome) support
But you are not using this because you want to use the Yocto-built Qt5 libraries with LTIB-built image? Or the project requirements are to use the old kernel and old compiler? If the former, then built the whole platform image with Yocto together with Qt5. If latter then you need to build-in the Qt5 dependencies into this platform image using LTIB, would be my guess. But you need to ask someone who knows how to use LTIB.
Re: keypad and touchscreen is not working on embedded device with x11(gnome) support
Hi,
I am not getting any clue....
if anyone is aware then can you guide me ?