Bug 597214

Summary: Thinkpad scroll wheel emulation not working anymore
Product: [openSUSE] openSUSE 11.3 Reporter: Stefan Seyfried <seife>
Component: X.OrgAssignee: Stefan Dirsch <sndirsch>
Status: RESOLVED FIXED QA Contact: E-mail List <xorg-maintainer-bugs>
Severity: Normal    
Priority: P2 - High    
Version: Factory   
Target Milestone: ---   
Hardware: x86-64   
OS: Other   
Whiteboard:
Found By: Community User Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Stefan Seyfried 2010-04-16 06:14:30 UTC
In 11.2, the scroll wheel emulation on my thinkpad is working well (press and hold middle mouse button, then scroll with the trackstick). In FACTORY it does not.

11.2 Xorg.0.log:
(II) config/hal: Adding input device TPPS/2 IBM TrackPoint
(**) TPPS/2 IBM TrackPoint: always reports core events
(**) TPPS/2 IBM TrackPoint: Device: "/dev/input/event1"
(II) TPPS/2 IBM TrackPoint: Found 3 mouse buttons
(II) TPPS/2 IBM TrackPoint: Found x and y relative axes
(II) TPPS/2 IBM TrackPoint: Configuring as mouse
(**) Option "Emulate3Buttons" "true"
(II) TPPS/2 IBM TrackPoint: Forcing middle mouse button emulation on.
(**) Option "EmulateWheel" "true"
(**) Option "EmulateWheelButton" "2"
(**) Option "EmulateWheelTimeout" "200"
(**) Option "YAxisMapping" "4 5"
(**) TPPS/2 IBM TrackPoint: YAxisMapping: buttons 4 and 5
(**) Option "XAxisMapping" "6 7"
(**) TPPS/2 IBM TrackPoint: XAxisMapping: buttons 6 and 7
(**) TPPS/2 IBM TrackPoint: EmulateWheelButton: 2, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
(II) XINPUT: Adding extended input device "TPPS/2 IBM TrackPoint" (type: MOUSE)

FACTORY Xorg.0.log:
[ 27573.683] (II) config/udev: Adding input device TPPS/2 IBM TrackPoint (/dev/input/event1)
[ 27573.683] (**) TPPS/2 IBM TrackPoint: Applying InputClass "evdev pointer catchall"
[ 27573.683] (**) TPPS/2 IBM TrackPoint: Applying InputClass "evdev pointer catchall"
[ 27573.683] (**) TPPS/2 IBM TrackPoint: always reports core events
[ 27573.683] (**) TPPS/2 IBM TrackPoint: Device: "/dev/input/event1"
[ 27573.688] (II) TPPS/2 IBM TrackPoint: Found 3 mouse buttons
[ 27573.688] (II) TPPS/2 IBM TrackPoint: Found relative axes
[ 27573.688] (II) TPPS/2 IBM TrackPoint: Found x and y relative axes
[ 27573.688] (II) TPPS/2 IBM TrackPoint: Configuring as mouse
[ 27573.688] (**) TPPS/2 IBM TrackPoint: YAxisMapping: buttons 4 and 5
[ 27573.688] (**) TPPS/2 IBM TrackPoint: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[ 27573.688] (II) XINPUT: Adding extended input device "TPPS/2 IBM TrackPoint" (type: MOUSE)
[ 27573.688] (**) TPPS/2 IBM TrackPoint: (accel) keeping acceleration scheme 1
[ 27573.688] (**) TPPS/2 IBM TrackPoint: (accel) acceleration profile 0
[ 27573.688] (**) TPPS/2 IBM TrackPoint: (accel) acceleration factor: 2.000
[ 27573.688] (**) TPPS/2 IBM TrackPoint: (accel) acceleration threshold: 4
[ 27573.688] (II) TPPS/2 IBM TrackPoint: initialized for relative axes.

The "EmulateWheelButton: 4" in FACTORY is obviously wrong.
I could change it in a custom xorg.conf, but I think that's not how it's meant to be ;-)
Additionally, FACTORY does only map on axis, not both.
Comment 1 Stefan Seyfried 2010-04-16 06:17:33 UTC
oops. I found /etc/X11/xorg.conf.d/11-mouse.conf
Is this the place to configure this? Then I will send a patch.
Comment 2 Stefan Seyfried 2010-04-16 06:29:30 UTC
11-mouse.conf contains:

