Bug 100165

Summary: libinput 1.6.2: touchpad detect for Razer Blade Pro (2016)
Product: Wayland Reporter: ben simons <bsimons>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED NOTOURBUG QA Contact:
Severity: normal    
Priority: medium CC: benjamin.tissoires, peter.hutterer
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: All   
See Also: https://bugs.freedesktop.org/show_bug.cgi?id=101883
Whiteboard:
i915 platform: i915 features:
Attachments: Xorg.0.log
output from evemu-describe.txt
Xorg.0.log
output from libinput-debug-events
output from evemu-record
output from udevadm
stderr output from running evemu-record
ubuntu Xorg.0.log
ubuntu udevadm
ubuntu dmesg && lsmod i2c
gentoo dmesg - pre-designware module install
gentoo dmesg with i2c_hid
dmesg with boot option i2c_hid.debug=1
another dmesg with i2c-hid debug=1

Description ben simons 2017-03-12 02:53:01 UTC
libinput issue with touchpad built into a Razer Blade Pro 2016 (Nvidia GTX-1080)

libinput says:

  libinput error: libinput bug: Razer Razer Blade Pro: Internal or external? Please file a bug.
  libinput error: kernel bug: device Razer Razer Blade Pro failed touchpad sanity checks

Following bug report request notes:
  https://wayland.freedesktop.org/libinput/doc/latest/reporting_bugs.html

# uname -a
Linux where 4.9.10-gentoo #7 SMP Sun Mar 12 09:32:00 AEDT 2017 x86_64 Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz GenuineIntel GNU/Linux

# equery l libinput
 * Searching for libinput ...
[IP-] [  ] dev-libs/libinput-1.6.2:0/10

/home/ben # libinput-debug-events
libinput error: libinput bug: Razer Razer Blade Pro: Internal or external? Please file a bug.
libinput error: kernel bug: device Razer Razer Blade Pro failed touchpad sanity checks
-event3   DEVICE_ADDED     Power Button                      seat0 default group1  cap:k
-event9   DEVICE_ADDED     Video Bus                         seat0 default group2  cap:k
-event1   DEVICE_ADDED     Power Button                      seat0 default group3  cap:k
-event0   DEVICE_ADDED     Sleep Button                      seat0 default group4  cap:k
-event5   DEVICE_ADDED     HID 1241:1111                     seat0 default group5  cap:p left scroll-nat scroll-button
-event11  DEVICE_ADDED     ELAN Touchscreen                  seat0 default group6  cap:t  size 284x172mm calib
-event6   DEVICE_ADDED     Razer Razer Blade Pro             seat0 default group7  cap:k
-event7   DEVICE_ADDED     Razer Razer Blade Pro             seat0 default group7  cap:kp scroll-nat
-event12  DEVICE_ADDED     USB Camera                        seat0 default group8  cap:k
-event4   DEVICE_ADDED     AT Raw Set 2 keyboard             seat0 default group9  cap:k
-event7   KEYBOARD_KEY      +5.54s      *** (-1) pressed
 event7   KEYBOARD_KEY      +6.09s      *** (-1) pressed
^C/home/ben # 



* Excerpt from /var/log/Xorg.0.log
  - note event8 below

