daedric / cntouch_driver

CNTouch driver for linux.
GNU General Public License v2.0
0 stars 0 forks source link

Nice work, trying it out, but... #1

Open nhuillard opened 9 years ago

nhuillard commented 9 years ago

I'm trying this driver with a brand new Iris, back from LDLC (the first one had a problem with the battery, and appears to have had problems with the touchpad too, which prevented any further testing). I compiled and insmod the kernel module, and had the driver work for a few seconds (Debian Jessie with Gnome), until the pointer stopped just before reaching the upper left corner of the screen (it should have openned the "Activities" screen. I plugged-in an USB mouse, which worked right away, but the touchpad didn't work since then (gdm3 stop/start, rmmod/insmod, I even shutdown)... Are there any caveats while using it (as in "not compatible with an USB mouse" or "don't load usbmouse kernel driver" or anything else ?) I tried last summer to contact the Linux multitouch team, but was not able to provide a good USB trace. I don't know how your work is related to theirs, and maybe you have the information they need to make the existing multitouch driver work ? See http://lii-enac.fr/en/architecture/linux-input/multitouch-howto.html#force

daedric commented 9 years ago

Hi,

I'm sorry to ear that it does not completely work for you... Apart from the fact that the touchpad is shitty I don't have any problem on Linux Mint. Can you give me your kernel version ? (uname -a) and the output of a dmesg when the driver stops working ?

About the multitouch team, no I did not. The device appear not to be a HID device so no luck on this side. To get the driver working, I simply looked at the output when I used the device and mapped accordingly the device events to the kernel ones. I can use my driver with an usb mouse without any problems, they can't conflict because it is not the same device.

Let's first see what's the output of your dmesg and kernel version and from there we will see what's possible :)

nhuillard commented 9 years ago

Hello,

Le mardi 03 mars 2015 à 11:11 -0800, Thomas Sanchez a écrit :

I'm sorry to ear that it does not completely work for you... Apart from the fact that the touchpad is shitty I don't have any problem on Linux Mint. Can you give me your kernel version ? (uname -a) and the output of a dmesg when the driver stops working ?

I'm not in front of the computer as of now. From what I recall : kernel 3.16.7 from Debian Jessie, no dmesg output at all (except when I plug/unplug the USB mouse and other normal messages). Last time it stopped working, I was clearly trying to find the edge of the sensitive area, on the right : maybe this is the cause, and the edge is not at the exact same coordinates on every device ? Is there a way to debug the output of the device, or increase the verbosity of the driver ?

About the multitouch team, no I did not. The device appear not to be a HID device so no luck on this side. To get the driver working, I simply looked at the output when I used the device and mapped accordingly the device events to the kernel ones. I can use my driver with an usb mouse without any problems, they can't conflict because it is not the same device.

OK. Great.

Let's first see what's the output of your dmesg and kernel version and from there we will see what's possible :)

I'll check that later. If you can also provide a way to increase the verbosity of the driver, or lead me to a USB debugging tool, it would be great.

Nicolas Huillard nicolas@huillard.net Fixe : +33 9 52 31 06 10 Mobile : +33 6 50 27 69 08

http://www.350.org/

nhuillard commented 9 years ago

Here is the first traces I made, along with notes.

root@iris:~# uname -a
    Linux iris 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt4-3 (2015-02-03) x86_64 GNU/Linux
Xorg.0.log :
    [   102.231] 
    X.Org X Server 1.16.4
    Release Date: 2014-12-20
    [   102.231] X Protocol Version 11, Revision 0
    [   102.231] Build Operating System: Linux 3.16.0-4-amd64 x86_64 Debian
    [   102.231] Current Operating System: Linux iris 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt4-3 (2015-02-03) x86_64
    ...
root@iris:~# insmod cntouch_driver-master/cntouch.ko
    Mar  9 20:24:45 iris kernel: [   63.763869] input: CNTouch as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/input/input15
    Mar  9 20:24:45 iris kernel: [   63.764103] usbcore: registered new interface driver CNTouch
root@iris:~# lsmod | grep cntouch
    cntouch                12588  0 
    usbcore               195340  8 cntouch,ath3k,btusb,uvcvideo,ehci_hcd,ehci_pci,usbhid,xhci_hcd
root@iris:~# /etc/init.d/gdm3 start
root@iris:~# ll /dev/input/by-id/*
    lrwxrwxrwx 1 root root 10 mars   9 20:23 /dev/input/by-id/usb-CNTouch_Touch_Device_V1.03-event-if02 -> ../event10
    lrwxrwxrwx 1 root root 10 mars   9 20:24 /dev/input/by-id/usb-CNTouch_Touch_Device_V1.03-event-mouse -> ../event15
    lrwxrwxrwx 1 root root  9 mars   9 20:24 /dev/input/by-id/usb-CNTouch_Touch_Device_V1.03-mouse -> ../mouse0
    lrwxrwxrwx 1 root root  9 mars   9 20:23 /dev/input/by-id/usb-SunplusIT_Inc_USB2.0_Camera-event-if00 -> ../event9
root@iris:~# ll /dev/input/mouse* /dev/input/event*
    crw-rw---- 1 root input 13, 74 mars   9 20:23 /dev/input/event10
    crw-rw---- 1 root input 13, 79 mars   9 20:24 /dev/input/event15
    crw-rw---- 1 root input 13, 73 mars   9 20:23 /dev/input/event9
    crw-rw---- 1 root input 13, 32 mars   9 20:24 /dev/input/mouse0
    ...
Xorg.0.log :
    [   102.344] (II) config/udev: Adding input device CNTouch (/dev/input/event15)
    [   102.344] (**) CNTouch: Applying InputClass "evdev pointer catchall"
    [   102.344] (II) Using input driver 'evdev' for 'CNTouch'
    [   102.344] (**) CNTouch: always reports core events
    [   102.344] (**) evdev: CNTouch: Device: "/dev/input/event15"
    [   102.344] (--) evdev: CNTouch: Vendor 0x294e Product 0x1001
    [   102.344] (--) evdev: CNTouch: Found 3 mouse buttons
    [   102.344] (--) evdev: CNTouch: Found scroll wheel(s)
    [   102.344] (--) evdev: CNTouch: Found relative axes
    [   102.344] (--) evdev: CNTouch: Found x and y relative axes
    [   102.344] (II) evdev: CNTouch: Configuring as mouse
    [   102.344] (II) evdev: CNTouch: Adding scrollwheel support
    [   102.344] (**) evdev: CNTouch: YAxisMapping: buttons 4 and 5
    [   102.344] (**) evdev: CNTouch: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
    [   102.344] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/input/input15/event15"
    [   102.345] (II) XINPUT: Adding extended input device "CNTouch" (type: MOUSE, id 11)
    [   102.345] (II) evdev: CNTouch: initialized for relative axes.
    [   102.345] (**) CNTouch: (accel) keeping acceleration scheme 1
    [   102.345] (**) CNTouch: (accel) acceleration profile 0
    [   102.345] (**) CNTouch: (accel) acceleration factor: 2.000
    [   102.345] (**) CNTouch: (accel) acceleration threshold: 4
    [   102.345] (II) config/udev: Adding input device CNTouch (/dev/input/mouse0)
    [   102.345] (II) No input driver specified, ignoring this device.
    [   102.345] (II) This device may have been added with another device file.
    [   102.345] (II) config/udev: Adding input device CNTouch Touch Device (/dev/input/event10)
    [   102.345] (II) No input driver specified, ignoring this device.
    [   102.345] (II) This device may have been added with another device file.

* works at GDM login screen (move, clic)
* stops working when double-finger tap (right clic ?)

root@iris:~# rmmod cntouch 
syslog :
    Mar  9 20:31:46 iris kernel: [  485.435555] usbcore: deregistering interface driver CNTouch
    Mar  9 20:31:46 iris gdm-Xorg-:0[1429]: (II) config/udev: removing device CNTouch
    Mar  9 20:31:46 iris gdm-Xorg-:0[1429]: (II) evdev: CNTouch: Close
    Mar  9 20:31:46 iris gdm-Xorg-:0[1429]: (II) UnloadModule: "evdev"
