You are not logged in.

#1 2017-01-11 19:42:20

odzhychko
Member
Registered: 2016-03-23
Posts: 7

[SOLVED] ThinkPad E470: Trackpoint middle button not detected

On my ThinkPad E470 the middle button of the Trackpoint is not detected. The middle button also does not work in other Linux distributions (Ubuntu and OpenSuse). But it works in Windows.

# evemu-describe
Available devices:
/dev/input/event0:	Lid Switch
/dev/input/event1:	Sleep Button
/dev/input/event2:	Power Button
/dev/input/event3:	Video Bus
/dev/input/event4:	Video Bus
/dev/input/event5:	AT Translated Set 2 keyboard
/dev/input/event6:	PC Speaker
/dev/input/event7:	Integrated Camera
/dev/input/event8:	ThinkPad Extra Buttons
/dev/input/event9:	HDA Digital PCBeep
/dev/input/event10:	HDA Intel PCH Mic
/dev/input/event11:	HDA Intel PCH Headphone
/dev/input/event12:	HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event13:	HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event14:	HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event15:	SynPS/2 Synaptics TouchPad
/dev/input/event16:	TPPS/2 IBM TrackPoint
Select the device event number [0-16]: 16
# EVEMU 1.3
# Kernel: 4.8.13-1-ARCH
# DMI: dmi:bvnLENOVO:bvrR0DET33W(1.09):bd10/13/2016:svnLENOVO:pn20H2S00700:pvrThinkPadE470:rvnLENOVO:rn20H2S00700:rvrNotDefined:cvnLENOVO:ct10:cvrNone:
# 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 code 15 (SYN_MAX)
#   Event type 1 (EV_KEY)
#     Event code 272 (BTN_LEFT)
#     Event code 273 (BTN_RIGHT)
#   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 03 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

On my old ThinkPad BTN_MIDDLE is right behind BTN_LEFT and BTN_RIGHT  under Event type 1 (EV_KEY).


Does someone knows a solution or how it could be investigated further?

Last edited by odzhychko (2017-09-10 22:31:55)

Offline

#2 2017-01-11 19:57:14

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 15,240

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

First, are you running Xorg or Wayland?
What is the output of xinput list-props 16     ?


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
----
How to Ask Questions the Smart Way

Offline

#3 2017-01-11 20:18:00

odzhychko
Member
Registered: 2016-03-23
Posts: 7

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

Xorg

$ xinput
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=13	[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	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)]
    ↳ Video Bus                               	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ Integrated Camera                       	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=11	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=12	[slave  keyboard (3)]
$ xinput list-props 16
unable to find device 16
$ xinput list-props 14
Device 'TPPS/2 IBM TrackPoint':
	Device Enabled (138):	1
	Coordinate Transformation Matrix (140):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Accel Speed (385):	0.000000
	libinput Accel Speed Default (386):	0.000000
	libinput Accel Profiles Available (387):	1, 1
	libinput Accel Profile Enabled (388):	1, 0
	libinput Accel Profile Enabled Default (389):	1, 0
	libinput Natural Scrolling Enabled (390):	0
	libinput Natural Scrolling Enabled Default (391):	0
	libinput Send Events Modes Available (262):	1, 0
	libinput Send Events Mode Enabled (263):	0, 0
	libinput Send Events Mode Enabled Default (264):	0, 0
	libinput Left Handed Enabled (392):	0
	libinput Left Handed Enabled Default (393):	0
	libinput Scroll Methods Available (394):	0, 0, 1
	libinput Scroll Method Enabled (395):	0, 0, 1
	libinput Scroll Method Enabled Default (396):	0, 0, 1
	libinput Button Scrolling Button (397):	0
	libinput Button Scrolling Button Default (398):	0
	Device Node (265):	"/dev/input/event16"
	Device Product ID (266):	2, 10
	libinput Drag Lock Buttons (399):	<no items>
	libinput Horizontal Scroll Enabled (267):	1