[    38.723] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:04F3:2355.0002/input/input13/event11"
[    38.723] (II) XINPUT: Adding extended input device "ELAN Touchscreen" (type: TOUCHSCREEN, id 11)
[    38.723] (**) Option "AccelerationScheme" "none"
[    38.723] (**) ELAN Touchscreen: (accel) selected scheme none/0
[    38.723] (**) ELAN Touchscreen: (accel) acceleration factor: 2.000
[    38.723] (**) ELAN Touchscreen: (accel) acceleration threshold: 4
[    38.723] (II) input device 'ELAN Touchscreen', /dev/input/event11 is tagged by udev as: Touchscreen
[    38.723] (II) input device 'ELAN Touchscreen', /dev/input/event11 is a touch device
[    38.723] (II) config/udev: Adding input device ELAN Touchscreen (/dev/input/mouse2)
[    38.724] (II) No input driver specified, ignoring this device.
[    38.724] (II) This device may have been added with another device file.
[    38.724] (II) config/udev: Adding input device Razer Razer Blade Pro (/dev/input/event6)
[    38.724] (**) Razer Razer Blade Pro: Applying InputClass "libinput keyboard catchall"
[    38.724] (II) Using input driver 'libinput' for 'Razer Razer Blade Pro'
[    38.724] (**) Razer Razer Blade Pro: always reports core events
[    38.724] (**) Option "Device" "/dev/input/event6"
[    38.724] (**) Option "_source" "server/udev"
[    38.724] (II) input device 'Razer Razer Blade Pro', /dev/input/event6 is tagged by udev as: Keyboard
[    38.724] (II) input device 'Razer Razer Blade Pro', /dev/input/event6 is a keyboard
[    38.731] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/0003:1532:0210.0003/input/input8/event6"
[    38.731] (II) XINPUT: Adding extended input device "Razer Razer Blade Pro" (type: KEYBOARD, id 12)
[    38.731] (II) input device 'Razer Razer Blade Pro', /dev/input/event6 is tagged by udev as: Keyboard
[    38.731] (II) input device 'Razer Razer Blade Pro', /dev/input/event6 is a keyboard
[    38.732] (II) config/udev: Adding input device Razer Razer Blade Pro (/dev/input/event7)
[    38.732] (**) Razer Razer Blade Pro: Applying InputClass "libinput keyboard catchall"
[    38.732] (II) Using input driver 'libinput' for 'Razer Razer Blade Pro'
[    38.732] (**) Razer Razer Blade Pro: always reports core events
[    38.732] (**) Option "Device" "/dev/input/event7"
[    38.732] (**) Option "_source" "server/udev"
[    38.732] (II) input device 'Razer Razer Blade Pro', /dev/input/event7 is tagged by udev as: Keyboard
[    38.732] (II) input device 'Razer Razer Blade Pro', /dev/input/event7 is a keyboard
[    38.739] (II) libinput: Razer Razer Blade Pro: needs a virtual subdevice
[    38.739] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.1/0003:1532:0210.0004/input/input9/event7"
[    38.739] (II) XINPUT: Adding extended input device "Razer Razer Blade Pro" (type: MOUSE, id 13)
[    38.739] (**) Option "AccelerationScheme" "none"
[    38.739] (**) Razer Razer Blade Pro: (accel) selected scheme none/0
[    38.739] (**) Razer Razer Blade Pro: (accel) acceleration factor: 2.000
[    38.739] (**) Razer Razer Blade Pro: (accel) acceleration threshold: 4
[    38.739] (II) input device 'Razer Razer Blade Pro', /dev/input/event7 is tagged by udev as: Keyboard
[    38.739] (II) input device 'Razer Razer Blade Pro', /dev/input/event7 is a keyboard
[    38.740] (II) config/udev: Adding input device Razer Razer Blade Pro (/dev/input/event8)
[    38.740] (**) Razer Razer Blade Pro: Applying InputClass "libinput pointer catchall"
[    38.740] (II) Using input driver 'libinput' for 'Razer Razer Blade Pro'
[    38.740] (**) Razer Razer Blade Pro: always reports core events
[    38.740] (**) Option "Device" "/dev/input/event8"
[    38.740] (**) Option "_source" "server/udev"
[    38.740] (II) input device 'Razer Razer Blade Pro', /dev/input/event8 is tagged by udev as: Mouse Touchpad
[    38.740] (EE) libinput bug: Razer Razer Blade Pro: Internal or external? Please file a bug.
[    38.740] (EE) kernel bug: device Razer Razer Blade Pro failed touchpad sanity checks
[    38.740] (II) input device 'Razer Razer Blade Pro', /dev/input/event8 is a touchpad
[    38.755] (II) not using input device '/dev/input/event8'.
[    38.755] (EE) libinput: Razer Razer Blade Pro: Failed to create a device for /dev/input/event8
[    38.755] (EE) PreInit returned 2 for "Razer Razer Blade Pro"
[    38.755] (II) UnloadModule: "libinput"
[    38.755] (II) config/udev: Adding input device Razer Razer Blade Pro (/dev/input/mouse1)
[    38.755] (II) No input driver specified, ignoring this device.
[    38.755] (II) This device may have been added with another device file.
[    38.755] (II) config/udev: Adding input device USB Camera (/dev/input/event12)
[    38.755] (**) USB Camera: Applying InputClass "libinput keyboard catchall"
[    38.755] (II) Using input driver 'libinput' for 'USB Camera'
[    38.755] (**) USB Camera: always reports core events
[    38.755] (**) Option "Device" "/dev/input/event12"
[    38.755] (**) Option "_source" "server/udev"
[    38.756] (II) input device 'USB Camera', /dev/input/event12 is tagged by udev as: Keyboard
[    38.756] (II) input device 'USB Camera', /dev/input/event12 is a keyboard
[    38.771] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9:1.0/input/input15/event12"



 # udevadm info /dev/input/event8
