Bug 1278320

Summary: Logitech G600 Mouse - Mouse cursor jump to left side of screen when clicking after upgrading F22->F23
Product: [Fedora] Fedora Reporter: Chris Derichs <chris+rhbugzilla>
Component: xorg-x11-serverAssignee: X/OpenGL Maintenance List <xgl-maint>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 23CC: ajacocks, filippov.sem, peter.hutterer, xgl-maint
Target Milestone: ---Flags: peter.hutterer: needinfo?
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-12-20 15:24:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Chris Derichs 2015-11-05 09:24:21 UTC
Description of problem:
After upgrading from Fedora 22 -> Fedora 23 on the KDE Spin, using the logitech G600 when I left click, right click, etc (pretty much every button on the mouse) the cursor will jump to an offset (based on the "valuators") from the left edge of the screen.

The mouse is detected as two pointer devices:

⎜   ↳ Logitech Gaming Mouse G600                id=8    [slave  pointer  (2)]
⎜   ↳ Logitech Gaming Mouse G600                id=9    [slave  pointer  (2)]

Each button press is being treated as two separate events (one from each) and buttons. The system is processing the raw button presses and the firmware profile. The best example is the "g-shift" feature that changes the DPI while the button is held. Normally that wouldn't do anything but change the mouse speed but it's causing the cursor to jump to the left (offset a bit) when pressed and then all the way to the left edge when released. Moving the mouse while holding the button it otherwise behaves normal (until another button transition makes the cursor jump).

Using the KDE desktop environment.

Version-Release number of selected component (if applicable):
Name        : xorg-x11-server-Xorg
Version     : 1.18.0
Release     : 0.6.20151027.fc23
Architecture: x86_64
Install Date: Wed 04 Nov 2015 12:01:23 AM CST

Linux fedora 4.2.5-300.fc23.x86_64 #1 SMP Tue Oct 27 04:29:56 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

How reproducible:


Steps to Reproduce:
1. Boot to KDE Desktop in Fedora 23
2. Use attached G600 mouse and click.
3. See cursor jump to an absolute offset and then to the leftmost edge on release.

Actual results:


Expected results:
No abrupt cursor jumps.

Additional info:
Bus 001 Device 002: ID 046d:c24a Logitech, Inc. G600 Gaming Mouse

xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech Gaming Mouse G600                id=8    [slave  pointer  (2)]
⎜   ↳ DELL DELL USB Laser Mouse                 id=12   [slave  pointer  (2)]
⎜   ↳ Logitech Gaming Mouse G600                id=9    [slave  pointer  (2)]

Ran xinput test-xi2 9

Left Click:
EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          0: 1.00 (1.00)

EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          0: 0.00 (0.00)

For comparision, here's from id=8 durning the left click
EVENT type 15 (RawButtonPress)
    device: 8 (8)
    detail: 1
    flags: 
    valuators:

EVENT type 16 (RawButtonRelease)
    device: 8 (8)
    detail: 1
    flags: 
    valuators:

And back to id=9 for the rest of these

Right Click:
EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          0: 2.00 (2.00)

EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          0: 0.00 (0.00)

"G-Shift (rightmost button)"
EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          0: 32.00 (32.00)

EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          0: 0.00 (0.00)

Scroll wheel middle click
EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          0: 4.00 (4.00)

EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          0: 0.00 (0.00)

They two should only be sending keyboard presses but it looks like they have some RawMotion too.
Pressing G9: (Sends '[' )
EVENT type 13 (RawKeyPress)
    device: 9 (9)
    detail: 34
    valuators:

EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          1: 1.00 (1.00)

EVENT type 14 (RawKeyRelease)
    device: 9 (9)
    detail: 34
    valuators:

EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          1: 0.00 (0.00)




Pressing G10: (Sends 'v' )
EVENT type 13 (RawKeyPress)
    device: 9 (9)
    detail: 55
    valuators:

EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          1: 2.00 (2.00)

EVENT type 14 (RawKeyRelease)
    device: 9 (9)
    detail: 55
    valuators:

EVENT type 17 (RawMotion)
    device: 9 (9)
    detail: 0
    flags: 
    valuators:
          1: 0.00 (0.00)

Testing those is super annoying (because the mouse jumps and keyboard shortcuts) so if there's a way to get this to record the data without the mouse actually doing anything I can make a list of the output pressing every button.

[chris@fedora ~]$ xinput list --long 8
Logitech Gaming Mouse G600                      id=8    [slave  pointer  (2)]
        Reporting 7 classes:
                Class originated from: 8. Type: XIButtonClass
                Buttons supported: 24
                Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" "Button Side" "Button Extra" "Button Forward" "Button Back" "Button Task" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown" "Button Unknown"
                Button state:
                Class originated from: 8. Type: XIValuatorClass
                Detail for Valuator 0:
                  Label: Rel X
                  Range: -1.000000 - -1.000000
                  Resolution: 1 units/m
                  Mode: relative
                Class originated from: 8. Type: XIValuatorClass
                Detail for Valuator 1:
                  Label: Rel Y
                  Range: -1.000000 - -1.000000
                  Resolution: 1 units/m
                  Mode: relative
                Class originated from: 8. Type: XIValuatorClass
                Detail for Valuator 2:
                  Label: Rel Horiz Wheel
                  Range: -1.000000 - -1.000000
                  Resolution: 1 units/m
                  Mode: relative
                Class originated from: 8. Type: XIValuatorClass
                Detail for Valuator 3:
                  Label: Rel Vert Wheel
                  Range: -1.000000 - -1.000000
                  Resolution: 1 units/m
                  Mode: relative
                Class originated from: 8. Type: XIScrollClass
                Scroll info for Valuator 2
                  type: 2 (horizontal)
                  increment: 1.000000
                  flags: 0x0
                Class originated from: 8. Type: XIScrollClass
                Scroll info for Valuator 3
                  type: 1 (vertical)
                  increment: -1.000000
                  flags: 0x2 ( preferred )

