Libinput-touch screen detection

Peter Hutterer peter.hutterer at who-t.net
Thu Oct 3 11:50:50 UTC 2019


On Thu, Oct 03, 2019 at 10:52:41AM +0000, sanjay anvekar wrote:
>  Hi Peter,    I couldn't get reason for missing ID_INPUT_TOUCHSCREEN , my udev rule looks as below.
> SUBSYSTEM=="input" KERNEL=="event[0-9]" ENV{ID_INPUT_TOUCHSCREEN}=="1"  ENV{ID_SEAT}="seat1" SYMLINK+="/dev/input/event0" 

you assign seat1 here but libinput by default uses seat0. so the device will
simply be ignored unless you tell libinput to listen to events from seat1.
libinput debug-events --seat seat1 should show the events, and likewise your
compositor provided it listens to the right seat.

> 
> I don't have libinput record tool, instead tried with evtest and I see BTN_TOUCH, below is capture from evtest
> ~# evtestNo device specified, trying to scan all of /dev/input/event*Available devices:/dev/input/event0:      touchscreen/dev/input/event1:      Dell Dell USB Optical MouseSelect the device event number [0-1]: 0Input driver version is 1.0.1Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0Input device name: "touchscreen"Supported events:  Event type 0 (EV_SYN)  Event type 1 (EV_KEY)    Event code 330 (BTN_TOUCH)  Event type 3 (EV_ABS)    Event code 48 (ABS_MT_TOUCH_MAJOR)      Value      0      Min        0      Max      600    Event code 53 (ABS_MT_POSITION_X)      Value      0      Min      168      Max     3908    Event code 54 (ABS_MT_POSITION_Y)      Value      0      Min      195      Max     4045Properties:Testing ... (interrupt to exit)Event: time 1569995436.407176, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1Event: time 1569995436.407176, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 96Event: time 1569995436.407176, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 630Event: time 1569995436.407176, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 693Event: time 1569995436.407176, ++++++++++++++ SYN_MT_REPORT ++++++++++++Event: time 1569995436.407176, -------------- SYN_REPORT ------------Event: time 1569995436.413546, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 94Event: time 1569995436.413546, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 640Event: time 1569995436.413546, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 705Event: time 1569995436.476318, ++++++++++++++ SYN_MT_REPORT ++++++++++++Event: time 1569995436.476318, -------------- SYN_REPORT ------------Event: time 1569995436.482637, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 85Event: time 1569995436.482637, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 645Event: time 1569995436.482637, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 696Event: time 1569995436.482637, ++++++++++++++ SYN_MT_REPORT ++++++++++++Event: time 1569995436.543353, -------------- SYN_REPORT ------------Event: time 1569995436.549449, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 89Event: time 1569995436.549449, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 638Event: time 1569995436.549449, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 697Event: time 1569995436.549449, ++++++++++++++ SYN_MT_REPORT ++++++++++++Event: time 1569995436.549449, -------------- SYN_REPORT ------------Event: time 1569995436.555527, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 102Event: time 1569995436.555527, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 638Event: time 1569995436.555527, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 709Event: time 1569995436.555527, ++++++++++++++ SYN_MT_REPORT ++++++++++++Event: time 1569995436.555527, -------------- SYN_REPORT ------------Event: time 1569995436.752071, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0Event: time 1569995436.752071, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 0Event: time 1569995436.752071, ++++++++++++++ SYN_MT_REPORT ++++++++++++Event: time 1569995436.752071, -------------- SYN_REPORT ------------

impossible to read, sorry.

Cheers,
   Peter

> 
> Does this indicate that Kernel driver is working fine and issue is with some configuration ? Please let me know.
> Thanks & Best Regards,Sanjay
> 
>     On Wednesday, 2 October, 2019, 07:16:32 pm GMT+1, Peter Hutterer <peter.hutterer at who-t.net> wrote:  
>  
>  On Wed, Oct 02, 2019 at 04:40:24PM +0000, sanjay anvekar wrote:
> >  Hi Peter,   Thank you for your response. I tried changing udev properties but it didn't help. Here is output from udevadm command.udevadm info /dev/input/event0P: /devices/soc0/soc/2100000.aips-bus/21a4000.i2c/i2c-1/1-0048/input/input0/event0N: input/event0S: input/by-path/platform-21a4000.i2c-eventE: DEVLINKS=/dev/input/by-path/platform-21a4000.i2c-eventE: DEVNAME=/dev/input/event0E: DEVPATH=/devices/soc0/soc/2100000.aips-bus/21a4000.i2c/i2c-1/1-0048/input/input0/event0E: ID_INPUT=1E: ID_PATH=platform-21a4000.i2cE: ID_PATH_TAG=platform-21a4000_i2cE: MAJOR=13E: MINOR=64E: SUBSYSTEM=inputE: USEC_INITIALIZED=2341962
> > 
> > Also tried with 'libinput-debug-events' and following is outputlibinput-debug-events --device /dev/input/event0 --verboseinput device 'touchscreen', /dev/input/event0 not tagged as input devicefailed to create input device '/dev/input/event0'.Failed to initialized device /dev/input/event0
> > I tested this input device with 'evetest' application and it works, but doesn't work with libinput.
> > How do I debug further and conclude that it is Kernel driver issue ? Please let me know.
> > Thanks & Best Regards,Sanjay
> 
> fwiw, the plain text your email client sends appears to be ... broken.
> 
> you're missing ID_INPUT_TOUCHSCREEN which is probably you're missing
> BTN_TOUCH on the evdev node. run libinput record and that'll tell you the
> bits set for the device - for a touchscreen you need ABS_X/Y and BTN_TOUCH
> as the minimum.
> 
> look for the udev-builtin-input_id.c file in the systemd git repo, that will
> tell you how the various ID_INPUT_FOO tags get applied. Then you need to
> make sure the kernel exports those.
> 
> Cheers,
>   Peter
> 
> > 
> > 
> > 
> > 
> >    On Wednesday, 2 October, 2019, 02:50:39 pm GMT+1, Peter Hutterer <peter.hutterer at who-t.net> wrote:  
>> >  On Tue, Oct 01, 2019 at 04:08:17PM +0000, sanjay anvekar wrote:
> > > Hi All,   I am new to Wayland. I am using Weston 1.9.0 on imx6x board with
> > > touchscreen display of resolution 1024x768. I am seeing touchscreen as
> > > /dev/input/event0 device and it is working. I confirmed functioning of
> > > touchscreen using "cat /dev/input/event0" command. Unfortunately, I don't
> > > see touchscreen is listed by libinput application i.e.
> > > 'libinput-list-devices'. If I connect USB mouse then I see mouse is listed
> > > by 'libinput-list-devices' application, but not touchscreen. I am running
> > > Qt application and it is not able to detect touch inputs. Please let me
> > > know your inputs to resolve this problem.
> > 
> > most likely the udev property ID_INPUT and/or ID_INPUT_TOUCHSCREEN is
> > missing for this device, libinput debug-events --verbose should print
> > *something* at least for the device.
> > 
> > If the property is missing though that means that it doesn't export the
> > correct evdev bits to be picked up by the udev builtin, so most likely the
> > kernel driver needs to be fixed.
> > 
> > Cheers,
> >   Peter
>>   


More information about the wayland-devel mailing list