Summary: | trackpoint button mappings incorrect for Lenovo ThinkPad 2015 models | ||||||
---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Aron Parsons <aronparsons> | ||||
Component: | Input/synaptics | Assignee: | Peter Hutterer <peter.hutterer> | ||||
Status: | RESOLVED FIXED | QA Contact: | |||||
Severity: | trivial | ||||||
Priority: | highest | CC: | abrody, benjaminosm, benjamin.tissoires, brassman, csaavedra, cs_gon, email, esm+freedesktop, freedesktop, gergely, guenther, inform, jeffrey.y.lee, jonathanysp, jsvaughan+freedesktop, jwrdegoede, larry, lee, leho, levis.cyril, mail, martin.fdo, mathieu.payn, me, m.meledandri, msw, pbrobinson, peter.hutterer, quachtlc, scott.ashford, stefan.hoelldampf, swetland | ||||
Version: | 7.6 (2010.12) | Keywords: | patch | ||||
Hardware: | x86-64 (AMD64) | ||||||
OS: | Linux (All) | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Attachments: |
|
Description
Aron Parsons
2015-01-20 04:02:54 UTC
Here is the evemu-record output. The BTN_0 and BTN_1 events are from the left and right physical buttons. The BTN_LEFT events are from the clickpad. No events are generated using the middle physical button. [root@x1 ~]# evemu-record Available devices: /dev/input/event0: Lid Switch /dev/input/event1: Sleep Button /dev/input/event2: Power Button /dev/input/event3: AT Translated Set 2 keyboard /dev/input/event4: Video Bus /dev/input/event5: SynPS/2 Synaptics TouchPad /dev/input/event6: Integrated Camera /dev/input/event7: HDA Intel HDMI HDMI/DP,pcm=3 /dev/input/event8: HDA Intel HDMI HDMI/DP,pcm=7 /dev/input/event9: HDA Intel HDMI HDMI/DP,pcm=8 /dev/input/event10: HDA Intel PCH Mic /dev/input/event11: HDA Intel PCH Headphone /dev/input/event12: TPPS/2 IBM TrackPoint Select the device event number [0-12]: 5 # EVEMU 1.2 # Input device name: "SynPS/2 Synaptics TouchPad" # Input device ID: bus 0x11 vendor 0x02 product 0x07 version 0x1b1 # 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 type 1 (EV_KEY) # Event code 256 (BTN_0) # Event code 257 (BTN_1) # Event code 258 (BTN_2) # Event code 272 (BTN_LEFT) # Event code 325 (BTN_TOOL_FINGER) # Event code 328 (BTN_TOOL_QUINTTAP) # Event code 330 (BTN_TOUCH) # Event code 333 (BTN_TOOL_DOUBLETAP) # Event code 334 (BTN_TOOL_TRIPLETAP) # Event code 335 (BTN_TOOL_QUADTAP) # Event type 3 (EV_ABS) # Event code 0 (ABS_X) # Value 1607 # Min 1266 # Max 5676 # Fuzz 0 # Flat 0 # Resolution 45 # Event code 1 (ABS_Y) # Value 2032 # Min 1096 # Max 4758 # Fuzz 0 # Flat 0 # Resolution 68 # Event code 24 (ABS_PRESSURE) # Value 0 # Min 0 # Max 255 # Fuzz 0 # Flat 0 # Resolution 0 # Event code 28 (ABS_TOOL_WIDTH) # Value 0 # Min 0 # Max 15 # Fuzz 0 # Flat 0 # Resolution 0 # Event code 47 (ABS_MT_SLOT) # Value 0 # Min 0 # Max 1 # Fuzz 0 # Flat 0 # Resolution 0 # Event code 53 (ABS_MT_POSITION_X) # Value 0 # Min 1266 # Max 5676 # Fuzz 0 # Flat 0 # Resolution 45 # Event code 54 (ABS_MT_POSITION_Y) # Value 0 # Min 1096 # Max 4758 # Fuzz 0 # Flat 0 # Resolution 68 # Event code 57 (ABS_MT_TRACKING_ID) # Value 0 # Min 0 # Max 65535 # Fuzz 0 # Flat 0 # Resolution 0 # Event code 58 (ABS_MT_PRESSURE) # Value 0 # Min 0 # Max 255 # Fuzz 0 # Flat 0 # Resolution 0 # Properties: # Property type 0 (INPUT_PROP_POINTER) # Property type 2 (INPUT_PROP_BUTTONPAD) # Property type 4 (INPUT_PROP_TOPBUTTONPAD) N: SynPS/2 Synaptics TouchPad I: 0011 0002 0007 01b1 P: 15 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 07 00 01 00 00 00 00 00 B: 01 20 e5 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 00 00 00 00 00 00 00 00 B: 03 03 00 00 11 00 80 60 06 B: 04 00 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 A: 00 1266 5676 0 0 45 A: 01 1096 4758 0 0 68 A: 18 0 255 0 0 0 A: 1c 0 15 0 0 0 A: 2f 0 1 0 0 0 A: 35 1266 5676 0 0 45 A: 36 1096 4758 0 0 68 A: 39 0 65535 0 0 0 A: 3a 0 255 0 0 0 ################################ # Waiting for events # ################################ E: 0.000000 0001 0100 0001 # EV_KEY / BTN_0 1 E: 0.000000 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.008950 0001 0100 0000 # EV_KEY / BTN_0 0 E: 0.008950 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 1.705538 0001 0101 0001 # EV_KEY / BTN_1 1 E: 1.705538 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 1.715480 0001 0101 0000 # EV_KEY / BTN_1 0 E: 1.715480 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 6.091416 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 6.091416 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 6.331766 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 6.331766 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 9.503149 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 9.503149 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 9.802307 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 9.802307 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 10.602692 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 10.602692 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 10.881548 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 10.881548 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 11.364079 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 11.364079 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 11.672063 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 11.672063 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 12.066900 0001 0110 0001 # EV_KEY / BTN_LEFT 1 E: 12.066900 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 12.279415 0001 0110 0000 # EV_KEY / BTN_LEFT 0 E: 12.279415 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- And here is the evemu-record log for the TrackPoint device itself. The physical buttons do not register any events, just the pointing device itself. [root@x1 ~]# evemu-record Available devices: /dev/input/event0: Lid Switch /dev/input/event1: Sleep Button /dev/input/event2: Power Button /dev/input/event3: AT Translated Set 2 keyboard /dev/input/event4: Video Bus /dev/input/event5: SynPS/2 Synaptics TouchPad /dev/input/event6: Integrated Camera /dev/input/event7: HDA Intel HDMI HDMI/DP,pcm=3 /dev/input/event8: HDA Intel HDMI HDMI/DP,pcm=7 /dev/input/event9: HDA Intel HDMI HDMI/DP,pcm=8 /dev/input/event10: HDA Intel PCH Mic /dev/input/event11: HDA Intel PCH Headphone /dev/input/event12: TPPS/2 IBM TrackPoint Select the device event number [0-12]: 12 # EVEMU 1.2 # Input device name: "TPPS/2 IBM TrackPoint" # Input device ID: bus 0x11 vendor 0x02 product 0x0a version 0000 # 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 type 1 (EV_KEY) # Event code 272 (BTN_LEFT) # Event code 273 (BTN_RIGHT) # Event code 274 (BTN_MIDDLE) # Event type 2 (EV_REL) # Event code 0 (REL_X) # Event code 1 (REL_Y) # Properties: # Property type 0 (INPUT_PROP_POINTER) # Property type 5 (INPUT_PROP_POINTING_STICK) N: TPPS/2 IBM TrackPoint I: 0011 0002 000a 0000 P: 21 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 07 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 00 00 00 00 00 00 00 B: 03 00 00 00 00 00 00 00 00 B: 04 00 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 # ################################ E: 0.000000 0002 0001 0001 # EV_REL / REL_Y 1 E: 0.000000 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.019310 0002 0000 0001 # EV_REL / REL_X 1 E: 0.019310 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.048622 0002 0001 0001 # EV_REL / REL_Y 1 E: 0.048622 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.068458 0002 0001 0001 # EV_REL / REL_Y 1 E: 0.068458 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.088470 0002 0000 0001 # EV_REL / REL_X 1 E: 0.088470 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.134325 0002 0001 0001 # EV_REL / REL_Y 1 E: 0.134325 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.230916 0002 0000 -001 # EV_REL / REL_X -1 E: 0.230916 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.272601 0002 0000 -001 # EV_REL / REL_X -1 E: 0.272601 0002 0001 -001 # EV_REL / REL_Y -1 E: 0.272601 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.298392 0002 0000 -002 # EV_REL / REL_X -2 E: 0.298392 0002 0001 -001 # EV_REL / REL_Y -1 E: 0.298392 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.320210 0002 0000 -006 # EV_REL / REL_X -6 E: 0.320210 0002 0001 -004 # EV_REL / REL_Y -4 E: 0.320210 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.339555 0002 0000 -002 # EV_REL / REL_X -2 E: 0.339555 0002 0001 -002 # EV_REL / REL_Y -2 E: 0.339555 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.358900 0002 0000 -005 # EV_REL / REL_X -5 E: 0.358900 0002 0001 -005 # EV_REL / REL_Y -5 E: 0.358900 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.378102 0002 0000 -002 # EV_REL / REL_X -2 E: 0.378102 0002 0001 -003 # EV_REL / REL_Y -3 E: 0.378102 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.397303 0002 0000 -001 # EV_REL / REL_X -1 E: 0.397303 0002 0001 -002 # EV_REL / REL_Y -2 E: 0.397303 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.414152 0002 0001 -001 # EV_REL / REL_Y -1 E: 0.414152 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.529963 0002 0000 -001 # EV_REL / REL_X -1 E: 0.529963 0002 0001 0001 # EV_REL / REL_Y 1 E: 0.529963 0000 0000 0000 # ------------ SYN_REPORT (0) ---------- E: 0.549709 0002 0000 -001 # EV_REL / REL_X -1 E: 0.549709 0002 0001 0001 # EV_REL / REL_Y 1 actually, can you attach the dmesg output here too please (as attachment). and while you're at it, please run libevdev's touchpad-edge-detector and see if the min/max of the touchpad matches what it claims. Thanks Created attachment 112590 [details]
dmesg
[root@x1 ~]# touchpad-edge-detector /dev/input/event4 Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event4 Move one finger around the touchpad to detect the actual edges Kernel says: x [1266..5676], y [1096..4758] Touchpad sends: x [1266..5677], y [1097..4760] - well, at least that's some good news. the axis range is correct enough, but we need to take LEN0048 out of the INPUT_PROP_TOPBUTTONPAD list in the kernel. which should be fine, doesn't look like it's re-used (I think). I'm experiencing the issue too, under Ubuntu 14.10. I'm happy to install something bleeding-edge on the laptop for experimentation; it's not like the laptop is terribly useful without working mouse buttons. Given that middle-mouse button scrolling is implemented in the trackpoint driver, and the middle mouse button (when it works) will be firing in the synaptics driver, I'm guessing that even when the buttons are fixed, middle-mouse button scrolling will still be broken. Just like the 2014 refresh Lenovo laptops without hardware mouse buttons (see bug 70780). Note that this bug currently affects upstream (kernel, libinput and xorg) and all distributions. In the interest of keeping the bug useful, please only CC yourself, do not comment that you have the same issue. We know you do. We'll post updates once we figured out how to fix all this, please keep the noise on this bug to a minimum. As a workaround you can force the psmouse driver to use the imps protocol. When using the imps protocol the buttons are mapped correctly. Further, the BIOS option to disable the touchpad is honored. Of course you can't use the fancy Synaptic touchpad features, but I have no use for them anyway. $ cat /etc/modprobe.d/psmouse.conf options psmouse proto=imps # evtest /dev/input/event5 Input driver version is 1.0.1 Input device ID: bus 0x11 vendor 0x2 product 0x1 version 0x0 Input device name: "PS/2 Synaptics TouchPad" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 272 (BTN_LEFT) Event code 273 (BTN_RIGHT) Event code 274 (BTN_MIDDLE) Event type 2 (EV_REL) Event code 0 (REL_X) Event code 1 (REL_Y) Properties: Testing ... (interrupt to exit) $ xinput list-props 'PS/2 Synaptics TouchPad' Device 'PS/2 Synaptics TouchPad': Device Enabled (135): 1 Coordinate Transformation Matrix (137): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (256): 0 Device Accel Constant Deceleration (257): 1.000000 Device Accel Adaptive Deceleration (258): 1.000000 Device Accel Velocity Scaling (259): 10.000000 Device Product ID (252): 2, 1 Device Node (253): "/dev/input/event5" Evdev Axis Inversion (260): 0, 0 Evdev Axes Swap (262): 0 Axis Labels (263): "Rel X" (145), "Rel Y" (146) Button Labels (264): "Button Left" (138), "Button Middle" (139), "Button Right" (140), "Button Wheel Up" (141), "Button Wheel Down" (142), "Button Horiz Wheel Left" (143), "Button Horiz Wheel Right" (144) Evdev Middle Button Emulation (265): 0 Evdev Middle Button Timeout (266): 50 Evdev Third Button Emulation (267): 0 Evdev Third Button Emulation Timeout (268): 1000 Evdev Third Button Emulation Button (269): 3 Evdev Third Button Emulation Threshold (270): 20 Evdev Wheel Emulation (271): 1 Evdev Wheel Emulation Axes (272): 6, 7, 4, 5 Evdev Wheel Emulation Inertia (273): 10 Evdev Wheel Emulation Timeout (274): 200 Evdev Wheel Emulation Button (275): 2 Evdev Drag Lock Buttons (276): 0 (In reply to Matt Wilson from comment #9) > As a workaround you can force the psmouse driver to use the imps protocol. > When using the imps protocol the buttons are mapped correctly. Further, the > BIOS option to disable the touchpad is honored. > > Of course you can't use the fancy Synaptic touchpad features, but I have no > use for them anyway. > > $ cat /etc/modprobe.d/psmouse.conf > options psmouse proto=imps Exactly the configuration I wanted! Thanks for the tip Matt. For those on Fedora, psmouse built in and not a module, so the approach is slightly different. You'll need to set it in /etc/default/grub and then update your grub config. # grep psmouse /etc/default/grub GRUB_CMDLINE_LINUX="rd.lvm.lv=vg00/swap rd.lvm.lv=vg00/root quiet psmouse.proto=imps" # grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg Status update: * missing middle button is a kernel bug * touchpad marked with INPUT_PROP_TOPBUTTONPAD is a kernel bug * handling the trackpoint buttons through the touchpad device will require userspace fixes, some combination of udev rules/hwdb and fixes in synaptics and libinput. Theoretically evdev too, though the touchpad parts in evdev are mostly untested. Patches will be coming in the next couple of days, we're trying to get everything in place first so we can actually test all bits against each other. I expect that the final outcome with synaptics will be similar to the T440: everything works except for middle button scrolling. libinput will just work fine. Kernel patches proposed: http://www.spinics.net/lists/linux-input/msg36219.html udev hwdb addition to mark devices like this: http://cgit.freedesktop.org/systemd/systemd/commit/hwdb/70-touchpad.hwdb?id=001a247324b44c0e0b8fdba41a6fc66e7465b8b6 libinput patches proposed: http://lists.freedesktop.org/archives/wayland-devel/2015-January/019661.html synaptics patch proposed: http://lists.x.org/archives/xorg-devel/2015-January/045464.html And a writeup of what's happening: http://who-t.blogspot.com.au/2015/01/lenovos-x1-carbon-3rd-touchpad-woes.html synaptics fixed in master: http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=064445364b4775b25ba49c2250b22b169f291147 libinput fixed in master (and 0.9.0): http://cgit.freedesktop.org/wayland/libinput/commit/?id=428614bb242a85a0b46f1a60bc822dbb47327b31 Hi Peter, I was finally able to get some time to recompile the various RPMs for F21 with the patches applied and test out the whole stack. I used the first iteration of the kernel patches posted to the mailing list, but it looks like those might change a little bit; either way, they work even if they're not the final version. Aside from the issue below, the trackpoint buttons work as expected. Setting TouchpadOff=1 disables the touchpad for moving the cursor, but the clickpad buttons are still enabled. This seems to be the intended behavior based on synaptics(4), so I can live with it. The X11 stack seems to work fine, but the hwdb entry is not tagging the device properly. By removing the "MatchTag" option from the xorg.conf.d file, everything worked as expected. For the hwdb update, I dropped the file in place and updated. Here is verification that the hwdb piece is in place but not working: [root@x1 ~]# grep -v ^# /lib/udev/hwdb.d/70-touchpad.hwdb; udevadm trigger /dev/input/event5; udevadm info /dev/input/event5 touchpad:pnpid:*LEN0048*: TOUCHPAD_HAS_TRACKPOINT_BUTTONS=1 Extraneous argument: '/dev/input/event5' P: /devices/platform/i8042/serio1/input/input5/event5 N: input/event5 S: input/by-path/platform-i8042-serio-1-event-mouse E: DEVLINKS=/dev/input/by-path/platform-i8042-serio-1-event-mouse E: DEVNAME=/dev/input/event5 E: DEVPATH=/devices/platform/i8042/serio1/input/input5/event5 E: ID_INPUT=1 E: ID_INPUT_TOUCHPAD=1 E: ID_PATH=platform-i8042-serio-1 E: ID_PATH_TAG=platform-i8042-serio-1 E: ID_SERIAL=noserial E: MAJOR=13 E: MINOR=69 E: SUBSYSTEM=input E: USEC_INITIALIZED=57845 (In reply to Aron Parsons from comment #14) > The X11 stack seems to work fine, but the hwdb entry is not tagging the > device properly. By removing the "MatchTag" option from the xorg.conf.d > file, everything worked as expected. For the hwdb update, I dropped the > file in place and updated. Here is verification that the hwdb piece is in > place but not working: Scratch that. I pulled in xorg-x11-drv-synaptics-1.8.1-2.fc21.x86_64 (http://koji.fedoraproject.org/koji/buildinfo?buildID=608494) which does not correctly include the xorg and udev configurations. Manually dropping those in place makes the whole set of proposed patches work. the hwdb doesn't have effect on the synaptics driver bits, but if the files aren't installed correctly that's a fedora bug, please file it there and assign it to me. Note you also need to udevadm control --reload-rules to make the hwdb work (and drop the matching 70-touchpad.rules file in place too). (In reply to Peter Hutterer from comment #16) > the hwdb doesn't have effect on the synaptics driver bits, but if the files > aren't installed correctly that's a fedora bug, please file it there and > assign it to me. > > Note you also need to udevadm control --reload-rules to make the hwdb work > (and drop the matching 70-touchpad.rules file in place too). Yep. You have a bug waiting for you on rhbz with the fixes attached. Thanks for all the work on this Peter. I'm not sure if this should get a separate issue, but on my new X250 the pnpid seems to be LEN0046 instead of LEN0048 cat /sys/devices/platform/i8042/serio1/firmware_id PNP: LEN0046 PNP0f13 (In reply to Heiko Stuebner from comment #18) > I'm not sure if this should get a separate issue, but on my new X250 the > pnpid seems to be LEN0046 instead of LEN0048 > > cat /sys/devices/platform/i8042/serio1/firmware_id > PNP: LEN0046 PNP0f13 Yep, we know about it. See https://patchwork.kernel.org/patch/5820871/ BTW, with latest kernel submission, there should not be needed to patch libinput & synaptics. It's just been sitting on the list for a while now. Hi, On the new T450s too we seem to have the same problem (same touchpad I think), I must use psmouse to get my touchpad working for the moment. PNPID is : cat /sys/devices/platform/i8042/serio1/firmware_id PNP: LEN200f PNP0f13 Do you need more information? Regards, Hi, we have the same issue regarding the firmware ID, as other reported earlier. We have new T550 systems, which have the following firmware ID: # cat /sys/devices/platform/i8042/serio1/firmware_id PNP: LEN002c PNP0f13 When adding a corresponding udev rule for this firmware ID to set the udev tag, the Xorg synaptics driver get configured correctly, and the buttons behave as they should. Running openSUSE Tumbleweed with latest updates and having installed the Physical Buttons TrackPad/TouchPad on T440s. Tried many options, none work, incl. modifying /etc/X11/xorg.conf.d/files and using psmouse in imps and bare. Here is some data that might help. 3.19.1-1-desktop #1 SMP XOrg version 7.6_x.x xf86-input-synaptics 1.8.1-1.3 xf86-input-evdev 2.9.1-1.1 cat /sys/devices/platform/i8042/serio1/firmware_id PNP: LEN0036 PNP0f13 ------------------------------ me@linux-oi3d:~> xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] ⎜ ↳ TPPS/2 IBM TrackPoint id=12 [slave pointer (2)] ------------------------------ me@linux-oi3d:~> grep -B 5 mouse /proc/bus/input/devices I: Bus=0011 Vendor=0002 Product=0007 Version=01b1 N: Name="SynPS/2 Synaptics TouchPad" P: Phys=isa0060/serio1/input0 S: Sysfs=/devices/platform/i8042/serio1/input/input2 U: Uniq= H: Handlers=mouse0 event5 -- I: Bus=0011 Vendor=0002 Product=000a Version=0000 N: Name="TPPS/2 IBM TrackPoint" P: Phys=synaptics-pt/serio0/input0 S: Sysfs=/devices/platform/i8042/serio1/serio2/input/input7 U: Uniq= H: Handlers=mouse1 event6 ---------------------------------- linux-oi3d:/home/me # dmidecode -t 21 report # dmidecode 2.12 # SMBIOS entry point at 0xbcc0c000 SMBIOS 2.7 present. Handle 0x0027, DMI type 21, 7 bytes Built-in Pointing Device Type: Track Point Interface: PS/2 Buttons: 3 Handle 0x0028, DMI type 21, 7 bytes Built-in Pointing Device Type: Touch Pad Interface: PS/2 Buttons: 2 -------------------------- me@linux-oi3d:~> xinput list-props "SynPS/2 Synaptics TouchPad" | grep Capabilities Synaptics Capabilities (300): 1, 0, 0, 1, 1, 1, 1 me@linux-oi3d:~> xinput list-props "TPPS/2 IBM TrackPoint" | grep Capabilities no output, unlike Synaptic touchpad -------------------------- Physical buttons generate events as BTN_0 and BTN_1 for Left and Right, for the SynPS/2 Touchpad and not the TPPS/2 TrackPoint; Middle Button is dead. Status update: The kernel patches are now in Dmitry's branch and queued for 4.0 https://git.kernel.org/cgit/linux/kernel/git/dtor/input.git/commit/?h=for-linus&id=6067fe5e0bf29f525561c8281d01011cfc9ebbd4 There will _not_ be a patch to the synaptics driver (or libinput). The kernel patches re-route the trackstrick buttons correctly so we don't need userspace to fix this up any. The commit that was already on the branch has been reverted, see: http://cgit.freedesktop.org/xorg/driver/xf86-input-synaptics/commit/?id=5378a020a003cbdfa565d43c9e01997b570059c9 For distributions: if you are partially backporting Benjamin's kernel patches make sure you either re-instate that synaptics commit or backport the button re-routing patches. kernel 4.0 has been released it contains all required fixes. closing. |
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.