[chris@fedora ~]$ xinput list --long 9
Logitech Gaming Mouse G600                      id=9    [slave  pointer  (2)]
        Reporting 25 classes:
                Class originated from: 9. Type: XIButtonClass
                Buttons supported: 5
                Button labels: "Button Unknown" "Button Unknown" "Button Unknown" "Button Wheel Up" "Button Wheel Down"
                Button state:
                Class originated from: 9. Type: XIKeyClass
                Keycodes supported: 248
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 0:
                  Label: Abs Misc
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 1:
                  Label: Abs Misc
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 2:
                  Label: Abs Misc
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 3:
                  Label: Abs Misc
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 4:
                  Label: Abs Misc
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 22.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 5:
                  Label: Abs Misc
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 6:
                  Label: Abs Misc
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 7:
                  Label: Abs MT Touch Major
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 8:
                  Label: Abs MT Touch Minor
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 9:
                  Label: Abs MT Width Major
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 10:
                  Label: Abs MT Width Minor
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 11:
                  Label: Abs MT Orientation
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 12:
                  Label: Abs MT Position X
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 13:
                  Label: Abs MT Position Y
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 14:
                  Label: Abs MT Tool Type
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 15:
                  Label: Abs MT Blob ID
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 16:
                  Label: Abs MT Pressure
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 17:
                  Label: Abs MT Distance
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 18:
                  Label: Abs MT Tool X
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 19:
                  Label: Abs MT Tool Y
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 20:
                  Label: None
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 21:
                  Label: None
                  Range: 0.000000 - 164.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000
                Class originated from: 9. Type: XIValuatorClass
                Detail for Valuator 22:
                  Label: None
                  Range: -1.000000 - -1.000000
                  Resolution: 0 units/m
                  Mode: absolute
                  Current value: 0.000000

I'm going to try to perform the same test on a F22 system I haven't upgraded at some point.

Was going to report against the package owning /usr/share/X11/xorg.conf.d/10-quirks.conf but it doesn't see to be in the drop down. xorg-x11-server-Xorg-1.18.0-0.6.20151027.fc23.x86_64
Seemed to make sense to go up a level.

Comment 1 Chris Derichs 2015-11-08 10:11:44 UTC
I figured out what was wrong.
Or rather, I figured out what I needed to do to fix it, not sure why it did.

I was able to compare another Fedora 23 install to my upgraded one and found a missing package.

Broken:
[chris@fedora ~]$ rpm -qa |grep -iE "evdev|input" |sort
libevdev-1.4.4-1.fc23.x86_64
libinput-1.1.0-3.fc23.x86_64
xorg-x11-drv-evdev-2.9.99-2.20150807git66c997886.fc23.x86_64

Working:
[chris@fedora ~]$ rpm -qa |grep -iE "evdev|input" |sort
libevdev-1.4.4-1.fc23.x86_64
libinput-1.1.0-3.fc23.x86_64
xorg-x11-drv-evdev-2.9.99-2.20150807git66c997886.fc23.x86_64
xorg-x11-drv-libinput-0.14.0-2.fc23.x86_64

Installing that one package and rebooting fixed it.

[chris@fedora ~]$ xinput -list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ DELL DELL USB Laser Mouse                 id=10   [slave  pointer  (2)]
⎜   ↳ Logitech Gaming Mouse G600                id=11   [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)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Dell Dell USB Keyboard Hub                id=8    [slave  keyboard (3)]
    ↳ Dell Dell USB Keyboard Hub                id=9    [slave  keyboard (3)]
    ↳ Logitech Gaming Mouse G600                id=12   [slave  keyboard (3)]


More searches indicate X will fall back to using libevdev if libinput is missing and that would suggest there's a bug in libevdev at least for this device.

I suppose this could just be closed out unless someone wants to figure out why it doesn't behave properly without xorg-x11-drv-libinput. I can do some testing if needed.

Comment 2 Semyon 2016-03-01 09:20:12 UTC
Can confirm this bug on Fedora 23 with Openbox. Installing xorg-x11-drv-libinput solves the problem.

Comment 3 J. Alexander Jacocks 2016-06-27 18:53:09 UTC
I have the same issue, with a Lenovo W451, and a Kensibgton Ci20 Optical Mouse.  However, in my case installing the missing xorg-x11-drv-libinput package didn't help.

Interestingly, the package was missing from my Fedora 23 Xfce spin, even though this was a new install, and not an upgrade.

 sudo xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Kensington      USB/PS2 Wheel Mouse     	id=12	[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	id=15	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	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)]
    ↳ Yubico Yubikey 4 OTP+U2F+CCID           	id=10	[slave  keyboard (3)]
    ↳ Integrated Camera                       	id=11	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=13	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=16	[slave  keyboard (3)]

Comment 4 Peter Hutterer 2016-07-06 09:47:22 UTC
record the device with evemu-record please and attach the sequence here. could be that you're getting some extra event here that confuses either driver.

Comment 5 J. Alexander Jacocks 2016-07-18 17:42:44 UTC
Sorry, been away from that very annoying mouse.  I'll try to get this for you, early next week.

Comment 6 Fedora End Of Life 2016-11-24 13:05:48 UTC
This message is a reminder that Fedora 23 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 23. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as EOL if it remains open with a Fedora  'version'
of '23'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 23 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 7 Fedora End Of Life 2016-12-20 15:24:04 UTC
Fedora 23 changed to end-of-life (EOL) status on 2016-12-20. Fedora 23 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.