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.
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 #
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.
Created attachment 130181 [details] Xorg.0.log
Created attachment 130182 [details] output from evemu-describe.txt
Created attachment 130183 [details] Xorg.0.log
Created attachment 130184 [details] output from libinput-debug-events
Created attachment 130185 [details] output from evemu-record
Created attachment 130186 [details] output from udevadm
Created attachment 130187 [details] stderr output from running evemu-record
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 on attachment 130183 [details] Xorg.0.log whoops. duplicate attachment.
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.
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 )
Created attachment 130191 [details] ubuntu Xorg.0.log
Created attachment 130192 [details] ubuntu udevadm
Created attachment 130193 [details] ubuntu dmesg && lsmod i2c
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.
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"
Created attachment 130194 [details] gentoo dmesg - pre-designware module install
re-read benjamins comment while waiting for genkernel. i2c_hid!! <cough> will add i2c_hid too. ^C
Created attachment 130195 [details] gentoo dmesg with i2c_hid
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?
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..
(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.
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)]
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?
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.
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.