Logitech MX1000 Mouse on Ubuntu 8.04 Linux (Hardy Heron) - Adventures in Switching to Linux

Sunday, April 27, 2008

Logitech MX1000 Mouse on Ubuntu 8.04 Linux (Hardy Heron)

I upgraded to Ubuntu 8.04 tonight but when I did, my mouse didn't work at all anymore! I just had a dead pointer. I was able to get it working previously under Ubuntu 7.10 (Getting my Logitech MX1000 Mouse to Work, Fully, on Ubuntu 7.10) but those settings no longer worked. After playing with the settings some more, removing "CorePointer" from the InputDevice line did it for me. So, I am going to write up a new, improved and simpler how-to for the Logitech MX1000 Mouse on Ubuntu 8.04 Linux (Hardy Heron). This may also work for other multiple button mice but I don't have any other multi button mice to find out.

The very first thing to do is BACKUP your /etc/X11/xorg.conf file. Want a command for that? This will copy it to your home directory as xorg.conf.backup.

cp /etc/X11/xorg.conf ~/xorg.conf.backup

If ever you need to go back to your working config, just login to the terminal failsafe mode and switch the destination and source for the command below (plus add sudo to the front). Like so:

sudo cp ~/xorg.conf.backup /etc/X11/xorg.conf


Now then, first thing to do is install or make sure you have evdev installed. evdev is a generic input driver for keyboards and mice. (Read the man page I linked to for more detailed configuration options. Look most at the Absolute Axis Configuration section.) I think evdev is installed by default but run the line below to install it either way. If it is already installed it will just say so and not change anything.

sudo apt-get install xserver-xorg-input-evdev

Next you will want to edit your xorg.conf file. You must edit it with super privileges or you will not be able to save it. To edit it in gedit, issue this command:

gksu gedit /etc/X11/xorg.conf

Add a new MX1000 InputDevice section and comment out the old mouse InputDevice section. I first thought you didn't have to comment out the old mouse section but if you don't then your buttons will get mapped to 3 and 2 instead of 9 and 8 and they will not work for forward and back.

Section "InputDevice"
Identifier "Logitech MX1000"
Driver "evdev"
Option "Name" "Logitech USB Receiver"
Option "HWHEELRelativeAxisButtons" "7 6"
EndSection

#Section "InputDevice"
# Identifier "Configured Mouse"
# Driver "mouse"
# Option "CorePointer"
# Option "Device" "/dev/input/mice"
# Option "Protocol" "ImPS/2"
# Option "ZAxisMapping" "4 5"
# Option "Emulate3Buttons" "true"
#EndSection
The "Name" option must match the device name exactly. It is case sensitive. To determine your device name, run:

cat /proc/bus/input/devices

You will get output (along with other devices) that looks something like this:
I: Bus=0003 Vendor=046d Product=c50e Version=2500
N: Name="Logitech USB Receiver"
P: Phys=usb-0000:00:1d.3-2/input0
S: Sysfs=/devices/virtual/input/input5
U: Uniq=
H: Handlers=kbd mouse1 event5
B: EV=7
B: KEY=1f0000 0 100 38 c0000000 c0000 0 0 0
B: REL=103
The Name listed there is the same name that must match in your InputDevice section. Next, add the new Logitech InputDevice that you created in the ServerLayout section and comment out the old mouse. Do it this way so if you messed something up, you can comment out the new Logitech mouse and uncomment the old mouse to switch back.
#    Inputdevice    "Configured Mouse"
Inputdevice "Logitech MX1000"
Now just logout and log back in. Logging out seems to restart the XServer, a necessary step, but if that doesn't work you can use Ctrl + Alt + Backspace. Use caution as that will kill your X session immediately and all open programs will just get killed.

If you have any problems with this, you might want to try my previous write up from when I was running Ubuntu 7.10. I upgraded from 7.10 -> 8.04 so I may have missed some necessary steps because I'd already done them previously. I don't think I did though.

And for reference, my full /etc/X11/xorg.conf after I was done:
Section "ServerLayout"

