Symptoms: Hardware is to all appearances detected and initialized, but does not respond to touch, stylus, or eraser input. Hardware has been verified to work in Windows 10. Manually setting the screen bounds wth "xinput_calibrator --porecalib" did not make any difference.
Version of kernel is 4.4.1, version of xf86-input-wacom is 0.30. Running evemu-record (suggested by whot on IRC) does not capture any events, regardless of whether X is running or not.
Here's the info dump. X log is attached. Using the stock 50-wacom.conf for X11. Adding Input Device sections for Pen, Tich, and Eraser with sepecific device file options did not help, so I removed them.
bash# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.3 (jessie)
Release: 8.3
Codename: jessie
bash# uname -a
Linux bender 4.4.1-040401-generic #201601311534 SMP Sun Jan 31 20:36:43 UTC 2016 x86_64 GNU/Linux
bash# dmesg | grep -i wacom
[ 2.331018] usb 1-10: Manufacturer: Wacom Co.,Ltd.
[ 2.361455] input: Wacom Co.,Ltd. Pen and multitouch sensor Finger as /devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.0/0003:056A:503E.0001/input/input16
[ 2.362607] wacom 0003:056A:503E.0001: hidraw0: USB HID v1.11 Device [Wacom Co.,Ltd. Pen and multitouch sensor] on usb-0000:00:14.0-10/input0
[ 2.362801] input: Wacom Co.,Ltd. Pen and multitouch sensor Pen as /devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.1/0003:056A:503E.0002/input/input18
[ 2.362978] wacom 0003:056A:503E.0002: hidraw1: USB HID v1.11 Mouse [Wacom Co.,Ltd. Pen and multitouch sensor] on usb-0000:00:14.0-10/input1
bash# lsmod | grep -i wacom
wacom 94208 0
hid 118784 4 hid_multitouch,wacom,hid_lenovo,usbhid
bash# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 138a:0090 Validity Sensors, Inc.
Bus 001 Device 003: ID 13d3:5248 IMC Networks
Bus 001 Device 002: ID 8087:0a2b Intel Corp.
Bus 001 Device 005: ID 056a:503e Wacom Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
bash# cat /proc/bus/input/devices
...
I: Bus=0003 Vendor=056a Product=503e Version=0111
N: Name="Wacom Co.,Ltd. Pen and multitouch sensor Finger"
P: Phys=usb-0000:00:14.0-10/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.0/0003:056A:503E.0001/input/input16
U: Uniq=
H: Handlers=mouse0 event13
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=260800000000003
I: Bus=0003 Vendor=056a Product=503e Version=0111
N: Name="Wacom Co.,Ltd. Pen and multitouch sensor Pen"
P: Phys=usb-0000:00:14.0-10/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10:1.1/0003:056A:503E.0002/input/input18
U: Uniq=
H: Handlers=mouse1 event14
B: PROP=2
B: EV=1b
B: KEY=1c03 0 0 0 0 0
B: ABS=1000003
B: MSC=1
...
bash# xsetwacom --list
Wacom Co.,Ltd. Pen and multitouch sensor Finger touch id: 9 type: TOUCH
Wacom Co.,Ltd. Pen and multitouch sensor Pen stylus id: 10 type: STYLUS
Wacom Co.,Ltd. Pen and multitouch sensor Pen eraser id: 15 type: ERASER
bash# xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Finger touch id=9 [slave pointer (2)]
⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Pen stylus id=10 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Pen eraser id=15 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=14 [slave keyboard (3)]
Saw this requested in #307, so I'm adding it:
for F in /sys/bus/hid/drivers/wacom/*/report_descriptor; do echo $F; hexdump -C $F; done > /tmp/descriptors.txtAlso, the complete /proc/bus/input/devices
hid-recorder output for /dev/hidraw0 (touch) and /dev/hidraw1 (stylus) inside of X windows.
Based on the hid-recorder output, it looks like the device is sending events with an unexpected report ID. Instead of having the ID specified for the generic HID packets, the ID is of the "vendor defined" HID packets that the driver can't automatically decode. That's really odd since since most devices use the former automatically... I'll see if I can come up with a way to switch the device mode....
In the meantime, perhaps try entering the BIOS and seeing if the pen/touchscreen work there. Usually the pen or touchscreen will work properly in the BIOS, and that should be using generic HID reports. Entering the BIOS should do the necessary mode switch, and (very unlikely, but maybe) the effect of the mode switch may even persist across reboot.
Last edit: Jason Gerecke 2016-03-05
Unfortunately, the BIOS is keyboard only. The touchpad. trackpoint, and touchscreen are not supported in BIOS. I tried booting into Windows and rebooting into Linux to see if the initialized touchscreen would "stick", but that didn't change anything.
I noticed on the Lenovo forums that there is a firmare update to fix issues with the touschscreen failing to respond:
https://forums.lenovo.com/t5/ThinkPad-X-Series-Laptops/X1-Yoga-Touch-Screen-No-Longer-Working/td-p/2269132
If your theory is correct, it might have something to do with this (Windows) issue -- it could be that the touchscreen mode is not being set correctly in firmware. I am going to apply the firmare upgrade in Windows (shudder) and will post with an update.
Firmware upgraded. No change. Attached is the hid-recorder output post-firmware upgrade. I also included output from hid-recorder -d, though it probably won't be any different.
Did you hard reset the beast?
https://support.lenovo.com/uu/en/documents/pd103705
Worked until I went back into windows on its little brother (yoga 260; OpenSuse Tumbleweed)
The hard reset worked. Thanks, mabawsa.
The touchscreen is now responding. For future reference, the fix is to apply the firmware update and do a hard reset.
Good to know that the hard reset worked for you as well (see mabawsa's bug [#307]). I'm still going to see if I can find a way to change the mode through software since you shouldn't have to hard reset after booting into Windows :D
Related
Bugs:
#307I've made a patch which I think will do the trick. You can find the updated sources on my Github to try out. If you're not familiar with building and installing the input-wacom driver, you can find instructions here.
After installing the driver, reboot into Windows, and then back into Linux. If all goes well, the pen and touch should start working again. Let me know either way :)
Seems to work.
I don't use Windows much, and rarely even reboot, so I don't know if it required a hard reset before (or if the firmware fixed it).
Some notes on the install: I'm using 4.4.1, and the 'sudo make install' failed with the following errors:
At main.c:222:
- SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:169
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:172
sign-file: certs/signing_key.pem: No such file or directory
I'm guessing this has to do with some sort of kernel build process over at Ubuntu (I got the kernel and headers from the Ubuntu mainine PPA).
I manually copied the driver files into place, which worked fine.
Fixed upstream by commit 326ea2a (due for Linux 4.6) and in input-wacom by commit 61745a2 (due for input-wacom 0.31.0 or input-wacom 0.32.0 depending on timing).
See also bug [bugs:#307]
Related
Bugs:
#307Fix available in Linux 4.6 and input-wacom 0.31.0