On Wed, Jan 7, 2015 at 10:40 PM, Gavin Lambert <[email protected]> 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 [email protected]
> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to