All the Buttons on my Logitech MX1000 Mouse Working using Evdev
I am so happy right now. First tonight I got my mouse working in Ubuntu 6.10 without having to reseat the USB dongle every time I start up. Now I have all 8 buttons and both the vertical and horizontal scroll working.
It was pain staking, I’ll tell you that much. I got most of my information from ubuntuforums.org, but some of it was all me.
First off, my setup was a bit different than most users on the forum. I have the Logitech MX5000 Bluetooth Desktop which comes with an MX1000 mouse and an MX5000 keyboard. Most people on the forum just have the mouse. In the average user’s case only one device would go through the USB receiver making it easy for Linux to identify. In my case both the keyboard and mouse go through the same receiver, so specifying to evdev which device was the mouse got a little trickier.
If you are having a problem getting all of the buttons on your Logitech mouse working I would suggest you first read over this post at ubuntuforums.org. It is very informative and has helped many people.
Let me outline some of my specifics here. The following code snippits are what is currently working on my computer:
cat /proc/bus/input/devices
I: Bus=0003 Vendor=046d Product=c70e Version=4004 N: Name="Logitech Logitech BT Mini-Receiver" P: Phys=usb-0000:00:02.1-9.1.4.2/input0 S: Sysfs=/class/input/input1 H: Handlers=kbd event1 B: EV=120003 B: KEY=10000 7 ff800000 7ff febeffdf ffefffff ffffffff fffffffe B: LED=1f I: Bus=0003 Vendor=046d Product=c70a Version=4004 N: Name="Logitech Logitech BT Mini-Receiver" P: Phys=usb-0000:00:02.1-9.1.4.3/input0 S: Sysfs=/class/input/input2 H: Handlers=kbd mouse0 event2 ts0 B: EV=f B: KEY=c0002 400 0 0 fff0001 f80 78000 6639fa d841d7ad 9e0000 0 0 0 B: REL=1c3 B: ABS=1 0
ls /dev/input
by-id by-path event0 event1 event2 mice mouse0 ts0
Important bits of my xorg.conf
Section "ServerLayout"
InputDevice "MX1000"
Identifier "Default Layout"
Screen "Default Screen" 0 0
InputDevice "Generic Keyboard"
# InputDevice "Configured Mouse"
Option "AIGLX" "true"
EndSection
...
Section "InputDevice"
Identifier "MX1000"
Driver "evdev"
Option "CorePointer"
Option "Device" "/dev/input/event2"
Option "Resolution" "800"
Option "AbsoluteScreen" "0"
EndSection
Now I followed the steps in Section 1 of the forum post above, but every time I tried to start GDM after modifying xorg.conf to use evdev Xorg would crash and I would get the following error at the end of my /var/log/Xorg.0.log.old file:
(II) evdev brain: Rescanning devices (1). (**) Option "CorePointer" (**) MX1000-usb-0000:00:02.1-9.1.4.3/input0: Core Pointer (II) MX1000-usb-0000:00:02.1-9.1.4.3/input0: Found 1 absolute axes. (II) MX1000-usb-0000:00:02.1-9.1.4.3/input0: Configuring as pointer. (**) MX1000-usb-0000:00:02.1-9.1.4.3/input0: Configuring in Absolute mode. (**) MX1000-usb-0000:00:02.1-9.1.4.3/input0: AbsoluteScreen: -1. Backtrace: 0: /usr/X11R6/bin/X(xf86SigHandler+0x81) [0x80c3971] 1: [0xffffe420] 2: /usr/lib/xorg/modules/input/evdev_drv.so [0xb713a67b] 3: /usr/lib/xorg/modules/input/evdev_drv.so [0xb713b6fd] 4: /usr/lib/xorg/modules/input/evdev_drv.so(evdevNewDriver+0x44) [0xb713b860] 5: /usr/lib/xorg/modules/input/evdev_drv.so [0xb713a3f1] 6: /usr/X11R6/bin/X(InitInput+0x16f) [0x809f21f] 7: /usr/X11R6/bin/X(main+0x355) [0x806e5e5] 8: /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc) [0xb7dab8cc] 9: /usr/X11R6/bin/X(FontFileCompleteXLFD+0xa1) [0x806da51] Fatal server error: Caught signal 11. Server aborting
So I did a search on google for evdev AbsoluteScreen and added the following line to the InputDevice section for my mouse in xorg.conf:
Option "AbsoluteScreen" "0"
I had no faith in this working, but to my surprise it did. I had to double check to make sure that yes in fact it was working. I played with the buttons a bit and found that they were all functioning. Even the side button that before was acting the same as button 1 was working. I now have it set to enable Scale (Expose) in Beryl.
I’m not sure why this AbsoluteScreen option was causing issues on my computer. Maybe it had something to do with my dual-head video card or the way I have beryl setup. Maybe it has to do with me using beta nvidia drivers. I really dont know, but it worked for me.




March 7th, 2007 at 5:25 pm
Thanks a bunch. I will give this a go and see if it fixes my issues with getting this to work.
I too have an MX1000 as well as a wireless keyboard (Duo something somethin…) and a second mouse (I hate it when I forget to charge the MX1000 and I have to wait for it to charge)…
Hopefully this will work.
April 9th, 2007 at 4:30 am
hey, nice stuff! i tried it as well and after spending a lot of time on it it almost works…
putting expose on one of the thumb buttons seems like a good idea, i just can’t get this to work. can you maybe explain how you achieved this? what keycombo to trigger expose do you use? how do you trigger it through the mousebutton? using xbindkeys and what - xte or xvkbd? whats your .xbindkeysrc looking like? etc…
really would like to get this working as well…
cheers - anti
ps: oh, do you use your keyboards media-keys? are they working? i finally managed to have them working by using the ‘Dev Phys’ and ‘SendCoreEvents’ option in xorg-conf and modifying the udev-rule with an additional ‘filer’ like posted in the thread somewhere…
April 9th, 2007 at 1:14 pm
Every once and a while I my mouse changes between event1 and event2 and I have to go edit my xorg.conf file to change that before GDM will start. It’s a pain, but I was never able to get the custom event to work that they show you how to create in all the tutorials.
I’m not at home right now, so I cant say exactly what I have setup. I’ll double check when I’m home but I don’t think I had to do anything special to my settings. I am pretty sure it was just detected as Button10. I don’t even use xbindkeys at this point.
I haven’t tried using the media keys, but I’ll try what you said here and if I hit a snag I might just be emailing you for a little help!
Thanks for stopping by.
December 8th, 2007 at 6:59 pm
Wow !! Great !!! I’ve been trying to make all of my buttons work for a long time now and had the same problem (MX5000 and MX1000 on the same USB receiver)… Thanks for the tip !
By the way, I wrote a little app that goes with mx5000-tools to use the LCD screen of the MX5000 keyboard if you like you can take a look here : http://snouffy.free.fr/linux/mx5000.html
And thanks again I can finally use the tilt wheel to make my cube rotate !!!