Xorg.0.log :
    [   485.247] (II) config/udev: removing device CNTouch
    [   485.258] (II) evdev: CNTouch: Close
    [   485.259] (II) UnloadModule: "evdev"
root@iris:~# ll /dev/input/by-id/*
    lrwxrwxrwx 1 root root 10 mars   9 20:23 /dev/input/by-id/usb-CNTouch_Touch_Device_V1.03-event-if02 -> ../event10
    lrwxrwxrwx 1 root root  9 mars   9 20:23 /dev/input/by-id/usb-SunplusIT_Inc_USB2.0_Camera-event-if00 -> ../event9
root@iris:~# ll /dev/input/mouse* /dev/input/event*
    crw-rw---- 1 root input 13, 74 mars   9 20:23 /dev/input/event10
    ...
root@iris:~# insmod cntouch_driver-master/cntouch.ko 
syslog :
    Mar  9 20:34:07 iris kernel: [  625.847260] input: CNTouch as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/input/input16
    Mar  9 20:34:07 iris kernel: [  625.847440] usbcore: registered new interface driver CNTouch
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (II) config/udev: Adding input device CNTouch (/dev/input/event15)
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (**) CNTouch: Applying InputClass "evdev pointer catchall"
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (II) Using input driver 'evdev' for 'CNTouch'
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (**) CNTouch: always reports core events
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (**) evdev: CNTouch: Device: "/dev/input/event15"
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (--) evdev: CNTouch: Vendor 0x294e Product 0x1001
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (--) evdev: CNTouch: Found 3 mouse buttons
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (--) evdev: CNTouch: Found scroll wheel(s)
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (--) evdev: CNTouch: Found relative axes
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (--) evdev: CNTouch: Found x and y relative axes
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (II) evdev: CNTouch: Configuring as mouse
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (II) evdev: CNTouch: Adding scrollwheel support
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (**) evdev: CNTouch: YAxisMapping: buttons 4 and 5
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (**) evdev: CNTouch: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/input/input16/event15"
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (II) XINPUT: Adding extended input device "CNTouch" (type: MOUSE, id 11)
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (II) evdev: CNTouch: initialized for relative axes.
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (**) CNTouch: (accel) keeping acceleration scheme 1
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (**) CNTouch: (accel) acceleration profile 0
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (**) CNTouch: (accel) acceleration factor: 2.000
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (**) CNTouch: (accel) acceleration threshold: 4
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (II) config/udev: Adding input device CNTouch (/dev/input/mouse0)
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (II) No input driver specified, ignoring this device.
    Mar  9 20:34:07 iris gdm-Xorg-:0[1429]: (II) This device may have been added with another device file.
Xorg.0.log :
[   625.589] (II) config/udev: Adding input device CNTouch (/dev/input/event15)
[   625.589] (**) CNTouch: Applying InputClass "evdev pointer catchall"
[   625.589] (II) Using input driver 'evdev' for 'CNTouch'
[   625.589] (**) CNTouch: always reports core events
[   625.589] (**) evdev: CNTouch: Device: "/dev/input/event15"
[   625.589] (--) evdev: CNTouch: Vendor 0x294e Product 0x1001
[   625.589] (--) evdev: CNTouch: Found 3 mouse buttons
[   625.589] (--) evdev: CNTouch: Found scroll wheel(s)
[   625.589] (--) evdev: CNTouch: Found relative axes
[   625.589] (--) evdev: CNTouch: Found x and y relative axes
[   625.589] (II) evdev: CNTouch: Configuring as mouse
[   625.589] (II) evdev: CNTouch: Adding scrollwheel support
[   625.589] (**) evdev: CNTouch: YAxisMapping: buttons 4 and 5
[   625.589] (**) evdev: CNTouch: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[   625.589] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/input/input16/event15"
[   625.589] (II) XINPUT: Adding extended input device "CNTouch" (type: MOUSE, id 11)
[   625.589] (II) evdev: CNTouch: initialized for relative axes.
[   625.590] (**) CNTouch: (accel) keeping acceleration scheme 1
[   625.590] (**) CNTouch: (accel) acceleration profile 0
[   625.590] (**) CNTouch: (accel) acceleration factor: 2.000
[   625.590] (**) CNTouch: (accel) acceleration threshold: 4
[   625.593] (II) config/udev: Adding input device CNTouch (/dev/input/mouse0)
[   625.593] (II) No input driver specified, ignoring this device.
[   625.593] (II) This device may have been added with another device file.
root@iris:~# ll /dev/input/by-id/* /dev/input/mouse* /dev/input/event*
    lrwxrwxrwx 1 root root      10 mars   9 20:23 /dev/input/by-id/usb-CNTouch_Touch_Device_V1.03-event-if02 -> ../event10
    lrwxrwxrwx 1 root root      10 mars   9 20:34 /dev/input/by-id/usb-CNTouch_Touch_Device_V1.03-event-mouse -> ../event15
    lrwxrwxrwx 1 root root       9 mars   9 20:34 /dev/input/by-id/usb-CNTouch_Touch_Device_V1.03-mouse -> ../mouse0
    lrwxrwxrwx 1 root root       9 mars   9 20:23 /dev/input/by-id/usb-SunplusIT_Inc_USB2.0_Camera-event-if00 -> ../event9
    crw-rw---- 1 root input 13, 74 mars   9 20:23 /dev/input/event10
    crw-rw---- 1 root input 13, 79 mars   9 20:34 /dev/input/event15
    crw-rw---- 1 root input 13, 73 mars   9 20:23 /dev/input/event9
    crw-rw---- 1 root input 13, 32 mars   9 20:34 /dev/input/mouse0
    ...
nhuillard commented 9 years ago

Additional notes. The touchpad stops working when: double-finger-tap, tapping on the edge, fast moving maybe out of the sensing area, etc. Too many ways to stop it to be usable. Making the touchpad work again requires a reboot. rmmod/insmod is not sufficient, even with gdm3 restart (restarting the whole X server). Apparently, one of the /dev/input/ nodes is not removed/recreated when rmmod/insmod, whihc could be the problem (see notes above: /dev/input/by-id/usb-CNTouch_Touch_Device_V1.03-event-if02 and /dev/input/event10 are still dated 20:23 even though the module was reloaded at 20:34, as is /dev/input/by-id/usb-CNTouch_Touch_Device_V1.03-mouse) I'd really like to have this work... Many thanks for your work !

nhuillard commented 9 years ago

Forgot to mention: there is absolutely no dmesg output when the driver stops working. There are messages only when insmod/rmmod (see above, same as syslog contents).

daedric commented 9 years ago

Hi, Sorry for the late answer... Thanks for the dmesg, indeed this looks good and nothing seems to be out of the ordinary. It is quite strange all the problem you have, I wonder if it isn't more something related to X than the driver in itself. I'll compile a version with some debug for you to send me, in the meantime, would you mind to try out: sudo evtest and see if despite the mouse not moving you're still receiving events ?

If we can't figure out why it does not work I'll maybe install a debian to see if I can reproduce the bug.

Thanks,

daedric commented 9 years ago

The procedure to follow in case of the touchpad stop worklng is kindda nice, if you could do the same that would be awesome !

https://wiki.ubuntu.com/DebuggingTouchpadDetection

I forgot to answer about the /dev/input/inputX not being removed. This is normal and this is thanks to udev. It allows to assume one that once you plug something, it will keep its path.

nhuillard commented 9 years ago