P: /devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.2/0003:1532:0210.0005/input/input10/event8
N: input/event8
S: input/by-id/usb-Razer_Razer_Blade_Pro-if02-event-mouse
S: input/by-path/pci-0000:00:14.0-usb-0:8:1.2-event-mouse
E: DEVLINKS=/dev/input/by-id/usb-Razer_Razer_Blade_Pro-if02-event-mouse /dev/input/by-path/pci-0000:00:14.0-usb-0:8:1.2-event-mouse
E: DEVNAME=/dev/input/event8
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.2/0003:1532:0210.0005/input/input10/event8
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_MODEL=Razer_Blade_Pro
E: ID_MODEL_ENC=Razer\x20Blade\x20Pro
E: ID_MODEL_ID=0210
E: ID_PATH=pci-0000:00:14.0-usb-0:8:1.2
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_8_1_2
E: ID_REVISION=0200
E: ID_SERIAL=Razer_Razer_Blade_Pro
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030101:030001:030102:ffff00:
E: ID_USB_INTERFACE_NUM=02
E: ID_VENDOR=Razer
E: ID_VENDOR_ENC=Razer
E: ID_VENDOR_ID=1532
E: LIBINPUT_DEVICE_GROUP=3/1532/210/111:usb-0000:00:14.0-8
E: MAJOR=13
E: MINOR=72
E: SUBSYSTEM=input
E: USEC_INITIALIZED=12894620


