Bug 64811
Summary: | Microsoft Surface type cover 2 assigned to hid-multitouch, "No inputs registered" | ||
---|---|---|---|
Product: | Drivers | Reporter: | David Staer (david.staer) |
Component: | Input Devices | Assignee: | drivers_input-devices |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | debbugs, joakim, popolit, radu.banabic, reyad.attiyat |
Priority: | P1 | ||
Hardware: | x86-64 | ||
OS: | Linux | ||
Kernel Version: | 3.11.0-12-generic | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
[PATCH] Add Type Cover 2 ID to hid-microsoft
Type Cover 2 Report List Add Type and Touch Cover 2 IDs to hid-microsoft |
Description
David Staer
2013-11-11 17:17:54 UTC
I also experience this bug on ArchLinux using 3.12.0 kernel Simple fix is to add the hardware id's to the hid-microsoft driver. I've attached a patch that will do this. I have tested it on 3.12 and 3.13. I'm curious as to why this patch works as I understand the type cover 2 uses a multitouch toucpad and maybe should be fixed in hid-multitouch. I still have issues with the type cover 2 even with this fix. It will randomly reset while typing. I have even seen it reset the computer while being attached. Pro tip to switch the to and from function keys hit Fn + Caps Created attachment 118671 [details]
[PATCH] Add Type Cover 2 ID to hid-microsoft
Created attachment 119141 [details]
Type Cover 2 Report List
This is the output from file rdesc on debugfs for the Type Cover 2 USB keyboard
After reading the report list of the keyboard it has the usage field Digitizers.ContactID on one of its input reports. This causes the device to get placed in the MULTITOUCH group which in turn makes the hid driver use hid-multitouch driver. This driver does not deal with Keyboard and Mouse inputs. Is there some other workaround than patching the kernel? At the moment I use a patched fedora kernel, but I havent found a way to automate builds of patched kernels on fedora, so its a bit tedious to keep it up to date. (In reply to joakim verona from comment #6) > Is there some other workaround than patching the kernel? Not that I know of. Usually hid drivers can unbind and bind to other drivers by using sysfs.This doesn't work. [root@localhost reyad]# cd /sys/bus/hid/drivers/hid-multitouch [root@localhost hid-multitouch]# ls 0003:03EB:8209.0006 0003:045E:07A9.0005 bind module new_id uevent unbind [root@localhost hid-multitouch]# echo -n 0003\:045E\:07A9.0005 > unbind [root@localhost hid-multitouch]# echo -n 0003\:045E\:07A9.0005 > ../hid-generic/bind bash: echo: write error: No such device [root@localhost hid-multitouch]# echo -n 0003\:045E\:07A9.0 I think this happens because the device is part of the HID_GROUP_MULTITOUCH and that device group is not compatible with hid-generic or hid-microsoft drivers. > At the moment I use a patched fedora kernel, but I havent found a way to > automate builds of patched kernels on fedora, so its a bit tedious to keep > it up to date. The way I manage patches against the kernel is with git. I clone the kernel from git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git Its a couple commands to pull kernel updates, rebase patches, compile, install. This could be done in a shell script. I'll try to push this patch upstream.I was waiting for someone to test it. Do you experience any issues with this keyboard under Linux? The patch works well. The keyboard has some oddities, but I dont think thats the responsibilty of this patch. The function keys seem inversed, but that might be by design, I dont know. The kbd also seems to consume power even when suspended. Created attachment 122801 [details] Add Type and Touch Cover 2 IDs to hid-microsoft A minor addition to Reyad Attiyat's patch to hid-microsoft to include support for the Touch cover 2 as well, see comment #23 at http://ubuntuforums.org/showthread.php?t=2183946&p=12849525#post12849525 . I'm happy if you'd like to submit this (or just your's) upstream. Thank you for the HID of the Touch Cover 2. I will try and get the new patch upstream. Thanks for submitting that Reyad. Note that under Windows this HID device is actually used as a multitouch device. By setting some feature bits (according to http://msdn.microsoft.com/en-us/library/windows/desktop/dn467314%28v=vs.85%29.aspx ) the device can be configured to start generating finger events (including tracking/contactID) instead of mouse. It may be interesting to use this device in multitouch mode in the future. |