Here is a first evtest.log file. I tried with and without X running, with the same result: the touch stops responding after some use (mostly touching in->out or out->in of the sensitive area, sometimes tapping). The exact simplest procedure is: reboot, gdm3 stop, insmod, evtest. This kind of confirm my initial idea, which was that your code may not work 100% with the Debian jessie kernel (Linux iris 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt7-1 (2015-03-01) x86_64 GNU/Linux), for some reason (interrupt handling, API change or so). Adding a lot a debug traces could help.

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x294e product 0x1001 version 0x1
Input device name: "CNTouch"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 272 (BTN_LEFT)
    Event code 273 (BTN_RIGHT)
    Event code 325 (BTN_TOOL_FINGER)
    Event code 333 (BTN_TOOL_DOUBLETAP)
  Event type 2 (EV_REL)
    Event code 0 (REL_X)
    Event code 1 (REL_Y)
    Event code 6 (REL_HWHEEL)
    Event code 8 (REL_WHEEL)
Properties:
Testing ... (interrupt to exit)
Event: time 1426264874.532344, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1426264874.532344, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1426264874.532344, -------------- EV_SYN ------------
Event: time 1426264874.540343, type 2 (EV_REL), code 0 (REL_X), value 55
Event: time 1426264874.540343, type 2 (EV_REL), code 1 (REL_Y), value 11
Event: time 1426264874.540343, -------------- EV_SYN ------------
Event: time 1426264874.556343, type 2 (EV_REL), code 0 (REL_X), value 29
Event: time 1426264874.556343, -------------- EV_SYN ------------
Event: time 1426264874.572345, type 2 (EV_REL), code 0 (REL_X), value 100
Event: time 1426264874.572345, type 2 (EV_REL), code 1 (REL_Y), value -11
Event: time 1426264874.572345, -------------- EV_SYN ------------
Event: time 1426264874.580343, type 2 (EV_REL), code 0 (REL_X), value 74
Event: time 1426264874.580343, type 2 (EV_REL), code 1 (REL_Y), value -17
Event: time 1426264874.580343, -------------- EV_SYN ------------
Event: time 1426264874.596343, type 2 (EV_REL), code 0 (REL_X), value 67
Event: time 1426264874.596343, type 2 (EV_REL), code 1 (REL_Y), value -21
Event: time 1426264874.596343, -------------- EV_SYN ------------
Event: time 1426264874.612343, type 2 (EV_REL), code 0 (REL_X), value 48
Event: time 1426264874.612343, type 2 (EV_REL), code 1 (REL_Y), value -26
Event: time 1426264874.612343, -------------- EV_SYN ------------
Event: time 1426264874.620344, type 2 (EV_REL), code 0 (REL_X), value 47
Event: time 1426264874.620344, type 2 (EV_REL), code 1 (REL_Y), value -15
Event: time 1426264874.620344, -------------- EV_SYN ------------
Event: time 1426264874.636343, type 2 (EV_REL), code 0 (REL_X), value 18
Event: time 1426264874.636343, type 2 (EV_REL), code 1 (REL_Y), value -6
Event: time 1426264874.636343, -------------- EV_SYN ------------
Event: time 1426264874.644343, type 2 (EV_REL), code 0 (REL_X), value 21
Event: time 1426264874.644343, type 2 (EV_REL), code 1 (REL_Y), value -4
Event: time 1426264874.644343, -------------- EV_SYN ------------
Event: time 1426264874.660343, type 2 (EV_REL), code 0 (REL_X), value 23
Event: time 1426264874.660343, -------------- EV_SYN ------------
Event: time 1426264874.676343, type 2 (EV_REL), code 0 (REL_X), value 19
Event: time 1426264874.676343, type 2 (EV_REL), code 1 (REL_Y), value 3
Event: time 1426264874.676343, -------------- EV_SYN ------------
Event: time 1426264874.684343, type 2 (EV_REL), code 0 (REL_X), value 18
Event: time 1426264874.684343, type 2 (EV_REL), code 1 (REL_Y), value 10
Event: time 1426264874.684343, -------------- EV_SYN ------------
Event: time 1426264874.700343, type 2 (EV_REL), code 0 (REL_X), value 32
Event: time 1426264874.700343, type 2 (EV_REL), code 1 (REL_Y), value 42
Event: time 1426264874.700343, -------------- EV_SYN ------------
Event: time 1426264874.708343, type 2 (EV_REL), code 0 (REL_X), value 26
Event: time 1426264874.708343, type 2 (EV_REL), code 1 (REL_Y), value 35
Event: time 1426264874.708343, -------------- EV_SYN ------------
Event: time 1426264874.724343, type 2 (EV_REL), code 0 (REL_X), value 18
Event: time 1426264874.724343, type 2 (EV_REL), code 1 (REL_Y), value 44
Event: time 1426264874.724343, -------------- EV_SYN ------------
Event: time 1426264874.740335, type 2 (EV_REL), code 0 (REL_X), value 8
Event: time 1426264874.740335, type 2 (EV_REL), code 1 (REL_Y), value 16
Event: time 1426264874.740335, -------------- EV_SYN ------------
Event: time 1426264874.748335, type 2 (EV_REL), code 0 (REL_X), value 43
Event: time 1426264874.748335, type 2 (EV_REL), code 1 (REL_Y), value 42
Event: time 1426264874.748335, -------------- EV_SYN ------------
Event: time 1426264874.764334, type 2 (EV_REL), code 0 (REL_X), value 44
Event: time 1426264874.764334, type 2 (EV_REL), code 1 (REL_Y), value 16
Event: time 1426264874.764334, -------------- EV_SYN ------------
Event: time 1426264874.772335, type 2 (EV_REL), code 0 (REL_X), value 21
Event: time 1426264874.772335, -------------- EV_SYN ------------
Event: time 1426264874.788319, type 2 (EV_REL), code 0 (REL_X), value 71
Event: time 1426264874.788319, type 2 (EV_REL), code 1 (REL_Y), value -10
Event: time 1426264874.788319, -------------- EV_SYN ------------
Event: time 1426264874.804335, type 2 (EV_REL), code 0 (REL_X), value 50
Event: time 1426264874.804335, type 2 (EV_REL), code 1 (REL_Y), value -23
Event: time 1426264874.804335, -------------- EV_SYN ------------
Event: time 1426264874.812334, type 2 (EV_REL), code 0 (REL_X), value 51
Event: time 1426264874.812334, type 2 (EV_REL), code 1 (REL_Y), value -22
Event: time 1426264874.812334, -------------- EV_SYN ------------
Event: time 1426264874.828335, type 2 (EV_REL), code 0 (REL_X), value 42
Event: time 1426264874.828335, type 2 (EV_REL), code 1 (REL_Y), value -24
Event: time 1426264874.828335, -------------- EV_SYN ------------
Event: time 1426264874.836336, type 2 (EV_REL), code 0 (REL_X), value 47
Event: time 1426264874.836336, type 2 (EV_REL), code 1 (REL_Y), value -27
Event: time 1426264874.836336, -------------- EV_SYN ------------
Event: time 1426264874.852336, type 2 (EV_REL), code 0 (REL_X), value 45
Event: time 1426264874.852336, type 2 (EV_REL), code 1 (REL_Y), value -20
Event: time 1426264874.852336, -------------- EV_SYN ------------
Event: time 1426264874.868336, type 2 (EV_REL), code 0 (REL_X), value 46
Event: time 1426264874.868336, type 2 (EV_REL), code 1 (REL_Y), value -20
Event: time 1426264874.868336, -------------- EV_SYN ------------
Event: time 1426264874.876334, type 2 (EV_REL), code 0 (REL_X), value 47
Event: time 1426264874.876334, type 2 (EV_REL), code 1 (REL_Y), value -25
Event: time 1426264874.876334, -------------- EV_SYN ------------
Event: time 1426264874.892335, type 2 (EV_REL), code 0 (REL_X), value 55
Event: time 1426264874.892335, type 2 (EV_REL), code 1 (REL_Y), value -12
Event: time 1426264874.892335, -------------- EV_SYN ------------
Event: time 1426264874.900335, type 2 (EV_REL), code 0 (REL_X), value 26
Event: time 1426264874.900335, type 2 (EV_REL), code 1 (REL_Y), value -3
Event: time 1426264874.900335, -------------- EV_SYN ------------
Event: time 1426264874.916335, type 2 (EV_REL), code 0 (REL_X), value 72
Event: time 1426264874.916335, type 2 (EV_REL), code 1 (REL_Y), value 6
Event: time 1426264874.916335, -------------- EV_SYN ------------
Event: time 1426264874.932335, type 2 (EV_REL), code 0 (REL_X), value 20
Event: time 1426264874.932335, type 2 (EV_REL), code 1 (REL_Y), value 9
Event: time 1426264874.932335, -------------- EV_SYN ------------
Event: time 1426264874.940334, type 2 (EV_REL), code 0 (REL_X), value 64
Event: time 1426264874.940334, type 2 (EV_REL), code 1 (REL_Y), value 37
Event: time 1426264874.940334, -------------- EV_SYN ------------
Event: time 1426264874.956335, type 2 (EV_REL), code 0 (REL_X), value 13
Event: time 1426264874.956335, type 2 (EV_REL), code 1 (REL_Y), value 10
Event: time 1426264874.956335, -------------- EV_SYN ------------
Event: time 1426264874.964334, type 2 (EV_REL), code 0 (REL_X), value 43
Event: time 1426264874.964334, type 2 (EV_REL), code 1 (REL_Y), value 40
Event: time 1426264874.964334, -------------- EV_SYN ------------
Event: time 1426264874.980335, type 2 (EV_REL), code 0 (REL_X), value 11
Event: time 1426264874.980335, type 2 (EV_REL), code 1 (REL_Y), value 9
Event: time 1426264874.980335, -------------- EV_SYN ------------
Event: time 1426264874.996333, type 2 (EV_REL), code 0 (REL_X), value 40
Event: time 1426264874.996333, type 2 (EV_REL), code 1 (REL_Y), value 28
Event: time 1426264874.996333, -------------- EV_SYN ------------
Event: time 1426264875.004336, type 2 (EV_REL), code 0 (REL_X), value 10
Event: time 1426264875.004336, type 2 (EV_REL), code 1 (REL_Y), value 10
Event: time 1426264875.004336, -------------- EV_SYN ------------
Event: time 1426264875.020336, type 2 (EV_REL), code 0 (REL_X), value 36
Event: time 1426264875.020336, type 2 (EV_REL), code 1 (REL_Y), value 26
Event: time 1426264875.020336, -------------- EV_SYN ------------
Event: time 1426264875.036337, type 2 (EV_REL), code 0 (REL_X), value 15
Event: time 1426264875.036337, type 2 (EV_REL), code 1 (REL_Y), value 6
Event: time 1426264875.036337, -------------- EV_SYN ------------
Event: time 1426264875.044334, type 2 (EV_REL), code 0 (REL_X), value 20
Event: time 1426264875.044334, type 2 (EV_REL), code 1 (REL_Y), value 8
Event: time 1426264875.044334, -------------- EV_SYN ------------
Event: time 1426264875.060334, type 2 (EV_REL), code 0 (REL_X), value 55
Event: time 1426264875.060334, type 2 (EV_REL), code 1 (REL_Y), value 14
Event: time 1426264875.060334, -------------- EV_SYN ------------
Event: time 1426264875.068335, type 2 (EV_REL), code 0 (REL_X), value 17
Event: time 1426264875.068335, type 2 (EV_REL), code 1 (REL_Y), value 4
Event: time 1426264875.068335, -------------- EV_SYN ------------
Event: time 1426264875.084334, type 2 (EV_REL), code 0 (REL_X), value 60
Event: time 1426264875.084334, type 2 (EV_REL), code 1 (REL_Y), value 12
Event: time 1426264875.084334, -------------- EV_SYN ------------
Event: time 1426264875.100335, type 2 (EV_REL), code 0 (REL_X), value 15
Event: time 1426264875.100335, type 2 (EV_REL), code 1 (REL_Y), value -4
Event: time 1426264875.100335, -------------- EV_SYN ------------
Event: time 1426264875.108334, type 2 (EV_REL), code 0 (REL_X), value 51
Event: time 1426264875.108334, type 2 (EV_REL), code 1 (REL_Y), value -13
Event: time 1426264875.108334, -------------- EV_SYN ------------
Event: time 1426264875.124334, type 2 (EV_REL), code 0 (REL_X), value 15
Event: time 1426264875.124334, type 2 (EV_REL), code 1 (REL_Y), value -3
Event: time 1426264875.124334, -------------- EV_SYN ------------
Event: time 1426264875.132336, type 2 (EV_REL), code 0 (REL_X), value 22
Event: time 1426264875.132336, type 2 (EV_REL), code 1 (REL_Y), value -6
Event: time 1426264875.132336, -------------- EV_SYN ------------
Event: time 1426264875.148335, type 2 (EV_REL), code 0 (REL_X), value 21
Event: time 1426264875.148335, type 2 (EV_REL), code 1 (REL_Y), value -7
Event: time 1426264875.148335, -------------- EV_SYN ------------
Event: time 1426264875.156334, type 2 (EV_REL), code 0 (REL_X), value 48
Event: time 1426264875.156334, type 2 (EV_REL), code 1 (REL_Y), value -13
Event: time 1426264875.156334, -------------- EV_SYN ------------
Event: time 1426264875.164335, type 2 (EV_REL), code 0 (REL_X), value 8
Event: time 1426264875.164335, type 2 (EV_REL), code 1 (REL_Y), value -3
Event: time 1426264875.164335, -------------- EV_SYN ------------
Event: time 1426264875.180334, type 2 (EV_REL), code 0 (REL_X), value 9
Event: time 1426264875.180334, type 2 (EV_REL), code 1 (REL_Y), value -3
Event: time 1426264875.180334, -------------- EV_SYN ------------
Event: time 1426264875.188335, type 2 (EV_REL), code 0 (REL_X), value 7
Event: time 1426264875.188335, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1426264875.188335, -------------- EV_SYN ------------
Event: time 1426264875.276335, type 2 (EV_REL), code 0 (REL_X), value -1
Event: time 1426264875.276335, type 2 (EV_REL), code 1 (REL_Y), value -1
Event: time 1426264875.276335, -------------- EV_SYN ------------
Event: time 1426264875.292334, type 2 (EV_REL), code 0 (REL_X), value -13
Event: time 1426264875.292334, -------------- EV_SYN ------------
Event: time 1426264875.300334, type 2 (EV_REL), code 0 (REL_X), value -15
Event: time 1426264875.300334, -------------- EV_SYN ------------
Event: time 1426264875.316334, type 2 (EV_REL), code 0 (REL_X), value -16
Event: time 1426264875.316334, type 2 (EV_REL), code 1 (REL_Y), value -2
Event: time 1426264875.316334, -------------- EV_SYN ------------
Event: time 1426264875.332336, type 2 (EV_REL), code 0 (REL_X), value -16
Event: time 1426264875.332336, type 2 (EV_REL), code 1 (REL_Y), value -5
Event: time 1426264875.332336, -------------- EV_SYN ------------
Event: time 1426264875.340335, type 2 (EV_REL), code 0 (REL_X), value -20
Event: time 1426264875.340335, type 2 (EV_REL), code 1 (REL_Y), value -7
Event: time 1426264875.340335, -------------- EV_SYN ------------
Event: time 1426264875.356334, type 2 (EV_REL), code 0 (REL_X), value -20
Event: time 1426264875.356334, type 2 (EV_REL), code 1 (REL_Y), value -9
Event: time 1426264875.356334, -------------- EV_SYN ------------
Event: time 1426264875.364334, type 2 (EV_REL), code 0 (REL_X), value -19
Event: time 1426264875.364334, type 2 (EV_REL), code 1 (REL_Y), value -9
Event: time 1426264875.364334, -------------- EV_SYN ------------
Event: time 1426264875.380335, type 2 (EV_REL), code 0 (REL_X), value -44
Event: time 1426264875.380335, type 2 (EV_REL), code 1 (REL_Y), value -28
Event: time 1426264875.380335, -------------- EV_SYN ------------
Event: time 1426264875.396335, type 2 (EV_REL), code 0 (REL_X), value -13
Event: time 1426264875.396335, type 2 (EV_REL), code 1 (REL_Y), value -12
Event: time 1426264875.396335, -------------- EV_SYN ------------
Event: time 1426264875.404336, type 2 (EV_REL), code 0 (REL_X), value -15
Event: time 1426264875.404336, type 2 (EV_REL), code 1 (REL_Y), value -14
Event: time 1426264875.404336, -------------- EV_SYN ------------
Event: time 1426264875.420336, type 2 (EV_REL), code 0 (REL_X), value -15
Event: time 1426264875.420336, type 2 (EV_REL), code 1 (REL_Y), value -15
Event: time 1426264875.420336, -------------- EV_SYN ------------
Event: time 1426264875.436335, type 2 (EV_REL), code 0 (REL_X), value -32
Event: time 1426264875.436335, type 2 (EV_REL), code 1 (REL_Y), value -29
Event: time 1426264875.436335, -------------- EV_SYN ------------
Event: time 1426264875.444334, type 2 (EV_REL), code 0 (REL_X), value -6
Event: time 1426264875.444334, type 2 (EV_REL), code 1 (REL_Y), value -9
Event: time 1426264875.444334, -------------- EV_SYN ------------
Event: time 1426264875.460335, type 2 (EV_REL), code 0 (REL_X), value -8
Event: time 1426264875.460335, type 2 (EV_REL), code 1 (REL_Y), value -11
Event: time 1426264875.460335, -------------- EV_SYN ------------
Event: time 1426264875.468336, type 2 (EV_REL), code 0 (REL_X), value -10
Event: time 1426264875.468336, type 2 (EV_REL), code 1 (REL_Y), value -10
Event: time 1426264875.468336, -------------- EV_SYN ------------
Event: time 1426264875.484334, type 2 (EV_REL), code 0 (REL_X), value -15
Event: time 1426264875.484334, type 2 (EV_REL), code 1 (REL_Y), value -10
Event: time 1426264875.484334, -------------- EV_SYN ------------
Event: time 1426264875.500342, type 2 (EV_REL), code 0 (REL_X), value -45
Event: time 1426264875.500342, type 2 (EV_REL), code 1 (REL_Y), value -20
Event: time 1426264875.500342, -------------- EV_SYN ------------
Event: time 1426264875.508343, type 2 (EV_REL), code 0 (REL_X), value -13
Event: time 1426264875.508343, type 2 (EV_REL), code 1 (REL_Y), value -7
Event: time 1426264875.508343, -------------- EV_SYN ------------
Event: time 1426264875.524343, type 2 (EV_REL), code 0 (REL_X), value -20
Event: time 1426264875.524343, type 2 (EV_REL), code 1 (REL_Y), value -9
Event: time 1426264875.524343, -------------- EV_SYN ------------
Event: time 1426264875.540343, type 2 (EV_REL), code 0 (REL_X), value -21
Event: time 1426264875.540343, type 2 (EV_REL), code 1 (REL_Y), value -8
Event: time 1426264875.540343, -------------- EV_SYN ------------
Event: time 1426264875.548343, type 2 (EV_REL), code 0 (REL_X), value -49
Event: time 1426264875.548343, type 2 (EV_REL), code 1 (REL_Y), value -14
Event: time 1426264875.548343, -------------- EV_SYN ------------
Event: time 1426264875.564343, type 2 (EV_REL), code 0 (REL_X), value -15
Event: time 1426264875.564343, type 2 (EV_REL), code 1 (REL_Y), value -2
Event: time 1426264875.564343, -------------- EV_SYN ------------
Event: time 1426264875.572344, type 2 (EV_REL), code 0 (REL_X), value -24
Event: time 1426264875.572344, type 2 (EV_REL), code 1 (REL_Y), value -2
Event: time 1426264875.572344, -------------- EV_SYN ------------
Event: time 1426264875.588344, type 2 (EV_REL), code 0 (REL_X), value -25
Event: time 1426264875.588344, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1426264875.588344, -------------- EV_SYN ------------
Event: time 1426264875.604344, type 2 (EV_REL), code 0 (REL_X), value -28
Event: time 1426264875.604344, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1426264875.604344, -------------- EV_SYN ------------
Event: time 1426264875.612344, type 2 (EV_REL), code 0 (REL_X), value -59
Event: time 1426264875.612344, type 2 (EV_REL), code 1 (REL_Y), value 5
Event: time 1426264875.612344, -------------- EV_SYN ------------
Event: time 1426264875.628343, type 2 (EV_REL), code 0 (REL_X), value -10
Event: time 1426264875.628343, type 2 (EV_REL), code 1 (REL_Y), value 4
Event: time 1426264875.628343, -------------- EV_SYN ------------
Event: time 1426264875.636345, type 2 (EV_REL), code 0 (REL_X), value -19
Event: time 1426264875.636345, type 2 (EV_REL), code 1 (REL_Y), value 9
Event: time 1426264875.636345, -------------- EV_SYN ------------
Event: time 1426264875.644344, type 2 (EV_REL), code 0 (REL_X), value -19
Event: time 1426264875.644344, type 2 (EV_REL), code 1 (REL_Y), value 7
Event: time 1426264875.644344, -------------- EV_SYN ------------
Event: time 1426264875.652345, type 2 (EV_REL), code 0 (REL_X), value -15
Event: time 1426264875.652345, type 2 (EV_REL), code 1 (REL_Y), value 8
Event: time 1426264875.652345, -------------- EV_SYN ------------
Event: time 1426264875.660343, type 2 (EV_REL), code 0 (REL_X), value -15
Event: time 1426264875.660343, type 2 (EV_REL), code 1 (REL_Y), value 5
Event: time 1426264875.660343, -------------- EV_SYN ------------
Event: time 1426264875.852343, type 2 (EV_REL), code 0 (REL_X), value -1
Event: time 1426264875.852343, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1426264875.852343, -------------- EV_SYN ------------
Event: time 1426264875.868344, type 2 (EV_REL), code 0 (REL_X), value -24
Event: time 1426264875.868344, type 2 (EV_REL), code 1 (REL_Y), value 4
Event: time 1426264875.868344, -------------- EV_SYN ------------
Event: time 1426264875.876344, type 2 (EV_REL), code 0 (REL_X), value -56
Event: time 1426264875.876344, type 2 (EV_REL), code 1 (REL_Y), value 7
Event: time 1426264875.876344, -------------- EV_SYN ------------
Event: time 1426264875.892343, type 2 (EV_REL), code 0 (REL_X), value -23
Event: time 1426264875.892343, type 2 (EV_REL), code 1 (REL_Y), value -3
Event: time 1426264875.892343, -------------- EV_SYN ------------
Event: time 1426264875.908343, type 2 (EV_REL), code 0 (REL_X), value -60
Event: time 1426264875.908343, type 2 (EV_REL), code 1 (REL_Y), value -3
Event: time 1426264875.908343, -------------- EV_SYN ------------
Event: time 1426264875.916343, type 2 (EV_REL), code 0 (REL_X), value -19
Event: time 1426264875.916343, type 2 (EV_REL), code 1 (REL_Y), value -5
Event: time 1426264875.916343, -------------- EV_SYN ------------
Event: time 1426264875.932344, type 2 (EV_REL), code 0 (REL_X), value -63
Event: time 1426264875.932344, type 2 (EV_REL), code 1 (REL_Y), value -14
Event: time 1426264875.932344, -------------- EV_SYN ------------
Event: time 1426264875.940344, type 2 (EV_REL), code 0 (REL_X), value -19
Event: time 1426264875.940344, type 2 (EV_REL), code 1 (REL_Y), value -3
Event: time 1426264875.940344, -------------- EV_SYN ------------
Event: time 1426264875.956343, type 2 (EV_REL), code 0 (REL_X), value -63
Event: time 1426264875.956343, type 2 (EV_REL), code 1 (REL_Y), value -13
Event: time 1426264875.956343, -------------- EV_SYN ------------
Event: time 1426264875.972346, type 2 (EV_REL), code 0 (REL_X), value -21
Event: time 1426264875.972346, type 2 (EV_REL), code 1 (REL_Y), value -6
Event: time 1426264875.972346, -------------- EV_SYN ------------
Event: time 1426264875.980343, type 2 (EV_REL), code 0 (REL_X), value -52
Event: time 1426264875.980343, type 2 (EV_REL), code 1 (REL_Y), value -27
Event: time 1426264875.980343, -------------- EV_SYN ------------
Event: time 1426264875.996342, type 2 (EV_REL), code 0 (REL_X), value -46
Event: time 1426264875.996342, type 2 (EV_REL), code 1 (REL_Y), value -17
Event: time 1426264875.996342, -------------- EV_SYN ------------
Event: time 1426264876.004343, type 2 (EV_REL), code 0 (REL_X), value -21
Event: time 1426264876.004343, type 2 (EV_REL), code 1 (REL_Y), value -8
Event: time 1426264876.004343, -------------- EV_SYN ------------
Event: time 1426264876.020340, type 2 (EV_REL), code 0 (REL_X), value -53
Event: time 1426264876.020340, type 2 (EV_REL), code 1 (REL_Y), value -30
Event: time 1426264876.020340, -------------- EV_SYN ------------
Event: time 1426264876.036339, type 2 (EV_REL), code 0 (REL_X), value -44
Event: time 1426264876.036339, type 2 (EV_REL), code 1 (REL_Y), value -25
Event: time 1426264876.036339, -------------- EV_SYN ------------
Event: time 1426264876.044338, type 2 (EV_REL), code 0 (REL_X), value -18
Event: time 1426264876.044338, type 2 (EV_REL), code 1 (REL_Y), value -9
Event: time 1426264876.044338, -------------- EV_SYN ------------
Event: time 1426264876.060338, type 2 (EV_REL), code 0 (REL_X), value -55
Event: time 1426264876.060338, type 2 (EV_REL), code 1 (REL_Y), value -30
Event: time 1426264876.060338, -------------- EV_SYN ------------
Event: time 1426264876.076337, type 2 (EV_REL), code 0 (REL_X), value -38
Event: time 1426264876.076337, type 2 (EV_REL), code 1 (REL_Y), value -22
Event: time 1426264876.076337, -------------- EV_SYN ------------
Event: time 1426264876.084338, type 2 (EV_REL), code 0 (REL_X), value -19
Event: time 1426264876.084338, type 2 (EV_REL), code 1 (REL_Y), value -12
Event: time 1426264876.084338, -------------- EV_SYN ------------
Event: time 1426264876.100338, type 2 (EV_REL), code 0 (REL_X), value -58
Event: time 1426264876.100338, type 2 (EV_REL), code 1 (REL_Y), value -70
Event: time 1426264876.100338, -------------- EV_SYN ------------
Event: time 1426264876.108338, type 2 (EV_REL), code 0 (REL_X), value -14
Event: time 1426264876.108338, type 2 (EV_REL), code 1 (REL_Y), value -20
Event: time 1426264876.108338, -------------- EV_SYN ------------
Event: time 1426264876.116338, type 2 (EV_REL), code 0 (REL_X), value -49
Event: time 1426264876.116338, type 2 (EV_REL), code 1 (REL_Y), value -6
Event: time 1426264876.116338, -------------- EV_SYN ------------
Event: time 1426264876.124338, type 2 (EV_REL), code 0 (REL_X), value -16
Event: time 1426264876.124338, -------------- EV_SYN ------------
Event: time 1426264876.132345, type 2 (EV_REL), code 0 (REL_X), value -23
Event: time 1426264876.132345, -------------- EV_SYN ------------
daedric commented 9 years ago

