Logitech G5 Review Under Linux
Tuesday, June 20th, 2006 at 8:05 amAbout five years ago, my mouse of choice, a Radioshack re-branded trackball, with pretty good precision, two wheels, and half a billion buttons, died. Just flat out quit working. So, I didn’t feel like tracking down a new replacement mouse, so I bought a $5 Compaq optical midnight special, so I can go buy a better mouse later on.
This temporary mouse, originally bought for my Pentium 133, ends up being plugged into my new workstation, the Pentium 3 550. So, you know, the mouse still works, might as well keep using it, right? It’s got two buttons, and a clickable wheel, and it doesn’t suck, right? Wrong.
I finally gut my computer, and put a Sempron 2600+ in it, and did so about 9 months ago. This mouse is still around, and whoever built the mouse (it wasn’t Compaq, they don’t actually build hardware), they did a pretty decent job.
About the time I upgraded my computer, I started playing the classic Quakeworld, the father of all online multiplayer first person shooters, again. And I kept playing, and playing, and playing, and I notice that the sensitivity on my mouse is so bad, I can’t even aim the lightning gun properly… so one day, I got tired of it.
A week ago, I decided to finally order a new mouse, and I chose the Logitech G5. I went from a crappy, old, 200 DPI, three button with wheel mouse to a 2000 DPI, four button with tiltable wheel.
This mouse, my loyal readers, is a monster. It is a God among mice. It is the Cadillac of input devices.
And now on to the review
The Logitech G5 is the next generation flagship product of their gaming mouse line. Here’s what it can do:
- A high resolution sensor (measuring 30×30 pixels) rated at a sensitivity of 2000 DPI allows maximum precision with the included ability to change the DPI (between 2000, 800, and 400) on the fly, using two buttons located below the wheel, without needing to install the included driver.
- The ability to change precision on the fly without needing a driver allows you to do so on literally any platform that supports USB mice, including Linux and OSX.
- The G5 can poll the sensor at 500 times a second on any platform that supports it (such as Windows 2000/XP or Linux) providing increased precision and lower input lag.
- The G5 also uses an expanded protocol allowing higher precision output (16-bit, vs what most mice use, 8-bit or 12-bit). This allows you to use 2000 DPI mode, and move the mouse very fast without precision loss.
- Four buttons, one smooth scrolling wheel, and Logitech’s “TiltWheel” functionality, allowing you to press the wheel left and right to do application specific functions.
- Braided fiber wire covering, to reduce wear and tear on the USB cable.
- A weight cartridge, allowing you to weight your mouse however you want.
- Last, but not least, very smooth feet, allowing the mouse to move smoothly, even if you load the weight cartridge with all 36 grams of weight.
Now, first, I want to actually get to the feet. This is probably the best feature of the mouse. Sure, current and upcoming gaming mice will have 2000 or higher DPI, but these feet, even with all 36 grams loaded into the weight cartridge, glide smoother than any mouse I’ve ever used. This impresses me very much. To put this in perspective, three alkaline AA batteries, or two rechargable AA batteries weigh about 36 grams; that is very heavy.
Now, onto the more important stuff: I earlier mentioned that I couldn’t use Quakeworld’s lightning gun precise enough to be much use due to my mouse. Well, now, with 2000 DPI at my command, I can precision hit fast moving targets at long distances with ease.
Not impressed enough? The lightning gun in Quakeworld requires more precision than any hitscan weapon in any game ever. You thought the Quake3 lightning gun was hard? QW’s is even worse.
Another neat feature is the tilt wheel. You can press the wheel left and right, and generate input events. In Firefox, I can tilt the wheel left, and it goes back in my history; tilting the wheel right goes forward in my history. Other applications can be configured to do other things.
How to get it to work in Linux
As a USB HID device, it already works in Linux; however, to get the full use out of the mouse (such as being able to use the tilt function correctly) edit your/etc/X11/xorg.conf‘s InputDevice section for your mouse to say:
Section "InputDevice"
Identifier "Configured Mouse"
Driver "evdev"
Option "CorePointer"
Option "Name" "Logitech USB Gaming Mouse"
Option "ZAxisMapping" "4 5 6 7"
Option "Emulate3Buttons" "false"
EndSection
… which should allow you to use the fourth/thumb button, and the tilt function correctly. Buttons one through three and the wheel already corectly work without this. Also, on Ubuntu, make sure xserver-xorg-input-evdev is installed, as it is not installed by default.
Update: In newer versions of X, the above code doesn’t entirely work. Run cat /proc/bus/input/devices and look for the device named Logitech USB Gaming Mouse. It will list a line under it called Handlers, look at which event it uses (for me, this is event6). Add a line in the above xorg.conf lines below Name, as such: Option "Device" "/dev/input/eventn" where n is the number of the event.
Also, in some versions of X, tilt left and tilt right may be backwards. To fix this, create a file called ~/.Xmodmap and put in it:
pointer = 1 2 3 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20
and run xmodmap ~/.Xmodmap to update your map. On logging in again, Gnome will ask if you want to load this file: click on the file, click “Load”, and click “Ok”.
See chuck’s comments on May 1st 2008 (on page 5) below, newer X’s require that config.
Summary
Compared to all the mice I’ve used in all my years of computing, I don’t think I’ve ever been happier with a mouse. Actually, I didn’t even know it was possible to be happy with a mouse. Most people overlook the importance of a mouse in both gaming and other environments, and now that I have this mouse, I don’t think I can ever go back to ‘normal’ mouse. The only way they could possibly improve this is tighten up the wheel a little bit as to make clicking the middle button and not accidently scrolling a little easier.
Note: I have not reviewed the included drivers or software, as I don’t game in Windows.
Score: 9 out of 10.
Thanks, it works under Slackware-13.0.
What does this following line do exactly?
Option “Device” “/dev/input/eventn”
When I first configured xorg.conf, it was event3, but now
cat /proc/bus/input/devices prints event1.
I didn’t change the line in xorg.conf, but the mouse still works.
It tells X which device to use. Problem is, those numbers can change randomly. Use something like:
Option “Device” “/dev/input/by-id/usb-Logitech_USB_Gaming_Mouse-event-mouse”
Substituting the correct id if you’re not using a G5.
Yeah thanks, but without that line in the xorg.conf, my mouse still works as normal. Why is that?
It may be autodetecting it, or it may be ignoring the section altogether and loading its own driver. Read your /var/log/Xorg.0.log to find out (look for evdev).
How do I get rid of these two error messages at the end of Xorg.0.log?
(EE) PreInit returned NULL for “Logitech USB Gaming Mouse”
(EE) config/hal: NewInputDeviceRequest failed (8)
Here is my xorg.conf:
Section “InputDevice”
# generated from default
Identifier “Mouse0″
Driver “evdev”
Option “CorePointer”
Option “Name” “Logitech USB Gaming Mouse”
Option “Device” “/dev/input/by-id/usb-Logitech_USB_Gaming_Mouse-event-mouse”
Option “Emulate3Buttons” “false”
Option “ZAxisMapping” “4 5 6 7″
EndSection
and, Xorg.0.log
..
..
..
(**) Option “CorePointer”
(**) Mouse0: always reports core events
(**) Mouse0: Device: “/dev/input/by-id/usb-Logitech_USB_Gaming_Mouse-event-mouse”
(II) Mouse0: Found 20 mouse buttons
(II) Mouse0: Found x and y relative axes
(II) Mouse0: Found scroll wheel(s)
(II) Mouse0: Configuring as mouse
(**) Option “Emulate3Buttons” “false”
(II) Mouse0: Forcing middle mouse button emulation off.
(**) Mouse0: YAxisMapping: buttons 4 and 5
(**) Mouse0: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
(II) XINPUT: Adding extended input device “Mouse0″ (type: MOUSE)
(**) Mouse0: (accel) keeping acceleration scheme 1
(**) Mouse0: (accel) filter chain progression: 2.00
(**) Mouse0: (accel) filter stage 0: 20.00 ms
(**) Mouse0: (accel) set acceleration profile 0
(II) Mouse0: initialized for relative axes.
(II) config/hal: Adding input device Macintosh mouse button emulation
(**) Macintosh mouse button emulation: always reports core events
(**) Macintosh mouse button emulation: Device: “/dev/input/event0″
(II) Macintosh mouse button emulation: Found 3 mouse buttons
(II) Macintosh mouse button emulation: Found x and y relative axes
(II) Macintosh mouse button emulation: Configuring as mouse
(**) Macintosh mouse button emulation: YAxisMapping: buttons 4 and 5
(**) Macintosh mouse button emulation: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
(II) XINPUT: Adding extended input device “Macintosh mouse button emulation” (type: MOUSE)
(**) Macintosh mouse button emulation: (accel) keeping acceleration scheme 1
(**) Macintosh mouse button emulation: (accel) filter chain progression: 2.00
(**) Macintosh mouse button emulation: (accel) filter stage 0: 20.00 ms
(**) Macintosh mouse button emulation: (accel) set acceleration profile 0
(II) Macintosh mouse button emulation: initialized for relative axes.
(II) config/hal: Adding input device Chicony PFU-65 USB Keyboard
(**) Chicony PFU-65 USB Keyboard: always reports core events
(**) Chicony PFU-65 USB Keyboard: Device: “/dev/input/event4″
(II) Chicony PFU-65 USB Keyboard: Found keys
(II) Chicony PFU-65 USB Keyboard: Configuring as keyboard
(II) XINPUT: Adding extended input device “Chicony PFU-65 USB Keyboard” (type: KEYBOARD)
(**) Option “xkb_rules” “evdev”
(**) Option “xkb_model” “evdev”
(**) Option “xkb_layout” “us”
(**) Option “xkb_options” “terminate:ctrl_alt_bksp”
(II) config/hal: Adding input device Logitech USB Gaming Mouse
(**) Logitech USB Gaming Mouse: always reports core events
(**) Logitech USB Gaming Mouse: Device: “/dev/input/event1″
(WW) Logitech USB Gaming Mouse: device file already in use. Ignoring.
(II) UnloadModule: “evdev”
(EE) PreInit returned NULL for “Logitech USB Gaming Mouse”
(EE) config/hal: NewInputDeviceRequest failed (8)
Please disregard the above question.
In xorg.conf, I deleted the line
InputDevice “Mouse0″ “CorePointer”
in Section “Server Layout” then the error messages disappeared.
Thanks.
http://www.hidpoint.com/
recommend this website do download Logitech/Microsoft drivers for linux.. ;] hope this helps like it did for me
[...] (My thanks go to chuck) [...]
Can we start at the beginning now? I have a Logitech VX Revolution. Is it all I need to do to just add a file called xmodmap?
I just don’t understand. Can anyone assist?
On 8.10 and want buttons to work.
Thanx,
zeddox
[...] with Linux before I buy? Works fine for me in Ubuntu 8.04 If you’re having problems check this out http://adterrasperaspera.com/blog/20…?cp=5#comments (whatch for line [...]
in ibex, all i had to do was make an .Xmodmap file with the following in it:
pointer = 1 6 3 4 5 8 9 2 7
Big thanks! Got it working in hardy heron 64
Thanks a lot, it works! But in Slackware distribution, make sure that
xf86-input-evdev-1.2.0-i486-1 package is installed.
Thanks for the help with getting tilt to work.
I hate WPG2.
Whats wrong with the page ? gettin errors with your templates.
Chuck, if you’re still out there, thanks.
Ok problem solved… with chucks xmodmap
i swapped 2 with 7 – problem solved…
So its safe to say u can probley update this guide now… with chucks method etc..
Im runnung ubuntu hardy heron 64bit.
Im using chucks xmodmap solution, that makes tilt-wheel work, but not the thumb-button… if i change it back to yours, tilt-wheel doesnt work… bugga