Installing Kubuntu 15.04 on a Thinkpad Helix 2nd generation

From ThinkWiki
Revision as of 12:15, 6 January 2018 by Owlman (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
NOTE!
Page obsolete: newer Kubuntu releases have mostly working or better support for hardware

Todo

FIXME
ThinkPad Ultrabook Pro Keyboard kernel problems
  • [Owlman] document and investigate keyboard
  • [Owlman] investigate ACPI events for hotkeys
  • [Owlman] Move working hardware to ThinkPad Helix hardware specifications and create device pages where necessary
  • [Owlman] Add information for Xorg drivers
  • [Maliit/Kubuntu (post vivid)] virtual keyboard for Qt/KDE
  • [Kubuntu (post vivid)] Xorg/libinput integration
    • package xserver-xorg-input-libinput
    • package systemsettings module for libinput ?


Hardware Status

Tablet/Slate

Processor

  • Intel Core M-5Y71 Processor (4M Cache, 1.2GHz), Turbo Boost 2.0 (2.9GHz), Intel vPro™ Technology

Graphics

  • Intel HD Graphics 5300 in processor, supports external digital monitor via micro HDMI; supports dual independent display; max. resolution: 1920x1080@60Hz (micro HDMI)

[ 1.718456] ACPI: Video Device [VID] (multi-head: yes rom: no post: no) [ 1.718804] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input6

  • 11.6" FHD (1920x1080) display
  • micro HDMI port

Input Devices

  • Multitouch screen (Atmel ATML1000 touch device on i2c bus(?) supported by hid-multitouch kernel module (working)
  • Wacom digitizer and pen (supported by i2c_hid kernel module - working? (not sure how to test))

sys/bus/hid/devices/0018:056A:0114.0002 -> ../../../devices/pci0000:00/INT3433:00/i2c-8/i2c-WCOM0009:00/0018:056A:0114.0002

  • Cameras
    • Front: 2.0-megapixel, 1080p resolution, fixed focus
    • Rear: 5.0-megapixel, 1080p resolution, auto focus

[ 2.168557] usb 1-1: New USB device found, idVendor=04f2, idProduct=b45b [ 2.168559] usb 1-1: New USB device strings: Mfr=3, Product=1, SerialNumber=2 [ 2.168561] usb 1-1: Product: Integrated Rear Camera [ 2.168563] usb 1-1: Manufacturer: Chicony Electronics Co.,Ltd. [ 2.168564] usb 1-1: SerialNumber: 0x0001

Other

  • Storage M.2 SSD: 128GB or 256GB (OPAL)
  • Audio support (not working)
    • Intel Smart Sound HD Audio, Realtek® ALC286-VC codec
      • stereo speakers, 0.7 watt x 2
      • digital microphones
      • combo audio/microphone jack
  • Wireless LAN Intel Dual Band Wireless-AC 7265 (working with iwlwifi driver) with Bluetooth® 4.0
  • Sierra EM7345
    • Wireless WAN (working? - listed in network interfaces but not tested yet (syslog reports no sim inserted))
    • GPS (status unknown)
  • Broadcom NFC smart card reader (status unknown)
  • Fingerprint reader (status unknown)
  • Sensors (status unknown)
    • Accelerometer
    • simple device orientation sensor?
    • hid sensor collection
  • Ports
    • USB 3.0 (working)
    • Micro SD (status unknown)
    • Micro HDMI (working)
    • Dock Connector (for keyboard - see below)
  • Power and Battery
    • Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0 (ACPI: Lid Switch [LID])
    • Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input1 (ACPI: Sleep Button [SLPB])
    • Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input2 (ACPI: Power Button [PWRB])
    • thermal LNXTHERM:00: registered as thermal_zone0 (ACPI: Thermal Zone [THM0] (50 C))
    • ACPI: Battery Slot [BAT0] (battery present)

ThinkPad Ultrabook Pro Keyboard (Part Number:4X30G93893)

  • Lenovo keyboard
FIXME
(works in grub, not in linux)
  • TrackPoint® pointing device (partially working: buttons scroll, not click. configuration issue in Xorg?)
  • Multitouch clickpad with 3+2 buttons (appears to be working fine: some actions need to be configured in system-settings)
    • Actions:
      • left click (one finger tap)
      • right click (two finger tap)
      • middle click (three finger tap: needs configuration)
      • scroll (two finger drag)
  • sound: Realtek USB 2.0 speakers (not working)
  • Ports:
    • USB 3.0 Port (works fine)
    • Mini DisplayPort (not working)
  • Power and battery
    • Integrated 4-cell battery (26Wh) (working)
    • Power port


Debugging

System Configuration

Testing with Kubuntu 15.04 (vivid) beta, using a custom kernel for testing. Kernel is compiled against the v4.0 tag from git://kernel.ubuntu.com/virgin/linux.git with the ubuntu packaging patches from http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-vivid/. I have also enabled the following debug options:

  • debian.master/config/config.common.ubuntu
 # CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_DEBUG=y
 # CONFIG_DEBUG_DRIVER is not set
+CONFIG_DEBUG_DRIVER=y
  • drivers/hid/hid-core.c:
+/* enable debugging: see Documentation/input/input.txt Section 3.1.1 */
+#define DEBUG
+

syslog errors

  • usb failed to peer. Probably not an issue as 1-3-port3 is the Realtek Semiconductor Corp USB 2.0 audio [0bda:4000] and 1-3-port4 is the Lenovo ITE Tech. Inc. Device(8595) keyboard [17ef:6067]. I'm guessing that neither of these need a USB 3.0 interface...
Apr 21 06:25:22 espace kernel: [122756.076147] device: '1-3-port3': device_add
Apr 21 06:25:22 espace kernel: [122756.076279] PM: Adding info for No Bus:1-3-port3
Apr 21 06:25:22 espace kernel: [122756.076285] usb: failed to peer 1-3-port3 and 2-3-port2 by location (1-3-port3:none) (2-3-port2:1-3-port2)
Apr 21 06:25:22 espace kernel: [122756.076287] usb 1-3-port3: failed to peer to 2-3-port2 (-16)
Apr 21 06:25:22 espace kernel: [122756.076293] device: '1-3-port4': device_add
Apr 21 06:25:22 espace kernel: [122756.076407] PM: Adding info for No Bus:1-3-port4
Apr 21 06:25:22 espace kernel: [122756.076411] usb: failed to peer 1-3-port4 and 2-3-port2 by location (1-3-port4:none) (2-3-port2:1-3-port2)
Apr 21 06:25:22 espace kernel: [122756.076413] usb 1-3-port4: failed to peer to 2-3-port2 (-16)
  • keyboard errors
[122757.604814] hid (null): usage index exceeded
[122757.605158] hid-generic 0003:17EF:6067.0016: usage index exceeded
[122757.605161] hid-generic 0003:17EF:6067.0016: item 0 2 2 2 parsing failed
[122757.605174] hid-generic: probe of 0003:17EF:6067.0016 failed with error -22
  • syslog entries related to ThinkPad Keyboard Pro unit docking event
Apr 21 06:25:24 espace kernel: [122757.407217] device: 'ep_00': device_add
Apr 21 06:25:24 espace kernel: [122757.407244] PM: Adding info for No Bus:ep_00
Apr 21 06:25:24 espace kernel: [122757.490654] usb 1-3.4: new full-speed USB device number 22 using xhci_hcd
Apr 21 06:25:24 espace kernel: [122757.600012] usb 1-3.4: New USB device found, idVendor=17ef, idProduct=6067
Apr 21 06:25:24 espace kernel: [122757.600018] usb 1-3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Apr 21 06:25:24 espace kernel: [122757.600021] usb 1-3.4: Product: ITE Device(8595)
Apr 21 06:25:24 espace kernel: [122757.600023] usb 1-3.4: Manufacturer: ITE Tech. Inc.
Apr 21 06:25:24 espace kernel: [122757.600030] device: '1-3.4': device_add
Apr 21 06:25:24 espace kernel: [122757.600072] bus: 'usb': add device 1-3.4
Apr 21 06:25:24 espace kernel: [122757.600089] PM: Adding info for usb:1-3.4
Apr 21 06:25:24 espace kernel: [122757.600266] bus: 'usb': driver_probe_device: matched device 1-3.4 with driver usb
Apr 21 06:25:24 espace kernel: [122757.600270] bus: 'usb': really_probe: probing driver usb with device 1-3.4
Apr 21 06:25:24 espace kernel: [122757.600276] usb 1-3.4: no default pinctrl state
Apr 21 06:25:24 espace kernel: [122757.601325] device: '1-3.4:1.0': device_add
Apr 21 06:25:24 espace kernel: [122757.601340] bus: 'usb': add device 1-3.4:1.0
Apr 21 06:25:24 espace kernel: [122757.601352] PM: Adding info for usb:1-3.4:1.0
Apr 21 06:25:24 espace kernel: [122757.601386] bus: 'usb': driver_probe_device: matched device 1-3.4:1.0 with driver usbhid
Apr 21 06:25:24 espace kernel: [122757.601389] bus: 'usb': really_probe: probing driver usbhid with device 1-3.4:1.0
Apr 21 06:25:24 espace kernel: [122757.601393] usbhid 1-3.4:1.0: no default pinctrl state
Apr 21 06:25:24 espace kernel: [122757.604814] hid (null): usage index exceeded
Apr 21 06:25:24 espace kernel: [122757.604892] device: '0003:17EF:6067.0016': device_add
Apr 21 06:25:24 espace kernel: [122757.604904] bus: 'hid': add device 0003:17EF:6067.0016
Apr 21 06:25:24 espace kernel: [122757.604920] PM: Adding info for hid:0003:17EF:6067.0016
Apr 21 06:25:24 espace kernel: [122757.604954] bus: 'hid': driver_probe_device: matched device 0003:17EF:6067.0016 with driver hid-generic
Apr 21 06:25:24 espace kernel: [122757.604956] bus: 'hid': really_probe: probing driver hid-generic with device 0003:17EF:6067.0016
Apr 21 06:25:24 espace kernel: [122757.604961] hid-generic 0003:17EF:6067.0016: no default pinctrl state
Apr 21 06:25:24 espace kernel: [122757.605158] hid-generic 0003:17EF:6067.0016: usage index exceeded
Apr 21 06:25:24 espace kernel: [122757.605161] hid-generic 0003:17EF:6067.0016: item 0 2 2 2 parsing failed
Apr 21 06:25:24 espace kernel: [122757.605174] hid-generic: probe of 0003:17EF:6067.0016 failed with error -22
Apr 21 06:25:24 espace kernel: [122757.605181] driver: 'usbhid': driver_bound: bound to device '1-3.4:1.0'
Apr 21 06:25:24 espace kernel: [122757.605187] bus: 'usb': really_probe: bound device 1-3.4:1.0 to driver usbhid
Apr 21 06:25:24 espace kernel: [122757.605193] device: 'ep_81': device_add
Apr 21 06:25:24 espace kernel: [122757.605215] PM: Adding info for No Bus:ep_81
Apr 21 06:25:24 espace kernel: [122757.605217] device: '1-3.4:1.1': device_add
Apr 21 06:25:24 espace kernel: [122757.605228] bus: 'usb': add device 1-3.4:1.1
Apr 21 06:25:24 espace kernel: [122757.605238] PM: Adding info for usb:1-3.4:1.1
Apr 21 06:25:24 espace kernel: [122757.607677] bus: 'usb': driver_probe_device: matched device 1-3.4:1.1 with driver usbhid
Apr 21 06:25:24 espace kernel: [122757.607682] bus: 'usb': really_probe: probing driver usbhid with device 1-3.4:1.1
Apr 21 06:25:24 espace kernel: [122757.607688] usbhid 1-3.4:1.1: no default pinctrl state
Apr 21 06:25:24 espace kernel: [122757.610323] device: '0003:17EF:6067.0017': device_add
Apr 21 06:25:24 espace kernel: [122757.610338] bus: 'hid': add device 0003:17EF:6067.0017
Apr 21 06:25:24 espace kernel: [122757.610364] PM: Adding info for hid:0003:17EF:6067.0017
Apr 21 06:25:24 espace kernel: [122757.610398] bus: 'hid': driver_probe_device: matched device 0003:17EF:6067.0017 with driver hid-generic
Apr 21 06:25:24 espace kernel: [122757.610402] bus: 'hid': really_probe: probing driver hid-generic with device 0003:17EF:6067.0017
Apr 21 06:25:24 espace kernel: [122757.610407] hid-generic 0003:17EF:6067.0017: no default pinctrl state
Apr 21 06:25:24 espace kernel: [122757.610602] device: 'input26': device_add
Apr 21 06:25:24 espace kernel: [122757.610654] PM: Adding info for No Bus:input26
Apr 21 06:25:24 espace kernel: [122757.610688] input: ITE Tech. Inc. ITE Device(8595) as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4/1-3.4:1.1/0003:17EF:6067.0017/input/input26
Apr 21 06:25:24 espace mtp-probe: checking bus 1, device 21: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3"
Apr 21 06:25:24 espace mtp-probe: checking bus 1, device 22: "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4"
Apr 21 06:25:24 espace mtp-probe: bus: 1, device: 21 was not an MTP device
Apr 21 06:25:24 espace mtp-probe: bus: 1, device: 22 was not an MTP device
Apr 21 06:25:24 espace kernel: [122757.666287] device: 'event15': device_add
Apr 21 06:25:24 espace kernel: [122757.666315] PM: Adding info for No Bus:event15
Apr 21 06:25:24 espace kernel: [122757.666469] device: 'hiddev1': device_add
Apr 21 06:25:24 espace kernel: [122757.666498] PM: Adding info for No Bus:hiddev1
Apr 21 06:25:24 espace kernel: [122757.666561] device: 'hidraw1': device_add
Apr 21 06:25:24 espace kernel: [122757.666582] PM: Adding info for No Bus:hidraw1
Apr 21 06:25:24 espace kernel: [122757.666634] hid-generic 0003:17EF:6067.0017: input,hiddev0,hidraw1: USB HID v1.10 Device [ITE Tech. Inc. ITE Device(8595)] on usb-0000:00:14.0-3.4/input1
Apr 21 06:25:24 espace kernel: [122757.666638] driver: 'hid-generic': driver_bound: bound to device '0003:17EF:6067.0017'
Apr 21 06:25:24 espace kernel: [122757.666643] bus: 'hid': really_probe: bound device 0003:17EF:6067.0017 to driver hid-generic
Apr 21 06:25:24 espace kernel: [122757.666648] driver: 'usbhid': driver_bound: bound to device '1-3.4:1.1'
Apr 21 06:25:24 espace kernel: [122757.666651] bus: 'usb': really_probe: bound device 1-3.4:1.1 to driver usbhid
Apr 21 06:25:24 espace kernel: [122757.666655] device: 'ep_82': device_add
Apr 21 06:25:24 espace kernel: [122757.666674] PM: Adding info for No Bus:ep_82
Apr 21 06:25:24 espace kernel: [122757.666677] device: 'ep_03': device_add
Apr 21 06:25:24 espace kernel: [122757.666694] PM: Adding info for No Bus:ep_03
Apr 21 06:25:24 espace kernel: [122757.666697] driver: 'usb': driver_bound: bound to device '1-3.4'
Apr 21 06:25:24 espace kernel: [122757.666700] bus: 'usb': really_probe: bound device 1-3.4 to driver usb
Apr 21 06:25:24 espace kernel: [122757.666712] device: 'ep_00': device_add
Apr 21 06:25:24 espace kernel: [122757.666736] PM: Adding info for No Bus:ep_00
Apr 21 06:25:24 espace kernel: [122758.098648] device: 'ep_07': device_add
Apr 21 06:25:24 espace kernel: [122758.098697] PM: Adding info for No Bus:ep_07
Apr 21 06:25:24 espace pulseaudio[1478]: [pulseaudio] alsa-util.c: Unable to load mixer: Invalid argument
Apr 21 06:25:24 espace kernel: [122758.109019] device: 'ep_07': device_unregister
Apr 21 06:25:24 espace kernel: [122758.109059] PM: Removing info for No Bus:ep_07

Device information for keyboard HID

$ sudo lsusb -d 17ef:
Bus 001 Device 008: ID 17ef:6067 Lenovo
$ sudo lsusb -vs 1:8

Bus 001 Device 008: ID 17ef:6067 Lenovo 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x17ef Lenovo
  idProduct          0x6067 
  bcdDevice            0.00
  iManufacturer           1 ITE Tech. Inc.
  iProduct                2 ITE Device(8595)
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           66
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self 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      1 Keyboard
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     188
         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               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              1 ITE Tech. Inc.
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     160
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
Device Status:     0x0001
  Self Powered
  • dumps of hid descriptor
$ sudo usbhid-dump -a1:8
001:008:001:DESCRIPTOR         1430238875.097778
 06 A0 FF 09 01 A1 01 85 02 09 01 A1 00 05 09 19
 01 29 05 15 00 25 01 75 01 95 05 81 02 95 03 81
 01 75 08 95 03 81 03 05 0C 0A 38 02 95 01 81 06
 C0 C0 05 0C 09 01 A1 01 85 03 15 00 25 01 75 01
 95 10 0A 2E 02 09 E2 09 EA 09 E9 09 01 09 70 09
 6F 09 01 09 01 09 01 09 01 09 01 09 01 09 01 09
 01 0A 2D 02 81 02 75 01 95 08 81 03 C0 05 01 09
 0C A1 01 85 08 15 00 25 01 09 C6 75 01 95 01 81
 06 75 07 81 03 C0 06 A0 FF 09 01 A1 01 85 09 09
 01 75 08 95 02 91 82 09 02 75 08 95 02 81 82 C0

001:008:000:DESCRIPTOR         1430238875.100417
 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
  • receiving keyboard events from interface 0! Keypress events for a,s,d,f :)
$ 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
  • I haven't been able to generate events on interface 1
$ sudo usbhid-dump -a1:8 -i1 -e all
001:008:001:DESCRIPTOR         1430239252.765753
 06 A0 FF 09 01 A1 01 85 02 09 01 A1 00 05 09 19
 01 29 05 15 00 25 01 75 01 95 05 81 02 95 03 81
 01 75 08 95 03 81 03 05 0C 0A 38 02 95 01 81 06
 C0 C0 05 0C 09 01 A1 01 85 03 15 00 25 01 75 01
 95 10 0A 2E 02 09 E2 09 EA 09 E9 09 01 09 70 09
 6F 09 01 09 01 09 01 09 01 09 01 09 01 09 01 09
 01 0A 2D 02 81 02 75 01 95 08 81 03 C0 05 01 09
 0C A1 01 85 08 15 00 25 01 09 C6 75 01 95 01 81
 06 75 07 81 03 C0 06 A0 FF 09 01 A1 01 85 09 09
 01 75 08 95 02 91 82 09 02 75 08 95 02 81 82 C0

Starting dumping interrupt transfer stream
with 1 minute timeout.

  • dump of HID descriptors
$ sudo usbhid-dump -a1:8 | grep -v : | xxd -r -p | hidrd-convert -o spec
Usage Page (FFA0h),                 ; FFA0h, vendor-defined
Usage (01h),
Collection (Application),
    Report ID (2),
    Usage (01h),
    Collection (Physical),
        Usage Page (Button),        ; Button (09h)
        Usage Minimum (01h),
        Usage Maximum (05h),
        Logical Minimum (0),
        Logical Maximum (1),
        Report Size (1),
        Report Count (5),
        Input (Variable),
        Report Count (3),
        Input (Constant),
        Report Size (8),
        Report Count (3),
        Input (Constant, Variable),
        Usage Page (Consumer),      ; Consumer (0Ch)
        Usage (AC Pan),             ; AC pan (0238h, linear control)
        Report Count (1),
        Input (Variable, Relative),
    End Collection,
End Collection,
Usage Page (Consumer),              ; Consumer (0Ch)
Usage (Consumer Control),           ; Consumer control (01h, application collection)
Collection (Application),
    Report ID (3),
    Logical Minimum (0),
    Logical Maximum (1),
    Report Size (1),
    Report Count (16),
    Usage (AC Zoom Out),            ; AC zoom out (022Eh, selector)
    Usage (Mute),                   ; Mute (E2h, on/off control)
    Usage (Volume Dec),             ; Volume decrement (EAh, re-trigger control)
    Usage (Volume Inc),             ; Volume increment (E9h, re-trigger control)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (70h),
    Usage (6Fh),
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (AC Zoom In),             ; AC zoom in (022Dh, selector)
    Input (Variable),
    Report Size (1),
    Report Count (8),
    Input (Constant, Variable),
End Collection,
Usage Page (Desktop),               ; Generic desktop controls (01h)
Usage (0Ch),
Collection (Application),
    Report ID (8),
    Logical Minimum (0),
    Logical Maximum (1),
    Usage (C6h),
    Report Size (1),
    Report Count (1),
    Input (Variable, Relative),
    Report Size (7),
    Input (Constant, Variable),
End Collection,
Usage Page (FFA0h),                 ; FFA0h, vendor-defined
Usage (01h),
Collection (Application),
    Report ID (9),
    Usage (01h),
    Report Size (8),
    Report Count (2),
    Output (Variable, Volatile),
    Usage (02h),
    Report Size (8),
    Report Count (2),
    Input (Variable, Bit7),
End Collection,
Usage Page (FF85h),                 ; FF85h, vendor-defined
Usage (95h),
Collection (Application),
    Report ID (90),
    Usage (01h),
    Logical Minimum (0),
    Logical Maximum (255),
    Report Size (8),
    Report Count (16),
    Feature,
End Collection,
Usage Page (Desktop),               ; Generic desktop controls (01h)
Usage (Keyboard),                   ; Keyboard (06h, application collection)
Collection (Application),
    Report ID (1),
    Report Size (1),
    Report Count (8),
    Usage Page (Keyboard),          ; Keyboard/keypad (07h)
    Usage Minimum (KB Leftcontrol), ; Keyboard left control (E0h, dynamic value)
    Usage Maximum (KB Right GUI),   ; Keyboard right GUI (E7h, dynamic value)
    Logical Minimum (0),
    Logical Maximum (1),
    Input (Variable),
    Report Count (1),
    Report Size (8),
    Input (Constant, Variable),
    Report Count (5),
    Report Size (1),
    Usage Page (LED),               ; LEDs (08h)
    Usage Minimum (01h),
    Usage Maximum (05h),
    Output (Variable),
    Report Count (1),
    Report Size (3),
    Output (Constant, Variable),
    Report Count (6),
    Report Size (8),
    Logical Minimum (0),
    Logical Maximum (255),
    Usage Page (Keyboard),          ; Keyboard/keypad (07h)
    Usage Minimum (None),           ; No event (00h, selector)
    Usage Maximum (FFh),
    Input,
End Collection,
Usage Page (Consumer),              ; Consumer (0Ch)
Usage (Consumer Control),           ; Consumer control (01h, application collection)
Collection (Application),
    Report ID (3),
    Usage Minimum (00h),
    Usage Maximum (AC Format),      ; AC format (023Ch, selector)
    Logical Minimum (0),
    Logical Maximum (572),
    Report Size (16),
    Report Count (1),
    Input,
End Collection,
Usage Page (Desktop),               ; Generic desktop controls (01h)
Usage (0Ch),
Collection (Application),
    Report ID (2),
    Logical Minimum (0),
    Logical Maximum (1),
    Usage (C6h),
    Report Count (1),
    Report Size (1),
    Input (Variable, Relative),
    Report Size (7),
    Input (Constant, Variable),
End Collection,
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,
Usage Page (Desktop),               ; Generic desktop controls (01h)
Usage (Sys Control),                ; System control (80h, application collection)
Collection (Application),
    Report ID (5),
    Usage Minimum (Sys Power Down), ; System power down (81h, one-shot control)
    Usage Maximum (Sys Wake Up),    ; System wake up (83h, one-shot control)
    Logical Minimum (0),
    Logical Maximum (1),
    Report Count (8),
    Report Size (1),
    Input (Variable),
End Collection
  • interface 0 only
$ sudo usbhid-dump -a1:8 -i0| grep -v : | xxd -r -p | hidrd-convert -o spec
Usage Page (FF85h),                 ; FF85h, vendor-defined
Usage (95h),
Collection (Application),
    Report ID (90),
    Usage (01h),
    Logical Minimum (0),
    Logical Maximum (255),
    Report Size (8),
    Report Count (16),
    Feature,
End Collection,
Usage Page (Desktop),               ; Generic desktop controls (01h)
Usage (Keyboard),                   ; Keyboard (06h, application collection)
Collection (Application),
    Report ID (1),
    Report Size (1),
    Report Count (8),
    Usage Page (Keyboard),          ; Keyboard/keypad (07h)
    Usage Minimum (KB Leftcontrol), ; Keyboard left control (E0h, dynamic value)
    Usage Maximum (KB Right GUI),   ; Keyboard right GUI (E7h, dynamic value)
    Logical Minimum (0),
    Logical Maximum (1),
    Input (Variable),
    Report Count (1),
    Report Size (8),
    Input (Constant, Variable),
    Report Count (5),
    Report Size (1),
    Usage Page (LED),               ; LEDs (08h)
    Usage Minimum (01h),
    Usage Maximum (05h),
    Output (Variable),
    Report Count (1),
    Report Size (3),
    Output (Constant, Variable),
    Report Count (6),
    Report Size (8),
    Logical Minimum (0),
    Logical Maximum (255),
    Usage Page (Keyboard),          ; Keyboard/keypad (07h)
    Usage Minimum (None),           ; No event (00h, selector)
    Usage Maximum (FFh),
    Input,
End Collection,
Usage Page (Consumer),              ; Consumer (0Ch)
Usage (Consumer Control),           ; Consumer control (01h, application collection)
Collection (Application),
    Report ID (3),
    Usage Minimum (00h),
    Usage Maximum (AC Format),      ; AC format (023Ch, selector)
    Logical Minimum (0),
    Logical Maximum (572),
    Report Size (16),
    Report Count (1),
    Input,
End Collection,
Usage Page (Desktop),               ; Generic desktop controls (01h)
Usage (0Ch),
Collection (Application),
    Report ID (2),
    Logical Minimum (0),
    Logical Maximum (1),
    Usage (C6h),
    Report Count (1),
    Report Size (1),
    Input (Variable, Relative),
    Report Size (7),
    Input (Constant, Variable),
End Collection,
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,
Usage Page (Desktop),               ; Generic desktop controls (01h)
Usage (Sys Control),                ; System control (80h, application collection)
Collection (Application),
    Report ID (5),
    Usage Minimum (Sys Power Down), ; System power down (81h, one-shot control)
    Usage Maximum (Sys Wake Up),    ; System wake up (83h, one-shot control)
    Logical Minimum (0),
    Logical Maximum (1),
    Report Count (8),
    Report Size (1),
    Input (Variable),
End Collection
  • interface 1 only
$ sudo usbhid-dump -a1:8 -i1| grep -v : | xxd -r -p | hidrd-convert -o spec 
Usage Page (FFA0h),                 ; FFA0h, vendor-defined
Usage (01h),
Collection (Application),
    Report ID (2),
    Usage (01h),
    Collection (Physical),
        Usage Page (Button),        ; Button (09h)
        Usage Minimum (01h),
        Usage Maximum (05h),
        Logical Minimum (0),
        Logical Maximum (1),
        Report Size (1),
        Report Count (5),
        Input (Variable),
        Report Count (3),
        Input (Constant),
        Report Size (8),
        Report Count (3),
        Input (Constant, Variable),
        Usage Page (Consumer),      ; Consumer (0Ch)
        Usage (AC Pan),             ; AC pan (0238h, linear control)
        Report Count (1),
        Input (Variable, Relative),
    End Collection,
End Collection,
Usage Page (Consumer),              ; Consumer (0Ch)
Usage (Consumer Control),           ; Consumer control (01h, application collection)
Collection (Application),
    Report ID (3),
    Logical Minimum (0),
    Logical Maximum (1),
    Report Size (1),
    Report Count (16),
    Usage (AC Zoom Out),            ; AC zoom out (022Eh, selector)
    Usage (Mute),                   ; Mute (E2h, on/off control)
    Usage (Volume Dec),             ; Volume decrement (EAh, re-trigger control)
    Usage (Volume Inc),             ; Volume increment (E9h, re-trigger control)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (70h),
    Usage (6Fh),
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (Consumer Control),       ; Consumer control (01h, application collection)
    Usage (AC Zoom In),             ; AC zoom in (022Dh, selector)
    Input (Variable),
    Report Size (1),
    Report Count (8),
    Input (Constant, Variable),
End Collection,
Usage Page (Desktop),               ; Generic desktop controls (01h)
Usage (0Ch),
Collection (Application),
    Report ID (8),
    Logical Minimum (0),
    Logical Maximum (1),
    Usage (C6h),
    Report Size (1),
    Report Count (1),
    Input (Variable, Relative),
    Report Size (7),
    Input (Constant, Variable),
End Collection,
Usage Page (FFA0h),                 ; FFA0h, vendor-defined
Usage (01h),
Collection (Application),
    Report ID (9),
    Usage (01h),
    Report Size (8),
    Report Count (2),
    Output (Variable, Volatile),
    Usage (02h),
    Report Size (8),
    Report Count (2),
    Input (Variable, Bit7),
End Collection</endwiki>

=== debugfs/hid info ===
 <nowiki>$ sudo ls -l /sys/kernel/debug/hid
total 0
drwxr-xr-x 2 root root 0 Apr 26 08:58 0003:17EF:6067.000D
drwxr-xr-x 2 root root 0 Apr 26 09:06 0003:17EF:6067.000F
drwxr-xr-x 2 root root 0 Apr 22 16:41 0018:03EB:8A29.0001
drwxr-xr-x 2 root root 0 Apr 22 16:41 0018:056A:0114.0002
drwxr-xr-x 2 root root 0 Apr 22 16:41 0018:2047:0855.0003

$ sudo cat /sys/kernel/debug/hid/0003:17EF:6067.000F/rdesc
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

$ sudo cat /sys/kernel/debug/hid/0003:17EF:6067.000D/rdesc
06 a0 ff 09 01 a1 01 85 02 09 01 a1 00 05 09 19 01 29 05 15 00 25 01 75 01 95 05 81 02 95 03 81 01 75 08 95 03 81 03 05 0c 0a 38 02 95 01 81 06 c0 c0 05 0c 09 01 a1 01 85 03 15 00 25 01 75 01 95 10 0a 2e 02 09 e2 09 ea 09 e9 09 01 09 70 09 6f 09 01 09 01 09 01 09 01 09 01 09 01 09 01 09 01 0a 2d 02 81 02 75 01 95 08 81 03 c0 05 01 09 0c a1 01 85 08 15 00 25 01 09 c6 75 01 95 01 81 06 75 07 81 03 c0 06 a0 ff 09 01 a1 01 85 09 09 01 75 08 95 02 91 82 09 02 75 08 95 02 81 82 c0                                                 
                                                                                                                                                                                
  INPUT(2)[INPUT]                                                                                                                                                               
    Field(0)                                                                                                                                                                    
      Physical(ffa0.0001)                                                                                                                                                       
      Application(ffa0.0001)                                                                                                                                                    
      Usage(5)                                                                                                                                                                  
        Button.0001                                                                                                                                                             
        Button.0002                                                                                                                                                             
        Button.0003                                                                                                                                                             
        Button.0004                                                                                                                                                             
        Button.0005                                                                                                                                                             
      Logical Minimum(0)                                                                                                                                                        
      Logical Maximum(1)                                                                                                                                                        
      Report Size(1)                                                                                                                                                            
      Report Count(5)                                                                                                                                                           
      Report Offset(0)                                                                                                                                                          
      Flags( Variable Absolute )                                                                                                                                                
    Field(1)                                                                                                                                                                    
      Physical(ffa0.0001)                                                                                                                                                       
      Application(ffa0.0001)                                                                                                                                                    
      Usage(1)                                                                                                                                                                  
        Consumer.HorizontalWheel                                                                                                                                                
      Logical Minimum(0)                                                                                                                                                        
      Logical Maximum(1)                                                                                                                                                        
      Report Size(8)                                                                                                                                                            
      Report Count(1)
      Report Offset(32)
      Flags( Variable Relative )
  INPUT(3)[INPUT]
    Field(0)
      Application(Consumer.0001)
      Usage(16)
        Consumer.022e
        Consumer.00e2
        Consumer.00ea
        Consumer.00e9
        Consumer.0001
        Consumer.0070
        Consumer.006f
        Consumer.0001
        Consumer.0001
        Consumer.0001
        Consumer.0001
        Consumer.0001
        Consumer.0001
        Consumer.0001
        Consumer.0001
        Consumer.022d
      Logical Minimum(0)
      Logical Maximum(1)
      Report Size(1)
      Report Count(16)
      Report Offset(0)
      Flags( Variable Absolute )
  INPUT(8)[INPUT]
    Field(0)
      Application(GenericDesktop.000c)
      Usage(1)
        GenericDesktop.00c6
      Logical Minimum(0)
      Logical Maximum(1)
      Report Size(1)
      Report Count(1)
      Report Offset(0)
      Flags( Variable Relative )
  INPUT(9)[INPUT]
    Field(0)
      Application(ffa0.0001)
      Usage(2)
        ffa0.0002
        ffa0.0002
      Logical Minimum(0)
      Logical Maximum(1)
      Report Size(8)
      Report Count(2)
      Report Offset(0)
      Flags( Variable Absolute Volatile )
  OUTPUT(9)[OUTPUT]
    Field(0)
      Application(ffa0.0001)
      Usage(2)
        ffa0.0001
        ffa0.0001
      Logical Minimum(0)
      Logical Maximum(1)
      Report Size(8)
      Report Count(2)
      Report Offset(0)
      Flags( Variable Absolute Volatile )

Button.0001 ---> Key.Btn0
Button.0002 ---> Key.Btn1
Button.0003 ---> Key.Btn2
Button.0004 ---> Key.Btn3
Button.0005 ---> Key.Btn4
Consumer.HorizontalWheel ---> Relative.HWheel
Consumer.022e ---> Key.?
Consumer.00e2 ---> Key.Mute
Consumer.00ea ---> Key.VolumeDown
Consumer.00e9 ---> Key.VolumeUp
Consumer.0001 ---> Key.Unknown
Consumer.0070 ---> Key.BrightnessDown
Consumer.006f ---> Key.BrightnessUp
Consumer.0001 ---> Key.Unknown
Consumer.0001 ---> Key.Unknown
Consumer.0001 ---> Key.Unknown
Consumer.0001 ---> Key.Unknown
Consumer.0001 ---> Key.Unknown
Consumer.0001 ---> Key.Unknown
Consumer.0001 ---> Key.Unknown
Consumer.0001 ---> Key.Unknown
Consumer.022d ---> Key.?
GenericDesktop.00c6 ---> Key.Btn5
ffa0.0002 ---> Absolute.Misc
ffa0.0002 ---> Absolute.?
ffa0.0001 ---> Sync.Report
ffa0.0001 ---> Sync.Report

Bus and Device Listing

Tablet  pci@0000:__00:__00.0  Host bridge [0600]: Intel Corporation Broadwell-U Host Bridge -OPI [8086:1604]
  "              |    |_02.0  VGA compatible controller [0300]: Intel Corporation Broadwell-U Integrated Graphics [8086:161e] 
  "              |    |_03.0  Audio controller [0403]: Intel Corporation Broadwell-U Audio Controller [8086:160c]
  "              |    |_04.0  Signal processing controller [1180]: Intel Corporation Broadwell-U Camarillo Device [8086:1603]
  "              |    |_14.0  USB controller [0c03]: Intel Corporation Wildcat Point-LP USB xHCI Controller [8086:9cb1]
  "              |    |        |_USB bus 01
  "              |    |        |  |_Port 1: Dev 1: USB 2.0 root hub
  "              |    |        |  |_Port 1: Dev 2: Chicony Electronics Integrated rear camera [04f2:b45b]
  "              |    |        |  |_Port 2: Tablet USB port (USB 2.0 mode)
Ultrabook Pro Keyboard|        |  |_Port 3: VIA_Labs__Inc._USB2.0_Hub [2109:2811]
   "             |    |        |  |    |_Port 1: USB port (USB 2.0 mode)
   "             |    |        |  |    |_Port 2: 
   "             |    |        |  |    |_Port 3: Realtek Semiconductor Corp USB 2.0 audio [0bda:4000]
   "             |    |        |  |    |_Port 4: Lenovo ITE Tech. Inc. Device(8595) [17ef:6067]
   "             |    |        |  |         |_1.0 [hid 0003:17EF:6067.000F]
   "             |    |        |  |         |_1.1 Keyboard [hid 0003:17EF:6067.000D]
Tablet           |    |        |  |_Port 4: Sierra Wireless, Inc. EM7345 4G LTE modem [1199:a001]
  "              |    |        |  |_Port 5:
  "              |    |        |  |_Port 6:
  "              |    |        |  |_Port 7: Intel Corp Bluetooth [8087:0a2a]
  "              |    |        |  |_Port 8: 04f2:b45c Chicony Electronics Co., Ltd camera
  "              |    |        |_USB bus 02
  "              |    |           |_Port 1: Dev 1: USB 3.0 root hub
  "              |    |           |_Port 2: Tablet USB port (USB 3.0 mode)
Ultrabook Pro Keyboard|           |_Port 3: Dev 6: VIA Labs USB 3.0 hub [2109:8110] 
   "             |    |                |_Port 1: USB port (USB 3.0 mode)
Tablet           |    |_16.0  Communication controller: [0780] Intel Corporation Wildcat Point-LP MEI Controller #1 [8086:9cba]
  "              |    |_1c.0  PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #1 [8086:9c90]
  "              |    |       |_  maps to pci@0000:02:00.0?
  "              |    |_1c.1  PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #3 [8086:9c94]
  "              |    |       |_  maps to pci@0000:06:00.0?
  "              |    |_1f.0  ISA bridge [0601]: Intel Corporation Wildcat Point-LP LPC Controller [8086:9cc7]
  "              |    |_1f.2  SATA controller [0106]: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] [8086:9c83]
  "              |    |_1f.3  SMBus [0c05]: Intel Corporation Wildcat Point-LP SMBus Controller [8086:9ca2]
  "              |    |_1f.6  Signal processing controller [1180]: Intel Corporation Wildcat Point-LP Thermal Management Controller [8086:9ca4]
  "              |_02:__00.0
  "              |_06:__00.0  Network controller [0280]: Intel Corporation Wireless 7265 [8086:095a]