# Uncomment if you have a wacom tablet
# InputDevice "stylus" "SendCoreEvents"
# InputDevice "cursor" "SendCoreEvents"
# InputDevice "eraser" "SendCoreEvents"
Identifier "Default Layout"
screen 0 "aticonfig-Screen[0]" 0 0
screen "aticonfig-Screen[1]" rightof "aticonfig-Screen[0]"
Inputdevice "Generic Keyboard"
# Inputdevice "Configured Mouse"
Inputdevice "Logitech MX1000"
EndSection

Section "Files"
EndSection

Section "Module"
Load "glx"
EndSection

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection

Section "InputDevice"
Identifier "Logitech MX1000"
Driver "evdev"
Option "Name" "Logitech USB Receiver"
Option "HWHEELRelativeAxisButtons" "7 6"
EndSection

#Section "InputDevice"
# Identifier "Configured Mouse"
# Driver "mouse"
# Option "CorePointer"
# Option "Device" "/dev/input/mice"
# Option "Protocol" "ImPS/2"
# Option "ZAxisMapping" "4 5"
# Option "Emulate3Buttons" "true"
#EndSection

Section "InputDevice"
Identifier "stylus"
Driver "wacom"
Option "Device" "/dev/input/wacom"
Option "Type" "stylus"
Option "ForceDevice" "ISDV4"# Tablet PC ONLY
EndSection

Section "InputDevice"
Identifier "eraser"
Driver "wacom"
Option "Device" "/dev/input/wacom"
Option "Type" "eraser"
Option "ForceDevice" "ISDV4"# Tablet PC ONLY
EndSection

Section "InputDevice"
Identifier "cursor"
Driver "wacom"
Option "Device" "/dev/input/wacom"
Option "Type" "cursor"
Option "ForceDevice" "ISDV4"# Tablet PC ONLY
EndSection

Section "Monitor"
Identifier "Generic Monitor"
Horizsync 30.0 - 70.0
Vertrefresh 50.0 - 160.0
Option "DPMS"
EndSection

Section "Monitor"
Identifier "aticonfig-Monitor[0]"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
EndSection

Section "Monitor"
Identifier "aticonfig-Monitor[1]"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
EndSection

Section "Device"
Identifier "ATI Technologies Inc RV370 5B60 [Radeon X300 (PCIE)]"
Driver "fglrx"
Busid "PCI:1:0:0"
EndSection

Section "Device"
Identifier "aticonfig-Device[0]"
Driver "fglrx"
Busid "PCI:1:0:0"
EndSection

Section "Device"
Identifier "aticonfig-Device[1]"
Driver "fglrx"
Busid "PCI:1:0:0"
Screen 1
EndSection

Section "Screen"
Identifier "Default Screen"
Device "ATI Technologies Inc RV370 5B60 [Radeon X300 (PCIE)]"
Monitor "Generic Monitor"
Defaultdepth 24
EndSection

Section "Screen"
Identifier "aticonfig-Screen[0]"
Device "aticonfig-Device[0]"
Monitor "aticonfig-Monitor[0]"
Defaultdepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "aticonfig-Screen[1]"
Device "aticonfig-Device[1]"
Monitor "aticonfig-Monitor[1]"
Defaultdepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection

Section "Extensions"
Option "Composite" "0"
EndSection

And one more thing, a good program to test out your mouse buttons to figure out what is what is xev. The forward and back buttons should show as 9 and 8. Your left button is 1, right is 3 and pressing the scroll wheel is 2.



16 comments:

David said...

Thanks for the fix, although I would like to get the thumb buttons working and I use that a lot.

Hawkeye-X

Forrest said...

The forward and back buttons should work after doing this. See what they are translating to by running "xev | grep -i button" and then clicking in the box. If you get nothing just run it as "xev" and see what that says when you click. The middle thumb button can be mapped as something under System -> Preferences -> Keyboard Shortcuts. I am still not sure why but the Left and Right middle button scroll is mapped as Xf86AudioRaiseVolume and Xf86AudioLowerVolume and the middle up and down buttons are mapped as XF86Forward and XF86Back.

Ralf said...

Specifying the name didn't work for me, but this did work:

