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