HP Elite X2 1012 G1 ALPS touchpad stopped working after BIOS upgrade to v1.39
The touchpad used to work perfectly (single, double, triple clicks, drag, palm rejection, tap, kinetic scroll ... etc).
The x2 had the v1.16 BIOS which is very out of date, when I upgraded it to the latest, v1.39 as of now, things gone nuts! The touchpad reports as two input devices, one is "Alps Alps Touchpad Mouse" the other "Alps Alps Touchpad"
It works great as a mouse however (single, double click/tap, two finger none-smooth-scroll), but missing a lot of features compared to previously.
Steps to reproduce
Upgrade to the latest BIOS available, v1.39 currently, downgrading didn't fix the issue, the upgrade process flashed the detachable keyboard's firmware.
libinput version you encountered the bug on
rpm -q libinput
libinput-1.13.2-1.fc30.x86_64
Hardware information:
cat /sys/class/dmi/id/modalias
dmi:bvnHP:bvrN85Ver.01.39:bd04/16/2019:svnHP:pnHPElitex21012G1:pvr:rvnHP:rn80FC:rvrKBCVersion15.74:cvnHP:ct10:cvr:
Other log output:
dmesg
[ 3.471824] usb 1-7.1: New USB device found, idVendor=044e, idProduct=120d, bcdDevice= 4.05
[ 3.471832] usb 1-7.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3.471838] usb 1-7.1: Product: Alps Touchpad
[ 3.471843] usb 1-7.1: Manufacturer: Alps
[ 3.476131] input: Alps Alps Touchpad Mouse as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1:1.0/0003:044E:120D.0001/input/input13
[ 3.476464] input: Alps Alps Touchpad as /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1:1.0/0003:044E:120D.0001/input/input14
[ 3.476833] hid-generic 0003:044E:120D.0001: input,hiddev96,hidraw0: USB HID v1.11 Mouse [Alps Alps Touchpad] on usb-0000:00:14.0-7.1/input0
udevadm info /dev/input/event6
P: /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1:1.0/0003:044E:120D.0001/input/input14/event6
N: input/event6
L: 0
S: input/by-id/usb-Alps_Alps_Touchpad-event-if00
S: input/by-path/pci-0000:00:14.0-usb-0:7.1:1.0-event
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1:1.0/0003:044E:120D.0001/input/input14/event6
E: DEVNAME=/dev/input/event6
E: MAJOR=13
E: MINOR=70
E: SUBSYSTEM=input
E: USEC_INITIALIZED=15802865
E: ID_INPUT=1
E: ID_VENDOR=Alps
E: ID_VENDOR_ENC=Alps
E: ID_VENDOR_ID=044e
E: ID_MODEL=Alps_Touchpad
E: ID_MODEL_ENC=Alps\x20Touchpad
E: ID_MODEL_ID=120d
E: ID_REVISION=0405
E: ID_SERIAL=Alps_Alps_Touchpad
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:14.0-usb-0:7.1:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_7_1_1_0
E: LIBINPUT_DEVICE_GROUP=3/44e/120d:usb-0000:00:14.0-7
E: DEVLINKS=/dev/input/by-id/usb-Alps_Alps_Touchpad-event-if00 /dev/input/by-path/pci-0000:00:14.0-usb-0:7.1:1.0-event
udevadm info /dev/input/event5
P: /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1:1.0/0003:044E:120D.0001/input/input13/event5
N: input/event5
L: 0
S: input/by-path/pci-0000:00:14.0-usb-0:7.1:1.0-event-mouse
S: input/by-id/usb-Alps_Alps_Touchpad-event-mouse
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.1/1-7.1:1.0/0003:044E:120D.0001/input/input13/event5
E: DEVNAME=/dev/input/event5
E: MAJOR=13
E: MINOR=69
E: SUBSYSTEM=input
E: USEC_INITIALIZED=15801279
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_VENDOR=Alps
E: ID_VENDOR_ENC=Alps
E: ID_VENDOR_ID=044e
E: ID_MODEL=Alps_Touchpad
E: ID_MODEL_ENC=Alps\x20Touchpad
E: ID_MODEL_ID=120d
E: ID_REVISION=0405
E: ID_SERIAL=Alps_Alps_Touchpad
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:14.0-usb-0:7.1:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_7_1_1_0
E: LIBINPUT_DEVICE_GROUP=3/44e/120d:usb-0000:00:14.0-7
E: DEVLINKS=/dev/input/by-path/pci-0000:00:14.0-usb-0:7.1:1.0-event-mouse /dev/input/by-id/usb-Alps_Alps_Touchpad-event-mouse
sudo libinput list-devices
[sudo] password for aa:
[...]
Device: Alps Alps Touchpad Mouse
Kernel: /dev/input/event5
Group: 6
Seat: seat0, default
Capabilities: pointer
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: disabled
Nat.scrolling: disabled
Middle emulation: n/a
Calibration: n/a
Scroll methods: button
Click methods: none
Disable-w-typing: n/a
Accel profiles: flat *adaptive
Rotation: n/a
# edited by @whot to show just the relevant device
Other things I tried
I tried forcing both /dev/input/mouse0
and /dev/input/event{5,6}
to report as touchpad using udev's ID_INPUT_TOUCHPAD
param but it didn't help, libinput throws an error saying "failed sanity check".
Using libinput record
, no events from /dev/input/event6
what so ever, and only single, double, xy events from /dev/input/event5
.
Thanks in advance.