/home/ben # udevadm info /sys/class/input/event8
P: /devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.2/0003:1532:0210.0005/input/input10/event8
N: input/event8
S: input/by-id/usb-Razer_Razer_Blade_Pro-if02-event-mouse
S: input/by-path/pci-0000:00:14.0-usb-0:8:1.2-event-mouse
E: DEVLINKS=/dev/input/by-id/usb-Razer_Razer_Blade_Pro-if02-event-mouse /dev/input/by-path/pci-0000:00:14.0-usb-0:8:1.2-event-mouse
E: DEVNAME=/dev/input/event8
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.2/0003:1532:0210.0005/input/input10/event8
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_MODEL=Razer_Blade_Pro
E: ID_MODEL_ENC=Razer\x20Blade\x20Pro
E: ID_MODEL_ID=0210
E: ID_PATH=pci-0000:00:14.0-usb-0:8:1.2
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_8_1_2
E: ID_REVISION=0200
E: ID_SERIAL=Razer_Razer_Blade_Pro
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030101:030001:030102:ffff00:
E: ID_USB_INTERFACE_NUM=02
E: ID_VENDOR=Razer
E: ID_VENDOR_ENC=Razer
E: ID_VENDOR_ID=1532
E: LIBINPUT_DEVICE_GROUP=3/1532/210/111:usb-0000:00:14.0-8
E: MAJOR=13
E: MINOR=72
E: SUBSYSTEM=input
E: USEC_INITIALIZED=12894620


 
# udevadm info -a -p $(udevadm info -q path -n /dev/input/event8)

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.2/0003:1532:0210.0005/input/input10/event8':
    KERNEL=="event8"
    SUBSYSTEM=="input"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.2/0003:1532:0210.0005/input/input10':
    KERNELS=="input10"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{uniq}==""
    ATTRS{properties}=="0"
    ATTRS{phys}=="usb-0000:00:14.0-8/input2"
    ATTRS{name}=="Razer Razer Blade Pro"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.2/0003:1532:0210.0005':
    KERNELS=="0003:1532:0210.0005"
    SUBSYSTEMS=="hid"
    DRIVERS=="hid-generic"
    ATTRS{country}=="00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.2':
    KERNELS=="1-8:1.2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usbhid"
    ATTRS{bInterfaceProtocol}=="02"
    ATTRS{bInterfaceNumber}=="02"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bInterfaceClass}=="03"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{authorized}=="1"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-8':
    KERNELS=="1-8"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceClass}=="00"
    ATTRS{manufacturer}=="Razer"
    ATTRS{bmAttributes}=="a0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{devnum}=="5"
    ATTRS{bMaxPower}=="500mA"
    ATTRS{idProduct}=="0210"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{urbnum}=="8301"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{maxchild}=="0"
    ATTRS{bcdDevice}=="0200"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{idVendor}=="1532"
    ATTRS{product}=="Razer Blade Pro"
    ATTRS{speed}=="12"
    ATTRS{removable}=="fixed"
    ATTRS{ltm_capable}=="no"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{busnum}=="1"
    ATTRS{authorized}=="1"
    ATTRS{quirks}=="0x0"
    ATTRS{configuration}==""
    ATTRS{devpath}=="8"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumInterfaces}==" 4"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceClass}=="09"
    ATTRS{manufacturer}=="Linux 4.9.10-gentoo xhci-hcd"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{devnum}=="1"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{idProduct}=="0002"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{urbnum}=="101"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{maxchild}=="16"
    ATTRS{bcdDevice}=="0409"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{idVendor}=="1d6b"
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{speed}=="480"
    ATTRS{authorized_default}=="1"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{removable}=="unknown"
    ATTRS{ltm_capable}=="no"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{busnum}=="1"
    ATTRS{authorized}=="1"
    ATTRS{quirks}=="0x0"
    ATTRS{configuration}==""
    ATTRS{devpath}=="0"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bNumInterfaces}==" 1"

  looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{subsystem_device}=="0x6750"
    ATTRS{vendor}=="0x8086"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{device}=="0xa12f"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{class}=="0x0c0330"
    ATTRS{driver_override}=="(null)"
    ATTRS{local_cpus}=="ff"
    ATTRS{enable}=="1"
    ATTRS{irq}=="120"
    ATTRS{broken_parity_status}=="0"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{subsystem_vendor}=="0x1a58"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""





* There wasn't much to report via evemu-record, but i did it anyway.
  - I ran the below commands, and clicked and swiped on the trackpad.
  - oh. guess i should note this trackpad *does* work under M$ Windows
    (ie. just saying i know it is not broken)

/home/ben # evemu-record > scroll.evemu
Available devices:
/dev/input/event0:      Sleep Button
/dev/input/event1:      Power Button
/dev/input/event2:      Lid Switch
/dev/input/event3:      Power Button
/dev/input/event4:      AT Raw Set 2 keyboard
/dev/input/event5:      HID 1241:1111
/dev/input/event6:      Razer Razer Blade Pro
/dev/input/event7:      Razer Razer Blade Pro
/dev/input/event8:      Razer Razer Blade Pro
/dev/input/event9:      Video Bus
/dev/input/event10:     PC Speaker
/dev/input/event11:     ELAN Touchscreen
/dev/input/event12:     USB Camera
/dev/input/event13:     HDA Digital PCBeep
/dev/input/event14:     HDA Intel PCH Mic
/dev/input/event15:     HDA Intel PCH Headphone
Select the device event number [0-15]: 8