Section "InputClass"
        # unknown
        Identifier      "IBM TPPS/2 TrackPoint"
        MatchVendor     "IBM Corp."
        MatchProduct    "TPPS/2 IBM TrackPoint"
        MatchIsPointer  "on"
        Driver  "evdev"
        Option  "EmulateWheel"  "on"
        Option  "EmulateWheelButton"    "2"
        Option  "YAxisMapping"    "4 5"
        Option  "Emulate3Buttons"    "on"
        Option  "EmulateWheelTimeout"    "200"
EndSection

but it does not seem to match. /proc/bus/input/devices:
I: Bus=0011 Vendor=0002 Product=000a Version=0000
N: Name="TPPS/2 IBM TrackPoint"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input1
U: Uniq=
H: Handlers=mouse0 event1 
B: EV=7
B: KEY=70000 0 0 0 0
B: REL=3

lshal (no idea if there's a better way nowadays):
udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port_logicaldev_input'
  info.capabilities = {'input', 'input.mouse'} (string list)
  info.category = 'input'  (string)
  info.parent = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port'  (string)
  info.product = 'TPPS/2 IBM TrackPoint'  (string)
  info.subsystem = 'input'  (string)
  info.udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port_logicaldev_input'  (string)
  input.device = '/dev/input/event1'  (string)
  input.originating_device = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port'  (string)
  input.product = 'TPPS/2 IBM TrackPoint'  (string)
  input.x11_driver = 'evdev'  (string)
  linux.device_file = '/dev/input/event1'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'input'  (string)
  linux.sysfs_path = '/sys/devices/platform/i8042/serio1/input/input1/event1'  (string)


There is no trace of "IBM Corp.". So I commented out the MatchVendor line and that seems to work.
The Xaxis mapping still is missing.
Comment 3 Stefan Dirsch 2010-04-16 08:12:57 UTC
Yeah, things have changed. :-(

Try to figure out with 'udevadm info -e' (check for ID_INPUT*) the right string
for vendor (probably ID_VENDOR).

Did we have Xaxis mapping in 11.2 for that touchpad?
Comment 4 Stefan Seyfried 2010-04-16 09:37:13 UTC
P: /devices/platform/i8042/serio1/input/input1
E: UDEV_LOG=3
E: DEVPATH=/devices/platform/i8042/serio1/input/input1
E: PRODUCT=11/2/a/0
E: NAME="TPPS/2 IBM TrackPoint"
E: PHYS="isa0060/serio1/input0"
E: EV==7
E: KEY==70000 0 0 0 0
E: REL==3
E: MODALIAS=input:b0011v0002p000Ae0000-e0,1,2,k110,111,112,r0,1,amlsfw
E: SUBSYSTEM=input

P: /devices/platform/i8042/serio1/input/input1/event1
N: input/event1
S: char/13:65
S: input/by-path/platform-i8042-serio-1-event-mouse
E: UDEV_LOG=3
E: DEVPATH=/devices/platform/i8042/serio1/input/input1/event1
E: MAJOR=13
E: MINOR=65
E: DEVNAME=/dev/input/event1
E: SUBSYSTEM=input
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_SERIAL=noserial
E: ID_PATH=platform-i8042-serio-1
E: DMI_VENDOR=LENOVO
E: DEVLINKS=/dev/char/13:65 /dev/input/by-path/platform-i8042-serio-1-event-mouse

Setting MatchVendor to "LENOVO" does *not* work, only not setting it at all works for me (but I might be missing something).

in 11.2 we had Xaxis:
(**) Option "YAxisMapping" "4 5"
(**) TPPS/2 IBM TrackPoint: YAxisMapping: buttons 4 and 5
(**) Option "XAxisMapping" "6 7"
(**) TPPS/2 IBM TrackPoint: XAxisMapping: buttons 6 and 7
Comment 5 Stefan Dirsch 2010-04-16 09:56:19 UTC
Ok. Let's do it that way (SR #38030).
Comment 6 Stefan Seyfried 2010-04-18 09:14:07 UTC
Works well for me with the X11:Xorg package