Offline

#4 2017-02-17 11:43:07

ArchE470
Member
Registered: 2017-02-13
Posts: 10

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

I have the same problem here with my E470 (see post here). The scroll button doesn't work under linux. What can I contribute to a solution for this problem?

Offline

#5 2017-02-17 12:11:11

Trilby
Forum Fellow
From: Massachusetts, USA
Registered: 2011-11-29
Posts: 17,602
Website

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

Arch3470, that's really not the same problem at all.  The OP should not have scrolling with the middle button as that is disabled.  The problem in this thread is that the button is not detected at all.

odzhychko, does xev not respond at all when the button is pressed, or what is the output from xev?


Resist the GNU world order.

Offline

#6 2017-02-17 12:27:10

ArchE470
Member
Registered: 2017-02-13
Posts: 10

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

I don't see any difference between the problems. In both cases the scroll button is not working. My xinput props output for the trackpoint is the same as for odzhychko. Xev shows no event when pressing the button

Last edited by ArchE470 (2017-02-17 12:28:04)

Offline

#7 2017-02-17 12:31:33

Trilby
Forum Fellow
From: Massachusetts, USA
Registered: 2011-11-29
Posts: 17,602
Website

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

If you're output matches that above, scrolling should not work, it's disabled.  Enable it.


Resist the GNU world order.

Offline

#8 2017-02-17 12:37:32

ArchE470
Member
Registered: 2017-02-13
Posts: 10

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

I assume you mean the property libinput Button Scrolling Button. I've enabled it with xinput set-prop "TPPS/2 IBM TrackPoint" "libinput Button Scrolling Button" 1, but nothing has changed.

Offline

#9 2017-02-17 12:40:28

Trilby
Forum Fellow
From: Massachusetts, USA
Registered: 2011-11-29
Posts: 17,602
Website

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

Stop trying to hijack this thread.  This thread is not about scrolling.  And what you did was the wrong way to enable it anyways.  If you want help with your problem, post some relevant diagnostics on your own thread.

EDIT: @ArchE470, is your middle button not working at all?  That is very different from scrolling not working.  In X11, there are up to 12 mouse "buttons".  1-left 2-middle 3-right 4-scroll-up 5-scroll-down 6-scroll-left 7-scroll-right.  The problem in this thread is that button 2 is not working.  You, however, keep referring to scrolling.  That is a different button event.  On trackpads, buttons 4 through 7 can be emulated by moving the trackpoint while the middle button is held.  If your problem is that buttons 4-7 are never registered that is a separate problem and it is because that emulation is disabled.  If you do not get button 2 events, then your problem may be the same - but that is not a "scroll button".


Resist the GNU world order.

Offline

#10 2017-02-17 14:54:22

odzhychko
Member
Registered: 2016-03-23
Posts: 7

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

Trilby wrote:

odzhychko, does xev not respond at all when the button is pressed, or what is the output from xev?

No, xev is not responding at alll.

Offline

#11 2017-04-02 17:40:15

gjasso
Member
From: Bonn, Germany
Registered: 2011-09-08
Posts: 22

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

I am experiencing this exact problem (same hardware). Buttons 1 and 3 are detected by xev, but "Button 2" is not.

The relevant output of xev:

$ xev # output when pressing Button 1
ButtonPress event, serial 33, synthetic NO, window 0x1e00001,
    root 0xf5, subw 0x0, time 337096, (163,413), root:(1127,452),
    state 0x0, button 1, same_screen YES

ButtonRelease event, serial 33, synthetic NO, window 0x1e00001,
    root 0xf5, subw 0x0, time 337096, (163,413), root:(1127,452),
    state 0x100, button 1, same_screen YES

and

$ xev # output when pressing Button 2
ButtonPress event, serial 33, synthetic NO, window 0x1e00001,
    root 0xf5, subw 0x0, time 338172, (163,413), root:(1127,452),
    state 0x0, button 3, same_screen YES