So evtest does not print anything when the trackpad stop responding ? I'll prepare a version with debug this afternoon.

daedric commented 9 years ago

Bad news, I upgraded my kernel to the 3.16.0 on my mint:

make -C /lib/modules/3.16.0-31-generic/build M=/home/daedric/work/cntouch_driver LDDINCDIR=/home/daedric/work/cntouch_driver/../include modules
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-31-generic'
  CC [M]  /home/daedric/work/cntouch_driver/cntouch.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/daedric/work/cntouch_driver/cntouch.mod.o
  LD [M]  /home/daedric/work/cntouch_driver/cntouch.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.16.0-31-generic'

And it works perfectly fine.. So it does not look like a kernel incompatibility.

daedric commented 9 years ago

Can you try out the branch ?

$> git fetch origin
$> git checkout debug
$> make.......

Thanks!

nhuillard commented 9 years ago

Here is the result. Not that much...

[200514.756363] input: CNTouch as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/input/input33
[200514.756535] usbcore: registered new interface driver CNTouch
[200514.759254] Data array [0, 0, 0, 0, 0]
[200514.767254] Data array [0, 0, 0, 1, 0]
[200609.983162] Data array [0, -1, -1, 0, 0]
[200609.999167] Data array [0, -12, -3, 0, 0]
[200610.007171] Data array [0, -10, -3, 0, 0]
[200610.023187] Data array [0, -11, -3, 0, 0]
[200610.039159] Data array [0, -17, 0, 0, 0]
[200610.047190] Data array [0, -18, -2, 0, 0]
[200610.063194] Data array [0, -14, -4, 0, 0]
[200610.071199] Data array [0, -11, -2, 0, 0]
[200610.087204] Data array [0, -19, 0, 0, 0]
[200610.103208] Data array [0, -11, -2, 0, 0]
[200610.111210] Data array [0, -17, 0, 0, 0]
[200610.127215] Data array [0, -20, 2, 0, 0]
[200610.143220] Data array [0, -20, 3, 0, 0]
[200610.151225] Data array [0, -21, 6, 0, 0]
[200610.167203] Data array [0, -19, 6, 0, 0]
[200610.175234] Data array [0, -18, 7, 0, 0]
[200610.191180] Data array [0, -9, 3, 0, 0]
[200610.207198] Data array [0, -33, 30, 0, 0]
[200610.215219] Data array [0, -5, 3, 0, 0]
[200610.231226] Data array [0, -4, 4, 0, 0]
[200610.247265] Data array [0, -5, 3, 0, 0]
[200610.255268] Data array [0, -9, 8, 0, 0]
[200610.271274] Data array [0, -8, 8, 0, 0]
[200610.287281] Data array [0, -6, 9, 0, 0]
[200610.295227] Data array [0, 0, 5, 0, 0]
[200610.311298] Data array [0, -6, 17, 0, 0]
[200610.319296] Data array [0, -3, 10, 0, 0]
[200610.335302] Data array [0, -1, 8, 0, 0]
[200610.351307] Data array [0, 3, 6, 0, 0]
[200610.359252] Data array [0, -1, 7, 0, 0]
[200610.375319] Data array [0, -2, 6, 0, 0]
[200610.391325] Data array [0, 2, 0, 0, 0]
[200610.399327] Data array [0, 1, 0, 0, 0]
[200610.415335] Data array [0, -2, 2, 0, 0]
[200610.431342] Data array [0, 1, -1, 0, 0]
[200610.439345] Data array [0, 4, -5, 0, 0]
[200610.455352] Data array [0, 5, -7, 0, 0]
[200610.463354] Data array [0, -2, -2, 0, 0]
[200610.479317] Data array [0, -1, -9, 0, 0]
[200610.495326] Data array [0, 4, -17, 0, 0]
[200610.503372] Data array [0, 3, -16, 0, 0]
[200610.519379] Data array [0, -7, -10, 0, 0]
[200610.535385] Data array [0, -2, -10, 0, 0]
[200610.543389] Data array [0, -9, -2, 0, 0]
[200610.559349] Data array [0, -1, -8, 0, 0]
[200610.567398] Data array [0, -4, -6, 0, 0]
[200610.583406] Data array [0, -5, -3, 0, 0]
[200610.599412] Data array [0, -5, -3, 0, 0]
[200610.607416] Data array [0, -7, -4, 0, 0]
[200610.623422] Data array [0, -11, 2, 0, 0]
[200610.639429] Data array [0, -11, -4, 0, 0]
[200610.647433] Data array [0, -17, 6, 0, 0]
[200610.663438] Data array [0, -12, 2, 0, 0]
[200610.679401] Data array [0, -7, -6, 0, 0]
[200610.687450] Data array [0, -10, 4, 0, 0]
[200610.703456] Data array [0, -12, 0, 0, 0]
[200610.711459] Data array [0, -8, -1, 0, 0]
[200610.727465] Data array [0, -10, 6, 0, 0]
[200610.743473] Data array [0, -11, 2, 0, 0]
[200610.751475] Data array [0, -11, 3, 0, 0]
[200610.767482] Data array [0, -9, 5, 0, 0]
[200610.783490] Data array [0, -11, 5, 0, 0]
[200610.791491] Data array [0, -4, 0, 0, 0]
[200610.799495] Data array [0, -8, 1, 0, 0]
[200610.807501] Data array [0, -2, 0, 0, 0]
[200610.823507] Data array [0, -5, 4, 0, 0]
[200610.831509] Data array [0, 6, -3, 0, 0]
[200611.207668] Data array [0, -1, -1, 0, 0]
[200611.223675] Data array [0, -9, -7, 0, 0]
[200611.231677] Data array [0, -17, -7, 0, 0]
[200611.247685] Data array [0, -56, -12, 0, 0]
[200611.263689] Data array [0, -15, -3, 0, 0]
[200611.271693] Data array [0, -58, -5, 0, 0]
[200611.287702] Data array [0, -17, -4, 0, 0]
[200611.303706] Data array [0, -38, -22, 0, 0]
[200611.311709] Data array [0, -11, -3, 0, 0]
[200611.327717] Data array [0, -47, 14, 0, 0]
[200611.335720] Data array [0, -7, -2, 0, 0]
[200611.351727] Data array [0, -11, -2, 0, 0]
[200611.367733] Data array [0, -14, -8, 0, 0]
...
[200620.155411] Data array [0, 9, 6, 0, 0]
[200620.171419] Data array [0, 5, 29, 0, 0]
[200620.179402] Data array [0, 8, 32, 0, 0]
[200620.195427] Data array [0, 6, 36, 0, 0]
[200620.211436] Data array [0, -3, 23, 0, 0]
[200620.219438] Data array [0, 1, 21, 0, 0]
[200620.235445] Data array [0, 3, 14, 0, 0]
[200620.251451] Data array [0, -2, 21, 0, 0]
[200620.259454] Data array [0, 4, 12, 0, 0]
[200620.275462] Data array [0, -1, 9, 0, 0]
[200620.291466] Data array [0, 3, 0, 0, 0]
[200620.299471] Data array [0, -1, 3, 0, 0]
[200620.323481] Data array [0, 2, -4, 0, 0]
[200620.339488] Data array [0, 2, -5, 0, 0]
[200620.355495] Data array [0, 6, -15, 0, 0]
[200620.363497] Data array [0, 9, -16, 0, 0]
[200620.379482] Data array [0, 8, -16, 0, 0]
[200620.395514] Data array [0, 5, -17, 0, 0]
[200620.403514] Data array [0, 11, -18, 0, 0]
[200620.419528] Data array [0, 27, -62, 0, 0]
[200620.427530] Data array [0, 3, -16, 0, 0]
[200620.443548] Data array [0, 2, -20, 0, 0]
[200620.459550] Data array [0, 9, -17, 0, 0]
[200620.467545] Data array [0, 12, 0, 0, 0]
[200620.483552] Data array [0, 3, 0, 0, 0]
[200620.499556] Data array [0, 3, 0, 0, 0]
[200620.507557] Data array [0, 13, 0, 0, 0]
[200620.523565] Data array [0, 13, 0, 0, 0]
[200620.531567] Data array [0, 1, 0, 0, 0]
[200620.547574] Data array [0, 9, 0, 0, 0]
[200620.555578] Data array [0, 9, 0, 0, 0]
[200620.563580] Data array [0, 7, 0, 0, 0]
[200620.571587] Data array [0, -6, 0, 0, 0]
[200620.691645] Data array [1, 0, 0, 0, 0]
[200621.107825] Data array [0, 0, 0, 0, 0]
[200621.115819] Data array [0, 0, 0, 0, 0]

