Bug 87037

Summary: Some mouse DPI data
Product: systemd Reporter: Alexander E. Patrakov <patrakov>
Component: generalAssignee: Peter Hutterer <peter.hutterer>
Status: RESOLVED FIXED QA Contact: systemd-bugs
Severity: normal    
Priority: medium CC: b.bellec, benjamin.tissoires, dh.herrmann, peter.hutterer, sylvain.pasche
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: version information from my M705 label

Description Alexander E. Patrakov 2014-12-05 17:34:03 UTC
A Logitech USB mouse at work:

mouse:usb:v046dpc05a:name:Logitech USB Optical Mouse:
 MOUSE_DPI=1000@125

====================

A very old optical Logitech PS/2 mouse:

mouse:unknown bus type:v0002p0006:name:ImExPS/2 Logitech Wheel Mouse:
 MOUSE_DPI=400@250

Note: udev only contains rules to set MOUSE_DPI on USB and Bluetooth mice. Just in case, here is the full udevadm info, without MOUSE_DPI:

P: /devices/platform/i8042/serio1/input/input4/event3
N: input/event3
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/event3
E: DEVPATH=/devices/platform/i8042/serio1/input/input4/event3
E: ID_INPUT=1
E: ID_INPUT_MOUSE=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=67
E: SUBSYSTEM=input
E: USEC_INITIALIZED=32050

====================

A wireless Logitech mouse at home:

mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4008:
 MOUSE_DPI=800@166

====================

An Oklick Bluetooth mouse (which is prone to overshooting using the standard acceleration profile):

mouse:bluetooth:v056ep0061:name:Laser  BTmouse:
 MOUSE_DPI=*800@333 1600@333