Section "InputDevice"
Identifier "Mouse0"
Driver "evdev"
Option "Device" "/dev/input/by-id/usb-Logitech_USB_RECEIVER-event-mouse"
Option "HWHEELRelativeAxisButtons" "7 6"
Option "CorePointer"
EndSection

Patrick Lemmers said...

that worked great! thanks :) I really use those back/fwd buttons often.

hvacr said...

The back and forward buttons will not work for me. I ran xev | grep -i button which gave me the normal 8 and 9.

Not sure why it will not work though.

Cristiano said...

Man, you don't know the time I spent to get it to work again... and after all, it was so simple like to remove "Option "CorePointer""
Thanks

Shrinidhi said...

Hi i just found a new software for linux providing support for the Logitech devices. check out http://www.hidpoint.com

hope this helps.

Douglas said...

I got the Logitech RX1000 working with this is xorg.conf

It is not perfect because firefox is mixing up the scroll with the page forward and back but all the buttons are working including the 8th!


Section "InputDevice"
Identifier "Configured Mouse"
Driver "evdev"
Option "CorePointer"
Option "Protocol" "evdev"
Option "Dev Name" "Logitech USB Optical Mouse"
Option "Dev Phys" "usb-*/input0"
Option "Device" "/dev/input/event2"
Option "Buttons" "8"
Option "ButtonMapping" "1 2 3 6 7 8 4 5"
Option "Resolution" "800"
Option "Emulate3Buttons" "no"
Option "XAxisMapping" "4 5"
Option "YAxisMapping" "6 7"
EndSection

FokkerCharlie said...

I had evdev working nicely with my Ubuntu/Hardy setup and Logitech Cordless Optical Trackman- here is the xorg.conf that worked for me:

Section "InputDevice"
Identifier "Logitech TrackMan"
Driver "evdev"
Option "Device" "/dev/input/by-id/usb-Logitech_USB_Receiver-event-mouse"
EndSection

Unfortunately, it stopped playing yesterday! Now the scroll down/up buttons (not the wheel, the buttons above and below) are confused- xev reports two buttons being pressed- 4 and 9 from the 'up' button and 5 and 1 from the down. The scroll wheel returns button 4 or 5 for up/down.

I was so pleased I had fixed this, and now it's broken again!

Charlie

YO! said...

Thanx a lot. It seems to have helped mouse pointer move smoothly. Also changed to evdev driver for LX300 keyboard (instead of "kbd"). Any ideas if it will help?

One problem is that whenever I connect Seagate FreeAgent Pro USB ext HDD, it messes up USB HID devices for a while. Any clues on that issue?

adamwk said...

Here is how I got it to work for my G7. I'm not sure what is entirely necessary, all I know is that it works the way I want it to :) This recognizes all keys (in xev, though I'm not sure it ever appeared correctly in there) except for the precision ones + (4) and - (5) on the mouse, but they were already working for me. I hope this helps everyone out there, because it took me staying up till 2:30 in the am to figure out.

in xorg.conf

Section "InputDevice"
Identifier "Logitech G7"
Driver "evdev"
Option "Name" "Logitech USB Receiver"
Option "HWHEELRelativeAxisButtons" "7 6"
Option "Device" "/dev/input/by-id/usb-Logitech_USB_Receiver-event-mouse"
EndSection


#then my server layout section looks like this

Section "ServerLayout"
Identifier "Default Layout"
screen 0 "Default Screen" 0 0
Inputdevice "Logitech G7"
EndSection


And finally I installed keybind from this tutorial. Where my actual keybind file looked like this

"/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Left]""
m:0x0 + b:7
"/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Right]""
m:0x0 + b:6
"/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Home]""
m:0x0 + b:8


I didn't bother doing the "cruise" feature because I think it is dumb. If you want to bind it like the others it is the 2nd button on the mouse. Best of luck!

Kogi Kaishakunin said...
This comment has been removed by the author.
Kogi Kaishakunin said...

Any clue about getting the MX1000 mouse working on Ubuntu 8.04 connected using the PS2 port? I am using a KVM switch and hence can't do USB / evdev :(

Chery Bond said...
This comment has been removed by a blog administrator.
pbsl said...
This comment has been removed by a blog administrator.
kimberly said...
This comment has been removed by a blog administrator.