^C/home/ben #

 
/home/ben # l scroll.evemu
-rw-rw-r-- 1 root root 2014 Mar 12 13:22 scroll.evemu

/home/ben # cat scroll.evemu
# EVEMU 1.3
# Kernel: 4.9.10-gentoo
# DMI: dmi:bvnRazer:bvr1.00:bd10/18/2016:svnRazer:pnBladePro:pvr1.04:rvnRazer:rnBladePro:rvrLate2016:cvnRazer:ct9:cvrBladePro(Late2016):
# Input device name: "Razer Razer Blade Pro"
# Input device ID: bus 0x03 vendor 0x1532 product 0x210 version 0x111
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#     Event code 15 (SYN_MAX)
#   Event type 1 (EV_KEY)
#     Event code 272 (BTN_LEFT)
#     Event code 273 (BTN_RIGHT)
#     Event code 274 (BTN_MIDDLE)
#     Event code 275 (BTN_SIDE)
#     Event code 276 (BTN_EXTRA)
#   Event type 2 (EV_REL)
#     Event code 0 (REL_X)
#     Event code 1 (REL_Y)
#     Event code 8 (REL_WHEEL)
#   Event type 4 (EV_MSC)
#     Event code 4 (MSC_SCAN)
# Properties:
N: Razer Razer Blade Pro
I: 0003 1532 0210 0111
P: 00 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 1f 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 03 01 00 00 00 00 00 00
B: 03 00 00 00 00 00 00 00 00
B: 04 10 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
################################
#      Waiting for events      #
################################
/home/ben #



# m /sys/class/dmi/id/modalias
dmi:bvnRazer:bvr1.00:bd10/18/2016:svnRazer:pnBladePro:pvr1.04:rvnRazer:rnBladePro:rvrLate2016:cvnRazer:ct9:cvrBladePro(Late2016):


* the physical dimensions of your touchpad in mm
  102mm wide x 84mm deep

* the whole touchpad is clickable. Looks very modern. Multi-touch.


I own this laptop. The touchpad is one of the last things to get working.
Happy to do any other tests which might help!

I think i've read some users have it working under Ubuntu. Not sure why this wouldn't also then work under Gentoo. Haven't tried Ubuntu.

Synapse is not installed.


* I wonder if i'd need a couple of udev rules, something like:

SUBSYSTEM=="input", KERNEL=="event8", ATTRS{phys}=="usb-0000:00:14.0-8/input2", ENV{ID_INPUT_TOUCHPAD}="1"
SUBSYSTEM=="input", KERNEL=="event8", ATTRS{phys}=="usb-0000:00:14.0-8/input2", RUN+="unset ID_INPUT_KEYBOARD"

??

thanks,
ben.
Comment 1 ben simons 2017-03-12 08:08:32 UTC
Seems it's possible to set ID_INPUT_TOUCHPAD_INTEGRATION = external

just using these rules to explore event8

/etc/udev/rules.d/50-Razer-touchpad.rules


SUBSYSTEM=="input", KERNEL=="event8", ENV{ID_INPUT}="1"
SUBSYSTEM=="input", KERNEL=="event8", ENV{ID_INPUT_TOUCHPAD}="1"
SUBSYSTEM=="input", KERNEL=="event8", ENV{ID_INPUT_TOUCHPAD_INTEGRATION}="external"
SUBSYSTEM=="input", KERNEL=="event8", ENV{ID_INPUT_KEYBOARD}=""

then the question about internal / external goes away,
but there's no input events seen when tapping/swiping on the trackpad.


/home/ben # udevadm control --reload-rules ; udevadm trigger ; libinput-debug-events