Nothing more in dmesg. No errors when the touchpad stops working, as of the last line.

This is what I get in dmesg when "rmmod cntouch":

[201247.388291] usbcore: deregistering interface driver CNTouch
[201247.388350] IRQ error error: -108
[201247.388386] Device disconnected
[201247.399937] Close device + kill urb

This is the output of evtest:

...
/dev/input/event15:     CNTouch Touch Device
Select the device event number [0-15]: 15
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x294e product 0x1001 version 0x110
Input device name: "CNTouch Touch Device"
Supported events:
  Event type 0 (EV_SYN)
  Event type 3 (EV_ABS)
    Event code 40 (ABS_MISC)
      Value      0
      Min        0
      Max      255
    Event code 41 (?)
      Value      0
      Min        0
      Max      255
    Event code 42 (?)
      Value      0
      Min        0
      Max      255
    Event code 43 (?)
      Value      0
      Min        0
      Max      255
    Event code 44 (?)
      Value      0
      Min        0
      Max      255
    Event code 45 (?)
      Value      0
      Min        0
      Max      255
    Event code 46 (?)
      Value      0
      Min        0
      Max      255
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max      255
    Event code 48 (ABS_MT_TOUCH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 49 (ABS_MT_TOUCH_MINOR)
      Value      0
      Min        0
      Max      255
    Event code 50 (ABS_MT_WIDTH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 51 (ABS_MT_WIDTH_MINOR)
      Value      0
      Min        0
      Max      255
    Event code 52 (ABS_MT_ORIENTATION)
      Value      0
      Min        0
      Max      255
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max      255
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max      255
    Event code 55 (ABS_MT_TOOL_TYPE)
      Value      0
      Min        0
      Max      255
    Event code 56 (ABS_MT_BLOB_ID)
      Value      0
      Min        0
      Max      255
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max      255
    Event code 58 (ABS_MT_PRESSURE)
      Value      0
      Min        0
      Max      255
    Event code 59 (ABS_MT_DISTANCE)
      Value      0
      Min        0
      Max      255
    Event code 60 (ABS_MT_TOOL_X)
      Value      0
      Min        0
      Max      255
    Event code 61 (ABS_MT_TOOL_Y)
      Value      0
      Min        0
      Max      255
    Event code 62 (?)
      Value      0
      Min        0
      Max      255
    Event code 63 (?)
      Value      0
      Min        0
      Max      255
Properties:
Testing ... (interrupt to exit)

I'll try to re-run this after I've uninstalled Virtualbox (and its vbox* kernel modules), because it is useless on this machine.

daedric commented 9 years ago

Question: does it still print something in logs when the mouse stop respnding on the screen ? In another terms, when the cursor does not respond but you try to move around, does it still print something in the logs ? Around the time it stops responding, is there anything aside the Data array entries ?

nhuillard commented 9 years ago

I checked once more: Command insmod ~/cntouch_driver-debug/cntouch.ko output (/var/log/syslog and dmesg):

Mar 29 16:40:08 iris kernel: [  197.003579] input: CNTouch as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/input/input15
Mar 29 16:40:08 iris kernel: [  197.003906] usbcore: registered new interface driver CNTouch
Mar 29 16:40:08 iris kernel: [  197.029560] Close device + kill urb
Mar 29 16:40:08 iris kernel: [  197.029600] IRQ error error: -2
Mar 29 16:40:08 iris kernel: [  197.083315] Close device + kill urb
Mar 29 16:40:08 iris kernel: [  197.083343] IRQ error error: -2

Command evtest output is OK, and /var/log/syslog reflects the same output, ie.:

Event: time 1427640625.988023, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1427640625.988023, type 2 (EV_REL), code 1 (REL_Y), value -13
Event: time 1427640625.988023, -------------- EV_SYN ------------
Event: time 1427640626.004015, type 2 (EV_REL), code 0 (REL_X), value 4
Event: time 1427640626.004015, type 2 (EV_REL), code 1 (REL_Y), value -16
Event: time 1427640626.004015, -------------- EV_SYN ------------
Event: time 1427640626.012013, type 2 (EV_REL), code 0 (REL_X), value 3
Event: time 1427640626.012013, type 2 (EV_REL), code 1 (REL_Y), value -25
Event: time 1427640626.012013, -------------- EV_SYN ------------
Event: time 1427640626.028021, type 2 (EV_REL), code 0 (REL_X), value 3
Event: time 1427640626.028021, type 2 (EV_REL), code 1 (REL_Y), value -25
Event: time 1427640626.028021, -------------- EV_SYN ------------
Event: time 1427640626.044012, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1427640626.044012, type 2 (EV_REL), code 1 (REL_Y), value -22
Event: time 1427640626.044012, -------------- EV_SYN ------------

vs.

Mar 29 16:50:25 iris kernel: [  243.371742] Data array [0, 1, -13, 0, 0]
Mar 29 16:50:26 iris kernel: [  243.387744] Data array [0, 4, -16, 0, 0]
Mar 29 16:50:26 iris kernel: [  243.395746] Data array [0, 3, -25, 0, 0]
Mar 29 16:50:26 iris kernel: [  243.411758] Data array [0, 3, -25, 0, 0]
Mar 29 16:50:26 iris kernel: [  243.427759] Data array [0, 1, -22, 0, 0]

This is OK until the touchpad stops responding. When it stops responding, there is nothing more in evtest output and /var/log/syslog and dmesg. All logs just stop spitting anything related to the movements. I can confirm that the touchpad strops responding when I reach the edge of the sensitive area. I just tried to keep moving inside the sensitive area for a while and it kept working. This is a test without X (/etc/init.d/gdm3 stop). When I kill evtest (Ctrl+C):

Mar 29 16:56:04 iris kernel: [  581.809249] Close device + kill urb
Mar 29 16:56:04 iris kernel: [  581.809311] IRQ error error: -2

When I rmmod cntouch:

Mar 29 16:56:52 iris kernel: [  630.271562] usbcore: deregistering interface driver CNTouch
Mar 29 16:56:52 iris kernel: [  630.271587] Device disconnected

If I try to reload the kernel module (insmod ~/cntouch_driver-debug/cntouch.ko), it does not respond anymore, until I reboot. I suspect either:

nhuillard commented 9 years ago

img_20150329_163609

daedric commented 9 years ago

Hum, I need to think about this... I this log too many times: https://github.com/daedric/cntouch_driver/blob/debug/cntouch.c#L113 It should only printed on rmmod OR if you disable the touchpad (Fn + F1).

Since I reversed engineered the device maybe there is a case I did not handle and that would require some action from the driver to reset something. The problem is that I can't reproduce the problem on my end.

I wonder if it could still be a problem with your device. Did you test on windows ?

I check my bios asap but I don't think we can learn much

nhuillard commented 9 years ago

The messages Close device + kill urb and 'IRQ error error: -2` appears :

Mar 29 17:52:31 iris kernel: [  338.661487] atkbd serio0: Unknown key pressed (translated set 2, code 0x83 on isa0060/serio0).
Mar 29 17:52:31 iris kernel: [  338.661498] atkbd serio0: Use 'setkeycodes e003 <keycode>' to make it known.
Mar 29 17:52:31 iris kernel: [  338.662942] usb 1-6: USB disconnect, device number 4
Mar 29 17:52:31 iris kernel: [  338.663028] Device disconnected
Mar 29 17:52:31 iris kernel: [  338.669036] atkbd serio0: Unknown key released (translated set 2, code 0x83 on isa0060/serio0).
Mar 29 17:52:31 iris kernel: [  338.669047] atkbd serio0: Use 'setkeycodes e003 <keycode>' to make it known.

When I re-enable the touchad (Fn+F1):

Mar 29 17:53:46 iris kernel: [  413.616169] atkbd serio0: Unknown key pressed (translated set 2, code 0x82 on isa0060/serio0).
Mar 29 17:53:46 iris kernel: [  413.616180] atkbd serio0: Use 'setkeycodes e002 <keycode>' to make it known.
Mar 29 17:53:46 iris kernel: [  413.623450] atkbd serio0: Unknown key released (translated set 2, code 0x82 on isa0060/serio0).
Mar 29 17:53:46 iris kernel: [  413.623461] atkbd serio0: Use 'setkeycodes e002 <keycode>' to make it known.
Mar 29 17:53:46 iris kernel: [  413.947863] usb 1-6: new full-speed USB device number 6 using xhci_hcd
Mar 29 17:53:46 iris kernel: [  414.178008] usb 1-6: New USB device found, idVendor=294e, idProduct=1001
Mar 29 17:53:46 iris kernel: [  414.178016] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Mar 29 17:53:46 iris kernel: [  414.178020] usb 1-6: Product: Touch Device
Mar 29 17:53:46 iris kernel: [  414.178023] usb 1-6: Manufacturer: CNTouch
Mar 29 17:53:46 iris kernel: [  414.178026] usb 1-6: SerialNumber: V1.03
Mar 29 17:53:46 iris kernel: [  414.178275] usb 1-6: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
Mar 29 17:53:46 iris kernel: [  414.178283] usb 1-6: ep 0x82 - rounding interval to 64 microframes, ep desc says 80 microframes
Mar 29 17:53:46 iris kernel: [  414.178288] usb 1-6: ep 0x83 - rounding interval to 64 microframes, ep desc says 80 microframes
Mar 29 17:53:46 iris kernel: [  414.178293] usb 1-6: ep 0x3 - rounding interval to 64 microframes, ep desc says 80 microframes
Mar 29 17:53:46 iris kernel: [  414.195829] usbhid 1-6:1.0: can't add hid device: -22
Mar 29 17:53:46 iris kernel: [  414.195906] usbhid: probe of 1-6:1.0 failed with error -22
Mar 29 17:53:46 iris kernel: [  414.196043] input: CNTouch as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/input/input17
Mar 29 17:53:46 iris kernel: [  414.207893] Close device + kill urb
Mar 29 17:53:46 iris kernel: [  414.207928] IRQ error error: -2
Mar 29 17:53:46 iris kernel: [  414.257919] input: CNTouch Touch Device as /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.2/0003:294E:1001.0004/input/input18
Mar 29 17:53:46 iris kernel: [  414.258132] hid-generic 0003:294E:1001.0004: input,hidraw0: USB HID v1.10 Device [CNTouch Touch Device] on usb-0000:00:14.0-6/input2
Mar 29 17:53:46 iris kernel: [  414.259842] Close device + kill urb
Mar 29 17:53:46 iris mtp-probe: checking bus 1, device 6: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-6"
Mar 29 17:53:46 iris mtp-probe: bus: 1, device: 6 was not an MTP device
Mar 29 17:53:46 iris kernel: [  414.259870] IRQ error error: -2

I didn't test using Windows, because I can't dual-boot this machine (no free space on the SSD). I tried Windows in a VirtualBox on the previous laptop, which had a motherboard problem. The touchpad didn't work in Windows either (I specifically tried to, and had a few events in Windows), but I can't say it was not because of the failed motherboard.

nhuillard commented 9 years ago

Did you have a chance to check your BIOS version ? Is there something else we can check ? I'd love to make this work here too ;-) Anyway, thanks for your efforts so far.

daedric commented 9 years ago

Sorry I was caught up on a shit-load of things. I did review all your comments and tried to make sense out of them, but not luck so far. If there is no oops/panic and nothing in the Xorg log that quite hard to debug and I'm far from being an expert. Worst thing is that I use it like everyday without a single problem. I'll check again the bios version but I do not believe that'll change anything. I'll also try to get the exact reference of my model so we can see if we actually have the same.

cheers,