Hi all,
To me the following page in the keyboard interface 0 descriptor (from
"sudo usbhid-dump -a1:8 -i0| grep -v : | xxd -r -p | hidrd-convert -o")
seems suspicious. I'm guessing Logical Maximum should not be -1 if
Logical Minimum is 0, and a Usage Maximum of FFFFh might break
include/linux/hid.h #define HID_MAX_USAGES 12288
Usage Page (88h), ; 88h, reserved
Usage (01h),
Collection (Application),
Report ID (4),
Usage Minimum (00h),
Usage Maximum (FFFFh),
Logical Minimum (0),
Logical Maximum (-1),
Report Size (8),
Report Count (2),
Input (Variable),
End Collection,
Cheers,
John
On 29/04/15 03:58, John Reid wrote:
> Hi Benjamin,
>
> Thanks for getting back to us so promptly, and for the hopeful news.
> Please find attached attached the output for the debugfs/hid entries on
> my system. I've also updated the thinkwiki page with the output from
> every method of getting the HID descriptor I can think of.
>
> I'll attach the output from dmesg with i2c-hid.debug in a seperate post
> once my kernel recompiles - I had CONFIG_DEBUG_DRIVER=y swamping the logs...
>
> Cheers,
> John
>
> BTW, I finally managed to get some events from the keyboard (keypress
> events for a,s,d,f on interface 0, still can't get anything on interface
> 1) :
>
> $ sudo usbhid-dump -a1:8 -i0 -e all
> 001:008:000:DESCRIPTOR 1430239015.142435
> 06 85 FF 09 95 A1 01 85 5A 09 01 15 00 26 FF 00
> 75 08 95 10 B1 00 C0 05 01 09 06 A1 01 85 01 75
> 01 95 08 05 07 19 E0 29 E7 15 00 25 01 81 02 95
> 01 75 08 81 03 95 05 75 01 05 08 19 01 29 05 91
> 02 95 01 75 03 91 03 95 06 75 08 15 00 26 FF 00
> 05 07 19 00 2A FF 00 81 00 C0 05 0C 09 01 A1 01
> 85 03 19 00 2A 3C 02 15 00 26 3C 02 75 10 95 01
> 81 00 C0 05 01 09 0C A1 01 85 02 15 00 25 01 09
> C6 95 01 75 01 81 06 75 07 81 03 C0 05 88 09 01
> A1 01 85 04 19 00 2A FF FF 15 00 26 FF FF 75 08
> 95 02 81 02 C0 05 01 09 80 A1 01 85 05 19 81 29
> 83 15 00 25 01 95 08 75 01 81 02 C0
>
> Starting dumping interrupt transfer stream
> with 1 minute timeout.
>
> 001:008:000:STREAM 1430239018.043838
> 01 00 00 04 00 00 00 00 00
>
> 001:008:000:STREAM 1430239018.095839
> 01 00 00 00 00 00 00 00 00
>
> 001:008:000:STREAM 1430239019.163851
> 01 00 00 16 00 00 00 00 00
>
> 001:008:000:STREAM 1430239019.211845
> 01 00 00 00 00 00 00 00 00
>
> 001:008:000:STREAM 1430239021.495878
> 01 00 00 07 00 00 00 00 00
>
> 001:008:000:STREAM 1430239021.551867
> 01 00 00 00 00 00 00 00 00
>
> 001:008:000:STREAM 1430239022.091878
> 01 00 00 09 00 00 00 00 00
>
> 001:008:000:STREAM 1430239022.143873
> 01 00 00 00 00 00 00 00 00
>
>
>
> On 29/04/15 01:28, Benjamin Tissoires wrote:
>> HI Jonathan,
>>
>> On Mon, Apr 27, 2015 at 8:56 PM, jono <[email protected]> wrote:
>>> Thanks, and apologies for the multiple reports. I've attached the
>>> output of dmesg using the latest kernel. Other relevant files can be
>>> found in the links in my original message, and at
>>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1448479
>>> Also this link may be of interest:
>>> http://www.thinkwiki.org/wiki/Installing_Kubuntu_15.04_on_a_Thinkpad_Helix_2nd_generation
>>
>> Thanks. Your dmesg and these links are useful information. The last
>> link says that the keyboard is a USB one, and that the report
>> descriptor is broken. This should not take too long to fix if that is
>> the case.
>>
>> Can you run as root:
>> #> for i in /sys/kernel/debug/hid/* ; do echo $i ; \
>> cat $i/rdesc ; done > /tmp/rdesc.txt
>>
>> It will log in the file /tmp/rdesc.txt all of the report descriptors
>> available on your computer, and we should be able to figure out what
>> is broken here if you send it to us.
>>
>> For the Wacom part, the links above suggest that there is also a
>> touchscreen plugged through i2c-hid, but I do not see one in your
>> logs. This may be the root of the problem if i2c-hid is unable to
>> handle both the touchscreen and the Wacom digitizer.
>>
>> Can you also provide the dmesg while appending to the kernel boot line
>> "i2c-hid.debug=1".
>>
>> We should see a little bit more what is happening.
>>
>> Cheers,
>> Benjamin
>>
>>> Best,
>>> Jonathan
>>>
>>> On Mon, Apr 27, 2015 at 7:34 PM, Benjamin Tissoires
>>> <[email protected]> wrote:
>>>> Hi Jono,
>>>>
>>>> On Sun, Apr 26, 2015 at 2:16 PM, jono <[email protected]> wrote:
>>>>> The keyboard that this machine comes works fine under grub and windows
>>>>> but not linux. The keyboard is a Lenovo Thinkpad Helix Ultrabook Pro
>>>>> which also has a touchpad, extra battery, usb port etc. The touchpad,
>>>>> battery, ports are all detected, but the keyboard doesn't work. A usb
>>>>> and bluetooth keyboard work fine.
>>>>>
>>>>> I currently have kernel 4.0.0- 040000- generic. It has been reported
>>>>> in a number of other forums, e.g.
>>>>>
>>>>> https:/ /bugs.launchpad .net/ubuntu/ +source/ xorg/+bug/ 1437051
>>>>> https://forums.lenovo.com/t5/Linux-Discussion/ThinkPad-Helix-keyboard-not-detected-in-Linux/td-p/2051477
>>>>>
>>>>> which all contain useful information and log files. I'm currently
>>>>> running on a fresh install of Ubuntu 15.04 with their "upstream
>>>>> kernel", but the problem exists in previous Ubuntu and kernel
>>>>> versions.
>>>>>
>>>>> "cat /proc/bus/input/devices" lists:
>>>>>
>>>>> I: Bus=0011 Vendor=0001 Product=0001 Version=ab54
>>>>> N: Name="AT Translated Set 2 keyboard"
>>>>> P: Phys=isa0060/serio0/input0
>>>>> S: Sysfs=/devices/platform/i8042/serio0/input/input3
>>>>> U: Uniq=
>>>>> H: Handlers=sysrq kbd event3
>>>>> B: PROP=0
>>>>> B: EV=120013
>>>>> B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
>>>>> B: MSC=10
>>>>> B: LED=7
>>>>>
>>>>> which appears to be it, The Xorg log lists
>>>>>
>>>>> [ 4.815] (II) config/udev: Adding input device AT Translated Set 2
>>>>> keyboard (/dev/input/event3)
>>>>> [ 4.815] (**) AT Translated Set 2 keyboard: Applying InputClass
>>>>> "evdev keyboard catchall"
>>>>> [ 4.815] (II) Using input driver 'evdev' for 'AT Translated Set 2
>>>>> keyboard'
>>>>> [ 4.815] (**) AT Translated Set 2 keyboard: always reports core events
>>>>> [ 4.815] (**) evdev: AT Translated Set 2 keyboard: Device:
>>>>> "/dev/input/event3"
>>>>> [ 4.815] (--) evdev: AT Translated Set 2 keyboard: Vendor 0x1 Product
>>>>> 0x1
>>>>> [ 4.815] (--) evdev: AT Translated Set 2 keyboard: Found keys
>>>>> [ 4.815] (II) evdev: AT Translated Set 2 keyboard: Configuring as
>>>>> keyboard
>>>>> [ 4.815] (**) Option "config_info"
>>>>> "udev:/sys/devices/platform/i8042/serio0/input/input3/event3"
>>>>> [ 4.815] (II) XINPUT: Adding extended input device "AT Translated
>>>>> Set 2 keyboard" (type: KEYBOARD, id 14)
>>>>> [ 4.815] (**) Option "xkb_rules" "evdev"
>>>>> [ 4.815] (**) Option "xkb_model" "pc105"
>>>>> [ 4.815] (**) Option "xkb_layout" "us"
>>>>>
>>>>>
>>>>>
>>>>> As an aside, the stylus is properly not recognized in this kernel, but
>>>>> works fine in previous kernels with "cat /proc/bus/input/devices"
>>>>> listing
>>>>>
>>>>> I: Bus=0018 Vendor=056a Product=0114 Version=0100
>>>>> N: Name="WCOM0009:00 056A:0114"
>>>>> P: Phys=
>>>>> S:
>>>>> Sysfs=/devices/pci0000:00/INT3433:00/i2c-8/i2c-WCOM0009:00/0018:056A:0114.0004/input/input9
>>>>> U: Uniq=
>>>>> H: Handlers=mouse2 event8
>>>>> B: PROP=0
>>>>> B: EV=1f
>>>>> B: KEY=c03 30001 0 0 0 0
>>>>> B: REL=3
>>>>> B: ABS=1000003
>>>>> B: MSC=10
>>>>>
>>>>> in kernel 3.12 for example, but the device is not listed in 3.16 or
>>>>> later (although possibly it is detected in earlier kernels).
>>>>>
>>>>
>>>> Hmm, you are here reporting 2 bugs at the same time, which will make
>>>> things difficult to track.
>>>>
>>>> Anyway, for being able to understand both problems, we will need the
>>>> dmesg output of the closest to upstream kernel you have.
>>>>
>>>> For the Wacom ISD bits, I am adding Jason to the thread. It looks
>>>> like your device is an I2C over HID one, so I guess it did not worked
>>>> before v3.11 or v3.12. In v3.16 I changed the way the Wacoms are
>>>> handled and now they are all handled through HID. But this apparently
>>>> broke your device, and I'll try to figure out what happened. We
>>>> normally handle unknown Wacoms properly, but there must be something
>>>> odd in your case that should hopefully show up in the dmesg output.
>>>>
>>>> Cheers,
>>>> Benjamin
>> --
>> 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