Comment 1 Peter Hutterer 2014-12-07 23:21:24 UTC
(In reply to Alexander E. Patrakov from comment #0)
> A very old optical Logitech PS/2 mouse:
> 
> mouse:unknown bus type:v0002p0006:name:ImExPS/2 Logitech Wheel Mouse:
>  MOUSE_DPI=400@250


don't think I'm going to bother with this one. PS/2 doesn't give us a correct vid/pid so we can't have proper hwdb entries here. If you want that to work, you'll need to override this locally in a hwdb file.
 
> A wireless Logitech mouse at home:
> 
> mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4008:
>  MOUSE_DPI=800@166

do you have a model number for this one?
Comment 2 Alexander E. Patrakov 2014-12-08 05:08:01 UTC
(In reply to Peter Hutterer from comment #1)
> (In reply to Alexander E. Patrakov from comment #0)
> > A wireless Logitech mouse at home:
> > 
> > mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4008:
> >  MOUSE_DPI=800@166
> 
> do you have a model number for this one?

Yes. This comes from a combo: http://www.logitech.com/en-sg/product/wireless-combo-mk270

The mouse identifies itself in the KDE's battery applet as "Logitech, Inc. M185".
Comment 3 Alexander E. Patrakov 2014-12-08 05:10:54 UTC
(In reply to Peter Hutterer from comment #1)
> (In reply to Alexander E. Patrakov from comment #0)
> > A very old optical Logitech PS/2 mouse:
> > 
> > mouse:unknown bus type:v0002p0006:name:ImExPS/2 Logitech Wheel Mouse:
> >  MOUSE_DPI=400@250
> 
> 
> don't think I'm going to bother with this one. PS/2 doesn't give us a
> correct vid/pid so we can't have proper hwdb entries here. If you want that
> to work, you'll need to override this locally in a hwdb file.

Well, at least the tool should not suggest to copy-paste this entry with "unknown bus type" in the middle, as there is no rule for this bus :)
Comment 4 Zbigniew Jedrzejewski-Szmek 2014-12-08 19:17:27 UTC
> mouse:unknown bus type:v0002p0006:name:ImExPS/2 Logitech Wheel Mouse:
>  MOUSE_DPI=400@250

Actually we can support this without any ambiguity:

mouse:*:*:name:ImExPS/2 Logitech Wheel Mouse:
 MOUSE_DPI=400@250

Quite a lot of people still have those around (I have a few), and they become annoyingly slow when set to the default 1000 DPI.


OTOH, this one is problematic:
> mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4008:
>  MOUSE_DPI=800@166
The receiver is too generic. Here I have

mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:
 MOUSE_DPI=1000@125

from a M505/B605 mouse.

Would it be possible to match on the actual device that is connected to the receiver? I see that upower has special support for LG devices [1,2]. Maybe it could export the label of the device as an udev attribute and we could key of that then?

[1] https://julien.danjou.info/blog/2012/logitech-unifying-upower
[2] http://cgit.freedesktop.org/upower/commit/?id=95184593504bca5240ecd296db98954decd2c5a5
Comment 5 Peter Hutterer 2014-12-08 22:04:08 UTC
(In reply to Zbigniew Jedrzejewski-Szmek from comment #4)
> > mouse:unknown bus type:v0002p0006:name:ImExPS/2 Logitech Wheel Mouse:
> >  MOUSE_DPI=400@250
> 
> Actually we can support this without any ambiguity:
> 
> mouse:*:*:name:ImExPS/2 Logitech Wheel Mouse:
>  MOUSE_DPI=400@250

yeah, do we know that all of these have the same DPI? I'm pretty sure there are more devices that register with that name. I guess we can push it and figure it out :)


> OTOH, this one is problematic:
> > mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4008:
> >  MOUSE_DPI=800@166
> The receiver is too generic. Here I have
> 
> mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:
>  MOUSE_DPI=1000@125
> 
> from a M505/B605 mouse.
 
> Would it be possible to match on the actual device that is connected to the
> receiver? I see that upower has special support for LG devices [1,2]. Maybe
> it could export the label of the device as an udev attribute and we could
> key of that then?

Benjamin Tissoires has a patchset waiting for v3.19 that exports the name of the device. So your M505 should have the name M505 (of B605, not sure). Note that Alexandre's line has the wireless PID included in the name, that's enough to identify the device without the name. Your line doesn't, not sure why though.
Comment 6 Zbigniew Jedrzejewski-Szmek 2014-12-08 22:19:27 UTC
(In reply to Peter Hutterer from comment #5)
> > mouse:*:*:name:ImExPS/2 Logitech Wheel Mouse:
> >  MOUSE_DPI=400@250
> 
> yeah, do we know that all of these have the same DPI? I'm pretty sure there
> are more devices that register with that name. I guess we can push it and
> figure it out :)
Yeah, especially that if anything, they might have *lower* resolutions, so
400 is a better default for them than 1000.

> > OTOH, this one is problematic:
> > > mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4008:
> > >  MOUSE_DPI=800@166
> > The receiver is too generic. Here I have
> > 
> > mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:
> >  MOUSE_DPI=1000@125
> > 
> > from a M505/B605 mouse.
>  
> > Would it be possible to match on the actual device that is connected to the
> > receiver? I see that upower has special support for LG devices [1,2]. Maybe
> > it could export the label of the device as an udev attribute and we could
> > key of that then?
> 
> Benjamin Tissoires has a patchset waiting for v3.19 that exports the name of
> the device. So your M505 should have the name M505 (of B605, not sure). Note
> that Alexandre's line has the wireless PID included in the name, that's
> enough to identify the device without the name. Your line doesn't, not sure
> why though.
Copy-paste-error. It should be:

mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:101d:
 MOUSE_DPI=900@166

This is a bit surprising. I'm pretty sure I got slightly different results
yesterday, but maybe it was a typo.
Comment 7 Peter Hutterer 2014-12-08 22:27:21 UTC
(In reply to Zbigniew Jedrzejewski-Szmek from comment #6)
> > Benjamin Tissoires has a patchset waiting for v3.19 that exports the name of
> > the device. So your M505 should have the name M505 (of B605, not sure). Note
> > that Alexandre's line has the wireless PID included in the name, that's
> > enough to identify the device without the name. Your line doesn't, not sure
> > why though.
> Copy-paste-error. It should be:
> 
> mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:101d:
>  MOUSE_DPI=900@166
> 
> This is a bit surprising. I'm pretty sure I got slightly different results
> yesterday, but maybe it was a typo.

huh. try to run this a few more times if you can to verify. I really want to make sure this isn't a mouse-dpi-tool bug before we add this to the hwdb.
Comment 8 Zbigniew Jedrzejewski-Szmek 2014-12-08 22:31:18 UTC
(In reply to Peter Hutterer from comment #7)
> > This is a bit surprising. I'm pretty sure I got slightly different results
> > yesterday, but maybe it was a typo.
> 
> huh. try to run this a few more times if you can to verify. I really want to
> make sure this isn't a mouse-dpi-tool bug before we add this to the hwdb.
I think it must have been a typo. I was testing a few different mice, so I could have mixed them up.
Comment 9 Peter Hutterer 2014-12-09 00:39:17 UTC
(In reply to Zbigniew Jedrzejewski-Szmek from comment #6)
> (In reply to Peter Hutterer from comment #5)
> > > mouse:*:*:name:ImExPS/2 Logitech Wheel Mouse:
> > >  MOUSE_DPI=400@250
> > 
> > yeah, do we know that all of these have the same DPI? I'm pretty sure there
> > are more devices that register with that name. I guess we can push it and
> > figure it out :)
> Yeah, especially that if anything, they might have *lower* resolutions, so
> 400 is a better default for them than 1000.

hmm, we need to add something to the udev rules for this too otherwise we won't trigger the hwdb. any suggestions?  My idea was something like:

KERNELS=="input*", DRIVERS=="psmouse", \
        IMPORT{builtin}="hwdb 'mouse:ps2::name:$attr{name}:'", \
        GOTO="mouse_end"

But that one doesn't work, for reasons I don't understand. It should match my touchpad (when added to the top of the file), but it doesn't. And attr{name} is empty anyway....
Comment 10 Peter Hutterer 2014-12-10 00:10:14 UTC
all but the ps2 mice:

commit eb59c75e9a864063f3916c1914a563e1c89cf3ac
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 8 09:17:26 2014 +1000

    hwdb: add more mouse DPI entries
Comment 11 Benjamin Bellec 2014-12-15 20:15:44 UTC
Hello Peter,

I have data for 2 mices, do you want I open a new bug or can I put the data here ?
Comment 12 Zbigniew Jedrzejewski-Szmek 2014-12-15 20:54:04 UTC
Open a new one. Otherwise things will get lost.
Comment 13 Peter Hutterer 2014-12-22 04:13:06 UTC
Alexander, for your PS/2 mouse, try this please:

udev rule (insert before LABEL="mouse_end"):
DRIVERS=="psmouse", \
        IMPORT{builtin}="hwdb 'mouse:ps2::name:$attr{name}:'", \
        GOTO="mouse_end"

hwdb entry:
mouse:ps2:*:name:ImExPS/2 Logitech Wheel Mouse:
 MOUSE_DPI=400@250

does that work for you?
Comment 14 Alexander E. Patrakov 2014-12-22 07:26:21 UTC
The rule that you suggested doesn't work. Here is a working rule:

DRIVERS=="psmouse", \
        IMPORT{builtin}="hwdb 'mouse:ps2::name:$attr{device/name}:'", \
        GOTO="mouse_end"

The hwdb entry works as it is:

mouse:ps2:*:name:ImExPS/2 Logitech Wheel Mouse:
 MOUSE_DPI=400@250


Result:

# udevadm info /dev/input/event3
P: /devices/platform/i8042/serio1/input/input4/event3
N: input/event3
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/event3
E: DEVPATH=/devices/platform/i8042/serio1/input/input4/event3
E: ID_INPUT=1
E: ID_INPUT_MOUSE=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=67
E: MOUSE_DPI=400@250
E: SUBSYSTEM=input
E: USEC_INITIALIZED=384140
Comment 15 David Herrmann 2014-12-23 13:19:02 UTC
(In reply to Alexander E. Patrakov from comment #14)
> The rule that you suggested doesn't work. Here is a working rule:
> 
> DRIVERS=="psmouse", \
>         IMPORT{builtin}="hwdb 'mouse:ps2::name:$attr{device/name}:'", \
>         GOTO="mouse_end"

We might want to add a SUBSYSTEMS=="serio". Otherwise, looks good to me!
Comment 16 Peter Hutterer 2014-12-23 22:09:25 UTC
commit 60329a9d9fc58b1a4c8a6244592f731839c2e8d7, thanks
Comment 17 Sylvain Pasche 2015-08-27 19:31:16 UTC
Hi,

While measuring a few Logitech mice, I also checked a M705 mouse.

I arrive at a different value than what was added here (600 dpi instead of 800):
mouse:usb:v046dp101b:name:Logitech M705:
 MOUSE_DPI=600@166

Any idea if the original measurement could be wrong? Or maybe the manufacturer released different versions of the hardware for the same model?
Comment 18 Thomas H.P. Andersen 2015-08-27 19:51:57 UTC
Not sure that this is the correct but for this, but... 

I have a M705 too and can confirm the 800 DPI. The spec actually says "Max 1000" so I did many tests because I wanted to trust the spec. But it was always 800.
http://support.logitech.com/product/marathon-mouse-m705
Comment 19 Sylvain Pasche 2015-08-29 11:45:27 UTC
Created attachment 117979 [details]
version information from my M705 label

Hi Thomas, thanks for the feedback. I found this bug from git blame, and it seems to be the only one mentioning this mouse on bugzilla.

I checked again to be sure of my 600dpi results. I wonder if the resolution might be dependent on the firmware version. Here's mine, extracted from ltunify.

# grab the index with the following command
ltunify list

ltunify info INDEX

Device index 1
Mouse
Name: M705
Wireless Product ID: 101B
Serial number: 1E954EC6
Firmware version: 017.000.00013
Bootloader version: BL.002.003

I started the "Logitech Unifying Software" on Windows to try to update the firmware, and this version seems to be the latest one.

Care to share your firmware version? I also attached the label found on my mouse, in case we can identify that they released several hardware versions.

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.