← Back to team overview

kernel-packages team mailing list archive

[Bug 1437759] Re: [Lenovo Miix] Synaptic/ITE Tech touchpad (06cb:a001) cannot be configured by hid-rmi

 

Okay, so I managed to come up with a workaround(ish) thing for this
particular problem; you need to reload the hid-multitouch kernel module,
and then re-enable the device using xinput.

Example script


#!/bin/bash
# Touchpad / Touchscreen Fix Script
# 2016.05.24
# Mark C. Roduner, Jr.

# If Run as root; fix all users, otherwise fix the current user

SCRIPT=$0

#Space separated list of kernel modules to reload
MODS_RELOAD="hid-multitouch"

get_users() {
        #echo ":1 mroduner"
        w -sh | sed -r "s/([^ ]+)[^:]+(:[0-9.]+).*/\2 \1/" | sort | uniq
}

execute_fix() {
        export DISPLAY="$1"
        sudo -iu "$2" $SCRIPT
}

get_core_regex() {
        xinput --list  --long | grep "Virtual core" | sed -r 's/.*id\=([0-9]+).*/\\b\1\\b/' | sort | uniq | tr '\n' '|'
}

get_all_pointers() {
        xinput --list  --long | grep XIButtonClass | sed -r "s/.*: ([0-9]+).*/\1/" | sort | uniq | tr '\n' ' '
}

get_real_pointers() {
        EXPR="`get_core_regex` +"
        get_all_pointers | sed -r "s/$EXPR/ /g"
}


if [ `id -u` -ne 0 ]; then
        echo "Enabling devices for ${USERNAME}${DISPLAY}... "
        for PTR in `get_real_pointers`; do
                xinput set-prop $PTR "Device Enabled" 1 
        done
        exit 0
fi

echo -n Reloading Modules: 
for MOD in $MODS_RELOAD; do
        echo -n " $MOD"
        rmmod "$MOD" && modprobe "$MOD"
done

echo -e "\nFixing Input Devices..."
CDISP="$DISPLAY"
get_users \
| while read USER; do
         execute_fix $USER;
done
export DISPLAY="$CDISP"
echo -e "\nDone."

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1437759

Title:
  [Lenovo Miix] Synaptic/ITE Tech touchpad (06cb:a001) cannot be
  configured by hid-rmi

Status in linux package in Ubuntu:
  Confirmed

Bug description:
  Problem:
  The touchpad in the dock of the Lenovo Miix 2 11 tablet does not work. It is handled by hid-rmi, which fails to configure the device:

  kernel: [ 3007.388388] input: ITE Tech. Inc. ITE Device(8595) as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3/1-3.3:1.0/0003:06CB:A001.0008/input/input18
  kernel: [ 3007.442088] hid-generic 0003:06CB:A001.0008: input,hiddev0,hidraw2: USB HID v1.10 Keyboard [ITE Tech. Inc. ITE Device(8595)] on usb-0000:00:14.0-3.3/input0
  kernel: [ 3007.521067] hid-rmi 0003:06CB:A001.0009: failed to write hid report (-38)
  kernel: [ 3007.521074] hid-rmi 0003:06CB:A001.0009: rmi_set_page: set page failed: -38.
  kernel: [ 3007.521077] hid-rmi 0003:06CB:A001.0009: failed to set page select to 0.
  kernel: [ 3007.523194] input: ITE Tech. Inc. ITE Device(8595) as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.3/1-3.3:1.1/0003:06CB:A001.0009/input/input19
  kernel: [ 3007.523546] hid-rmi 0003:06CB:A001.0009: input,hiddev0,hidraw3: USB HID v1.10 Pointer [ITE Tech. Inc. ITE Device(8595)] on usb-0000:00:14.0-3.3/input1
  kernel: [ 3007.523552] hid-rmi 0003:06CB:A001.0009: Device failed to be properly configured

  
  Ubuntu 15.04 Beta (but same problem with 14.10)
  Kernel: Linux miix 3.19.0-10-generic #10-Ubuntu SMP Mon Mar 23 16:16:45 UTC 2015 i686 i686 i686 GNU/Linux

  
  The Keyboard (which works) and the touchpad are connected as one USB device with two interfaces:

  Bus 001 Device 015: ID 06cb:a001 Synaptics, Inc. 
  Device Descriptor:
    bLength                18
    bDescriptorType         1
    bcdUSB               2.00
    bDeviceClass            0 (Defined at Interface level)
    bDeviceSubClass         0 
    bDeviceProtocol         0 
    bMaxPacketSize0        64
    idVendor           0x06cb Synaptics, Inc.
    idProduct          0xa001 
    bcdDevice            0.03
    iManufacturer           1 ITE Tech. Inc.
    iProduct                2 ITE Device(8595)
    iSerial                 0 
    bNumConfigurations      1
    Configuration Descriptor:
      bLength                 9
      bDescriptorType         2
      wTotalLength           59
      bNumInterfaces          2
      bConfigurationValue     1
      iConfiguration          0 
      bmAttributes         0xa0
        (Bus 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     163
           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           1
        bInterfaceClass         3 Human Interface Device
        bInterfaceSubClass      1 Boot Interface Subclass
        bInterfaceProtocol      2 Mouse
        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     133
           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               4
  Device Status:     0x0000
    (Bus Powered)

  
  Workaround:
  The touchpad works with hid-generic, if it is forces to handle the device. Yet, multitouch and dragging does not work.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1437759/+subscriptions


References