libinput error: kernel bug: device Razer Razer Blade Pro failed touchpad sanity checks
-event3   DEVICE_ADDED     Power Button                      seat0 default group1  cap:k
-event9   DEVICE_ADDED     Video Bus                         seat0 default group2  cap:k
-event1   DEVICE_ADDED     Power Button                      seat0 default group3  cap:k
-event0   DEVICE_ADDED     Sleep Button                      seat0 default group4  cap:k
-event5   DEVICE_ADDED     HID 1241:1111                     seat0 default group5  cap:p left scroll-nat scroll-button
-event11  DEVICE_ADDED     ELAN Touchscreen                  seat0 default group6  cap:t  size 284x172mm calib
-event6   DEVICE_ADDED     Razer Razer Blade Pro             seat0 default group7  cap:k
-event7   DEVICE_ADDED     Razer Razer Blade Pro             seat0 default group7  cap:kp scroll-nat
-event12  DEVICE_ADDED     USB Camera                        seat0 default group8  cap:k
-event4   DEVICE_ADDED     AT Raw Set 2 keyboard             seat0 default group9  cap:k
-event7   KEYBOARD_KEY      +3.32s      *** (-1) pressed
 event7   KEYBOARD_KEY      +3.61s      *** (-1) pressed
^C/home/ben #
Comment 2 Peter Hutterer 2017-03-12 21:39:02 UTC
urgh, please attach long outputs as attachments, makes analysis a bit easier.

first weird thing: udevadm doesn't show ID_INPUT_TOUCHPAD but the log claims it's tagged as touchpad. what's going on there? did you modify some rules but then attached a different udevadm output? 
That's the real bug here to fix, remove whatever assigns ID_INPUT_TOUCHPAD and the device should work as mouse.

the internal/external bit should be added to the hwdb in systemd, see the instructions at the top of the file:
https://github.com/systemd/systemd/blob/master/hwdb/70-touchpad.hwdb

but first: this touchpad needs to be detected by the kernel correctly. Right now it's in relative mouse emulation mode. The touchpad needs to be switched to absolute mode, usually by sending the right initialization sequence from the kernel. Once that's done, the device should announce ABS_X/ABS_Y etc and then the rest should fall into place.


