Created attachment 113626 [details] weston execution Running Weston 1.7 on Libinput 0.10 on a Freescale Sabre Smart iMX6.Q board, the board touchscreen does not work with "failed to create input device '/dev/input/event0'", apparently coming from libinput. Attaching the log of weston run and evemu-describe. Also please note that evemu-record perfectly works with the touchscreen.
Created attachment 113627 [details] evemu-describe on touchscreen
Further investigation, I found out the failure happens when checking for mtdev slots. if (device->mtdev->caps.slot.minimum < 0 || num_slots <= 0) caps.slot.minimum and num_slots are both 0. Running evemu-record with multitouch events, I get this for the first finger: E: 9.378526 0003 0039 0000 # EV_ABS / ABS_MT_TRACKING_ID 0 E: 9.378526 0003 0030 0001 # EV_ABS / ABS_MT_TOUCH_MAJOR 1 E: 9.378526 0003 0035 12176 # EV_ABS / ABS_MT_POSITION_X 12176 E: 9.378526 0003 0036 4416 # EV_ABS / ABS_MT_POSITION_Y 4416 E: 9.378526 0000 0002 0000 # ++++++++++++ SYN_MT_REPORT (0) ++++++++++ E: 9.378526 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- And this for the second finger: E: 40.668868 0003 0039 0001 # EV_ABS / ABS_MT_TRACKING_ID 1 E: 40.668868 0003 0030 0001 # EV_ABS / ABS_MT_TOUCH_MAJOR 1 E: 40.668868 0003 0035 10944 # EV_ABS / ABS_MT_POSITION_X 10944 E: 40.668868 0003 0036 5824 # EV_ABS / ABS_MT_POSITION_Y 5824 E: 40.668868 0000 0002 0000 # ++++++++++++ SYN_MT_REPORT (0) ++++++++++ E: 40.668868 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- mtdev-test: # mtdev-test /dev/input/event0 supported mt events: ABS_MT_TOUCH_MAJOR ABS_MT_WIDTH_MAJOR ABS_MT_POSITION_X ABS_MT_POSITION_Y ABS_MT_TRACKING_ID 014bacc41bed 00 3 0030 1 014bacc41bed 00 3 0035 12176 014bacc41bed 00 3 0036 13632 014bacc41bed 00 3 0039 0 014bacc41bed 00 0 0000 0 014bacc41cea 01 3 002f 1 014bacc41cea 01 3 0030 1 014bacc41cea 01 3 0035 10080 014bacc41cea 01 3 0036 7488 014bacc41cea 01 3 0039 1 014bacc41cea 01 0 0000 0 The two events are with two different fingers.
Created attachment 113742 [details] [review] Patch for libinput This patch makes the touchscreen work - it has been done after a look on what xf86-input-evdev does.
that's weird, it looks like this device is sort-of tracking a finger but not really. does the tracking ID actually identify the finger here? if so, this device should be swiftched to protocol B in the kernel. that aside, the maximum comparison is a bug but the patch could cause out-of-bounds array indices. mtdev allocates the number of slots dynamically (up to 32 iirc) so on a device that supports more than 2 fingers we need more than this. Patch is on the list now, please give it a test. http://lists.freedesktop.org/archives/wayland-devel/2015-February/020244.html
The tracking ID indeed identifies the finger. +1 on the patch for me.
fixed with this commit, but I'm CCing benjamin for a comment on the kernel issue commit bb78357f0479d3d44bb5896a30591e7f32fae1a1 Author: Peter Hutterer <peter.hutterer@who-t.net> Date: Wed Feb 25 16:04:04 2015 +1000 evdev: force-assign 10 slots to mtdev devices
Sorry for the wait. Can you post your dmesg of your system? I can not find any matching driver given your evemu recordings and I wonder if you are using a plain vanilla kernel or a modified one with a custom egalax touchscreen driver (or maybe just an old one).
Closing as fixed as per comment #6. The rest has been in needinfo since April for the kernel issue, so can't be that important.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.