Qt-embedded touch screen can't work on IMX6 platform
Solved
Mobile and Embedded
-
Hi,
I build Yocto with QT as below:
DISTRO=fsl-imx-fb MACHINE=imx6sllevk bitbake fsl-image-qt5-validation-imx
Burn this image in IMX6SLL board, and run below QT test app, but touch screen have no any response:
root@imx6sllevk:~# /usr/share/examples/widgets/widgets/calculator/calculator
The QT env settings are:
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0 export QTDIR=/usr/lib export QT_QPA_FONTDIR=$QTDIR/fonts export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/platforms export QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/input/event1 export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event1
The touch event does work when touch in console command:
root@(none):/# cat /dev/input/event1 | hexdump 0000000 a265 4eff a510 0000 0001 0145 0001 0000 0000010 a265 4eff a510 0000 0001 014a 0001 0000 0000020 a265 4eff a510 0000 0003 0039 0000 0000
How can I debug this issue "why touch can't work in QT app" ?
When add QT debug message :
export QT_LOGGING_RULES=qt.qpa.input=true
Have touch message show:
root@(none):/# /usr/share/examples/widgets/widgets/calculator/calculator QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' qt.qpa.input: evdevkeyboard: Using device discovery qt.qpa.input: udev device discovery for type QFlags<QDeviceDiscovery::QDeviceType>(Device_Keyboard) Failed to scan devices qt.qpa.input: evdevmouse: Using device discovery qt.qpa.input: udev device discovery for type QFlags<QDeviceDiscovery::QDeviceType>(Device_Mouse|Device_Touchpad) Failed to scan devices qt.qpa.input: evdevtouch: Adding device at /dev/input/event1 qt.qpa.input: evdevtouch: Adding device at /dev/input/event1 qt.qpa.input: evdevtouch: Using device /dev/input/event1 qt.qpa.input: evdevtouch: /dev/input/event1: Protocol type A (multi), filtered=no qt.qpa.input: evdevtouch: /dev/input/event1: min X: 0 max X: 1447 qt.qpa.input: evdevtouch: /dev/input/event1: min Y: 0 max Y: 1071 qt.qpa.input: evdevtouch: /dev/input/event1: min pressure: 0 max pressure: 0 qt.qpa.input: evdevtouch: /dev/input/event1: device name: cyttsp5_mt qt.qpa.input: evdevtouch: Using device /dev/input/event1 qt.qpa.input: evdevtouch: /dev/input/event1: Protocol type A (multi), filtered=no qt.qpa.input: evdevtouch: /dev/input/event1: min X: 0 max X: 1447 qt.qpa.input: evdevtouch: /dev/input/event1: min Y: 0 max Y: 1071 qt.qpa.input: evdevtouch: /dev/input/event1: min pressure: 0 max pressure: 0 qt.qpa.input: evdevtouch: /dev/input/event1: device name: cyttsp5_mt qt.qpa.input: evdevtouch: Updating QInputDeviceManager device count: 1 touch devices, 0 pending handler(s) qt.qpa.input: evdevtouch: Updating QInputDeviceManager device count: 1 touch devices, 0 pending handler(s)