If it works under Ubuntu, try their kernel and then get them to upstream the patches if it truly works. Otherwise, quick email search suggests https://patchwork.kernel.org/patch/5596041/ as a place to start kernel hacking. There's a chance that the new device is still a synaptics one and that it's hooked up the same way. CC-ing benjamin just in case he knows more.
Comment 3 ben simons 2017-03-12 22:59:26 UTC
Created attachment 130181 [details]
Xorg.0.log
Comment 4 ben simons 2017-03-12 23:00:06 UTC
Created attachment 130182 [details]
output from evemu-describe.txt
Comment 5 ben simons 2017-03-12 23:12:39 UTC
Created attachment 130183 [details]
Xorg.0.log
Comment 6 ben simons 2017-03-12 23:13:39 UTC
Created attachment 130184 [details]
output from libinput-debug-events
Comment 7 ben simons 2017-03-12 23:14:06 UTC
Created attachment 130185 [details]
output from evemu-record
Comment 8 ben simons 2017-03-12 23:15:14 UTC
Created attachment 130186 [details]
output from udevadm
Comment 9 ben simons 2017-03-12 23:16:39 UTC
Created attachment 130187 [details]
stderr output from running evemu-record
Comment 10 ben simons 2017-03-12 23:20:38 UTC
Apologies for the logs! Yes, there was still a udev rule attempting to set ID_INPUT_TOUCHPAD. ouch. Sorry. My bad. For the record, new logs attached. 
Touchpad currently does not send any events (doesn't work)

Thought the 'external' setting made sense as the touchpad is off to
the right of the keyboard, away from hands at keyboard, however it is
internal to the laptop. ?

The touchpad is a  Cirque Glidepoint

Thanks for the suggestions. Will follow them up.

I've seen this bug report (though mine does not even function as a mouse)

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1648259
Comment 11 ben simons 2017-03-12 23:23:55 UTC
Comment on attachment 130183 [details]
Xorg.0.log

whoops. duplicate attachment.
Comment 12 Peter Hutterer 2017-03-12 23:57:43 UTC
oh, interesting. I was looking at the Razer Blade before, not the Pro. That's fixable though, we'd have to add another tag for this though. We already have 
"LIBINPUT_ATTR_TPKBCOMBO_LAYOUT=below" for touchpad+keyboard combo devices and could easily adjust that one.

there are a couple of things we used the tag for, and for some of the use-cases internal applies, so the internal/external labelling still applies for this device.

Either way, before we add code for that in libinput let's make sure the device works correctly. Once it does, please open another bug for libinput to tag the device correctly.
Comment 13 Benjamin Tissoires 2017-03-13 11:17:47 UTC
From the launchpad bug you attached, the touchpad seems to be connected over I2C. While on this bug, you only have USB devices reported. Could you check if i2c-hid is correctly loaded and if nothing shows up in the dmesg?

(Hint: attach also the full dmesg here :-P )
Comment 14 ben simons 2017-03-13 12:14:05 UTC
Created attachment 130191 [details]
ubuntu Xorg.0.log
Comment 15 ben simons 2017-03-13 12:18:16 UTC
Created attachment 130192 [details]
ubuntu udevadm
Comment 16 ben simons 2017-03-13 12:22:29 UTC
Created attachment 130193 [details]
ubuntu dmesg && lsmod i2c
Comment 17 ben simons 2017-03-13 12:29:43 UTC
Hi

Thanks for the help. Let me know what else to do..

I found a version of ubuntu, installed it on a USB stick, and am
writing this booted into it. 3 new attachments attached.

The cursor is stuck in the top right corner and does not move.
The touchpad DOES do something!!! I can make empty selection boxes
in the desktop background. Though it's hard to know where the mouse
is, as the cursor remains stuck in the top-left corner all the time.

The ELAN touchscreen works, which is how i can work with it. The
USB remote mouse works. I think the touchpad is 'mouse3'. Note
xinput now reports CRQ1001

buntu@ubuntu:/$ xinput
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                        	id=11	[slave  pointer  (2)]
⎜   ↳ Razer Razer Blade Pro                   	id=13	[slave  pointer  (2)]
⎜   ↳ Razer Razer Blade Pro                   	id=14	[slave  pointer  (2)]
⎜   ↳ CRQ1001:00 0488:D020                    	id=16	[slave  pointer  (2)]
⎜   ↳ HID 1241:1111                           	id=10	[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)]
    ↳ Power Button                            	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ Razer Razer Blade Pro                   	id=12	[slave  keyboard (3)]
    ↳ USB Camera                              	id=15	[slave  keyboard (3)]
    ↳ AT Raw Set 2 keyboard                   	id=17	[slave  keyboard (3)]

ubuntu dmesg etc see attached. 
Will reboot into Gentoo and attach a full dmesg from there next.
Comment 18 ben simons 2017-03-13 12:41:20 UTC
Rebooted back into gentoo. 
Note ubuntu i2c modules showed:

 $ lsmod | grep i2c
i2c_designware_platform    16384  0
i2c_designware_core    20480  1 i2c_designware_platform
i2c_algo_bit           16384  1 nouveau
i2c_hid                20480  0
hid                   118784  4 i2c_hid,hid_generic,usbhid,hid_multitouch

on gentoo i have:

/home/ben # lsmod|grep i2c
i2c_i801               24576  0
i2c_smbus              16384  1 i2c_i801
i2c_algo_bit           16384  2 nvidiafb,igb

Hmm. soething's missing?

/usr/src/linux # grep -i design /usr/src/linux/.config
# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
# CONFIG_I2C_DESIGNWARE_PCI is not set

Hows about i add i2c_designware_platform as a module and report back?

