You are not logged in.
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
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
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
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
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?
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline
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
If you're output matches that above, scrolling should not work, it's disabled. Enable it.
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline
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
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".
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline
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
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
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
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
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
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
There is also a bug report in the kernel.org Bugzilla.
Offline
The bug is resolved. I noticed it working with linux 4.12.12-1.
Offline