ButtonRelease event, serial 33, synthetic NO, window 0x1e00001,
    root 0xf5, subw 0x0, time 338201, (163,413), root:(1127,452),
    state 0x400, button 3, same_screen YES

The output of xev remains unchanged when pressing "Button 2".

Trying to set "Button 2" as the scrolling button with xinput  fails with the following error, which suggests that X does not detect the middle button of the TrackPoint:

$ xinput set-prop "TPPS/2 IBM TrackPoint" "libinput Button Scrolling Button" 2
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  57 ()
  Value in failed request:  0x1e2
  Serial number of failed request:  19
  Current serial number in output stream:  20

Any pointers (ha) on how to try to fix this are much appreciated.

Edit: FWIW I am using Xorg.

Last edited by gjasso (2017-04-02 17:41:32)

Offline

#12 2017-04-12 08:00:48

userone470
Member
Registered: 2017-04-12
Posts: 4

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

I found that

sudo modprobe -r psmouse
sudo modprobe psmouse proto=imps

enables the middle button, i.e. pasting works. BUT scrolling with touchpad or middle button + trackpoint does not work.  It's the same for "proto=exps" and "proto=bare".

BTW: I'm on Ubuntu 16.04 LTS. But this seems a generel Linux issue.

Offline

#13 2017-04-13 20:00:53

userone470
Member
Registered: 2017-04-12
Posts: 4

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

Some more debug info:

$ sudo dmidecode -t 21

# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.

Handle 0x0035, DMI type 21, 7 bytes
Built-in Pointing Device
 Type: Track Point
 Interface: PS/2
 Buttons: 3

Handle 0x0036, DMI type 21, 7 bytes
Built-in Pointing Device
 Type: Touch Pad
 Interface: PS/2
 Buttons: 2
$ cat /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/input77
U: Uniq=
H: Handlers=mouse0 event4
B: PROP=5
B: EV=b
B: KEY=e520 10000 0 0 0 0
B: ABS=660800011000003

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/serio6/input/input78
U: Uniq=
H: Handlers=mouse1 event14
B: PROP=21
B: EV=7
B: KEY=30000 0 0 0 0
B: REL=3
[...]

dmesg also tells us that psmouse failed to retrieve extended button data:

[...]
[ 5276.513617] psmouse serio7: trackpoint: failed to get extended button data
[ 5280.377455] psmouse serio7: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 0/0
[...]

Offline

#14 2017-04-15 23:01:45

userone470
Member
Registered: 2017-04-12
Posts: 4

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

I installed libinput (the xserver-xorg-input-libinput-hwe-16.04 package on Ubuntu 16.04.2.) and reloaded the psmouse module with proto=imps. This enabled the middle mouse button and scrolling with middle mouse button + trackpoint, but seems to disable two-finger scrolling.

Last edited by userone470 (2017-04-15 23:02:17)

Offline

#15 2017-04-20 20:23:35

userone470
Member
Registered: 2017-04-12
Posts: 4

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

Okay, so this seems like a kernel bug as discussed here
Making sure that __set_bit(BTN_MIDDLE, psmouse->dev->keybit); is called, e.g. by setting "button_info" to 0x33, enables the middle button of the trackpoint and still the gestures like two-finger scrolling are available on the touchpad. Yes, that's very hacky and dirty.

Offline

#16 2017-07-24 08:30:47

Nuteater
Member
From: Finland
Registered: 2012-07-25
Posts: 2

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

Offline

#17 2017-09-10 22:28:37

odzhychko
Member
Registered: 2016-03-23
Posts: 7

Re: [SOLVED] ThinkPad E470: Trackpoint middle button not detected

The bug is resolved. I noticed it working with linux 4.12.12-1.

Offline

Board footer

Powered by FluxBB