current dmesg will be attached as "dmesg.pre-designware"
Comment 19 ben simons 2017-03-13 12:42:23 UTC
Created attachment 130194 [details]
gentoo dmesg - pre-designware module install
Comment 20 ben simons 2017-03-13 12:50:34 UTC
re-read benjamins comment while waiting for genkernel. i2c_hid!!
<cough> will add i2c_hid  too.  ^C
Comment 21 ben simons 2017-03-13 13:48:17 UTC
Created attachment 130195 [details]
gentoo dmesg with i2c_hid
Comment 22 Benjamin Tissoires 2017-03-13 13:56:35 UTC
Under Gentoo, the touchpad must be enumerated, but nothing shows up. The touchpad should be supported by hid-generic as the VID/PID is not assigned a specific driver (which also explains why the touchpad doesn't work).

Anyway, could you attach the dmesg while booting with i2c_hid.debug=1 appended to the kernel boot line in grub?
Comment 23 ben simons 2017-03-13 14:27:02 UTC
Created attachment 130196 [details]
dmesg with boot option i2c_hid.debug=1

Not sure this dmesg is any different. I added "i2c_hid.debug=1" to the variable GRUB_CMDLINE_LINUX in /etc/default/grub, then ran grub-update and rebooted.. Is there an i2c_debug kernel setting i should first enable? will look..
Comment 24 Benjamin Tissoires 2017-03-13 14:41:37 UTC
(In reply to ben simons from comment #23)
> Not sure this dmesg is any different. I added "i2c_hid.debug=1" to the
> variable GRUB_CMDLINE_LINUX in /etc/default/grub, then ran grub-update and
> rebooted.. Is there an i2c_debug kernel setting i should first enable? will
> look..

Weird. You can also simply rmmod i2c-hid and then run modprobe i2c-hid debug=1.

If nothing shows up, that means that the device is not enumerated through ACPI, and that would be strange.
Comment 25 ben simons 2017-03-13 15:12:40 UTC
Created attachment 130197 [details]
another dmesg with i2c-hid debug=1

Heya. Yes, i don't see any real difference in this dmesg. Take a look though. I went back into the kernel and also added options: 
[*]   I2C Core debugging messages
[*]   I2C Algorithm debugging messages
[*]   I2C Bus debugging messages
in case that helped. Also did the suggested rmmod i2c_hid, which you will see posted at the end of the dmesg. the "re" insmod of i2c doesn't cause a rediscovery of devices, it seems. 

I note one of the "Razer Razer Blade Pro" entries has moved to Virtual core keyboard now. All 3 were in core pointer.

/home/ben # xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ HID 1241:1111                             id=10   [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=11   [slave  pointer  (2)]
⎜   ↳ Razer Razer Blade Pro                     id=13   [slave  pointer  (2)]
⎜   ↳ Razer Razer Blade Pro                     id=14   [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)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Razer Razer Blade Pro                     id=12   [slave  keyboard (3)]
    ↳ USB Camera                                id=15   [slave  keyboard (3)]
    ↳ AT Raw Set 2 keyboard                     id=16   [slave  keyboard (3)]
    ↳ Razer Razer Blade Pro                     id=17   [slave  keyboard (3)]
Comment 26 ben simons 2017-03-14 07:49:18 UTC
Is this something we could open up again?
At the moment the status is: Resolved, Not our Bug.
Alternately, is there someone upstream to be notified?
Comment 27 Peter Hutterer 2017-03-14 07:57:02 UTC
it's a kernel bug. Feel free to continue discussing this here but it cannot be fixed in libinput. And moving to the kernel bugzilla/lkml may help fixing this faster.
Comment 28 Benjamin Tissoires 2017-03-14 08:36:44 UTC
Anyway, if the ubuntu kernel detects and enumerates the touchpad, there must be a fix somewhere.

So you should probably try to get the same upstream version ubuntu uses and grab their .config. Re-compile it under gentoo, and see how it goes. If the touchpad appears, then compare the 2 config files to see if anything obvious appears.

If the 2 config files are equivalent, they have a specific patch and you should ask them to push it upstream.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.