Re: [eGalax] no click events with touchscreen

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jan 7, 2015 at 10:40 PM, Gavin Lambert <gavinl@xxxxxxxxxxxxxx> wrote:
> Hi,
>
> I have a new eGalax touchscreen (came with driver cd 5.1.0, if that helps).  I'm trying to use it from a Raspberry Pi, so I can't use the prebuilt drivers on that CD.  I've found the ARM-specific vendor drivers but I haven't installed them yet as I remember this working without them on an older model of eGalax touchscreen.
>
> Even without those, it still seems to autodetect the touchscreen and it loads the hid_multitouch driver, and within X the pointer moves according to touches as expected.  However it does not perform any "click" action when the screen is touched.  (I'm ok with it behaving like a single-touch mouse -- I just want it to actually do something when touched.)
>
> Is this a known issue, or something that can be fixed, or just a configuration error?  I've included some diagnostic output from various tools below in the hope that it may be useful to identify and/or fix the issue; please let me know if you need more information.

No it's not a known issue. More comments later.

>
> Note that at present I do not have anything specific in xorg.conf or xorg.conf.d related to the touchscreen; this did not seem to be necessary with the older hardware.
>
> Regards,
> Gavin Lambert
>
>
> # uname -rm
> 3.12.34+ armv6l
>
> # lsmod
> ...
> hid_multitouch         9095  0
> ...
> (usbtouchscreen does exist but is not loaded)
>
> # lsusb
> Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
> Bus 001 Device 004: ID 046d:c315 Logitech, Inc. Classic New Touch Keyboard
> Bus 001 Device 005: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
>
> # lsusb -vv
> ...
> Bus 001 Device 005: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               1.10
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   idVendor           0x0eef D-WAV Scientific Co., Ltd
>   idProduct          0x0001 eGalax TouchScreen
>   bcdDevice            1.00
>   iManufacturer           1
>   iProduct                2
>   iSerial                 0
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           59
>     bNumInterfaces          1
>     bConfigurationValue     1
>     iConfiguration          1
>     bmAttributes         0xa0
>       (Bus Powered)
>       Remote Wakeup
>     MaxPower              100mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         3 Human Interface Device
>       bInterfaceSubClass      1 Boot Interface Subclass
>       bInterfaceProtocol      2 Mouse
>       iInterface              0
>         HID Device Descriptor:
>           bLength                 9
>           bDescriptorType        33
>           bcdHID               2.10
>           bCountryCode            0 Not supported
>           bNumDescriptors         1
>           bDescriptorType        34 Report
>           wDescriptorLength     341
>          Report Descriptors:
>            ** UNAVAILABLE **
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               3
>         ** UNRECOGNIZED:  19 ff 42 49 53 54 00 01 02 03 ff 00 00 00 00 00 01 04 b8 0b 02 05 b8 0b 00
>
> # cat /proc/bus/input/devices
> ...
> I: Bus=0003 Vendor=0eef Product=0001 Version=0210
> N: Name="eGalax Inc. USB TouchController Pen"
> P: Phys=usb-bcm2708_usb-1.5/input0
> S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0/input/input1
> U: Uniq=
> H: Handlers=mouse0 event1
> B: PROP=0
> B: EV=1b
> B: KEY=c01 0 0 0 0 0 0 0 0 0 0
> B: ABS=3
> B: MSC=10
>
> I: Bus=0003 Vendor=0eef Product=0001 Version=0210
> N: Name="eGalax Inc. USB TouchController"
> P: Phys=usb-bcm2708_usb-1.5/input0
> S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0/input/input2
> U: Uniq=
> H: Handlers=mouse1 event2
> B: PROP=2
> B: EV=b
> B: KEY=400 0 0 0 0 0 0 0 0 0 0
> B: ABS=a608000 3
>
> # xinput
> ⎡ Virtual core pointer                          id=2    [master pointer  (3)]
> ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
> ⎜   ↳ eGalax Inc. USB TouchController           id=8    [slave  pointer  (2)]
> ⎜   ↳ eGalax Inc. USB TouchController Pen       id=7    [slave  pointer  (2)]
> ⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
>     ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
>     ↳ Logitech Logitech USB Keyboard            id=6    [slave  keyboard (3)]
>
> # evtest /dev/input/event2
> Input driver version is 1.0.1
> Input device ID: bus 0x3 vendor 0xeef product 0x1 version 0x210
> Input device name: "eGalax Inc. USB TouchController"
> Supported events:
>   Event type 0 (EV_SYN)
>   Event type 1 (EV_KEY)
>     Event code 330 (BTN_TOUCH)
>   Event type 3 (EV_ABS)
>     Event code 0 (ABS_X)
>       Value   2866
>       Min        0
>       Max     4095
>     Event code 1 (ABS_Y)
>       Value   1832
>       Min        0
>       Max     4095
>     Event code 47 (ABS_MT_SLOT)
>       Value      0
>       Min        0
>       Max        7
>    Event code 53 (ABS_MT_POSITION_X)
>       Value      0
>       Min        0
>       Max     4095
>     Event code 54 (ABS_MT_POSITION_Y)
>       Value      0
>       Min        0
>       Max     4095
>     Event code 57 (ABS_MT_TRACKING_ID)
>       Value      0
>       Min        0
>       Max    65535
>     Event code 59 (?)
>       Value      0
>       Min        0
>       Max        1
> Properties:
>   Property type 1 (INPUT_PROP_DIRECT)
> Testing ... (interrupt to exit)
> Event: time 1420680910.586895, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 2056
> Event: time 1420680910.586895, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1992
> Event: time 1420680910.586895, type 3 (EV_ABS), code 59 (?), value 0
> Event: time 1420680910.586895, type 3 (EV_ABS), code 0 (ABS_X), value 2056
> Event: time 1420680910.586895, type 3 (EV_ABS), code 1 (ABS_Y), value 1992
> Event: time 1420680910.586895, -------------- SYN_REPORT ------------
> Event: time 1420680910.592882, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 2054
> Event: time 1420680910.592882, type 3 (EV_ABS), code 0 (ABS_X), value 2054
> Event: time 1420680910.592882, -------------- SYN_REPORT ------------
> Event: time 1420680910.596879, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 2052
> Event: time 1420680910.596879, type 3 (EV_ABS), code 0 (ABS_X), value 2052
> Event: time 1420680910.596879, -------------- SYN_REPORT ------------
> Event: time 1420680910.602928, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 2050
> Event: time 1420680910.602928, type 3 (EV_ABS), code 0 (ABS_X), value 2050
> Event: time 1420680910.602928, -------------- SYN_REPORT ------------
> Event: time 1420680910.608902, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 2048
> Event: time 1420680910.608902, type 3 (EV_ABS), code 0 (ABS_X), value 2048
> Event: time 1420680910.608902, -------------- SYN_REPORT ------------
> Event: time 1420680910.662871, type 3 (EV_ABS), code 59 (?), value 1
> Event: time 1420680910.662871, -------------- SYN_REPORT ------------

So here, everything seems fine except for the tracking ID and the
BTN_TOUCH. The kernel does not sends the touch begin and touch end
information, thus the device is not working :(

Can you compile and install hid-recorder from
http://bentiss.github.io/hid-replay-docs/ ?
I would need a hid-record of your touchscreen so I can figure out why
the kernel does not handle it properly.

Cheers,
Benjamin

>
> # evtest /dev/input/event1
> Input driver version is 1.0.1
> Input device ID: bus 0x3 vendor 0xeef product 0x1 version 0x210
> Input device name: "eGalax Inc. USB TouchController Pen"
> Supported events:
>   Event type 0 (EV_SYN)
>   Event type 1 (EV_KEY)
>     Event code 320 (BTN_TOOL_PEN)
>     Event code 330 (BTN_TOUCH)
>     Event code 331 (BTN_STYLUS)
>   Event type 3 (EV_ABS)
>     Event code 0 (ABS_X)
>       Value      0
>       Min        0
>       Max     4095
>     Event code 1 (ABS_Y)
>       Value      0
>       Min        0
>       Max     4095
>   Event type 4 (EV_MSC)
>     Event code 4 (MSC_SCAN)
> Properties:
> Testing ... (interrupt to exit)
>
> The above was the output from a single touch at approximately the centre of the screen, in each test.  The "Pen" device does not seem to be generating any events on touch (but then I don't have a magic touch pen, just a finger or passive stylus; I'm not sure if that makes a difference).
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux