Click to See Complete Forum and Search --> : USB Mouse Wheel Issue with 2.6 kernel
rhb327
07-07-2004, 08:48 AM
Ok, I've read and read on this one and still need some help. I have MDK 10.0 Official Download and have a USB keybaord and mouse. I've taken this about as far as I know how so any help is much appreciated. I've tried the drak mouse utility with no luck. Currently both the keyboard and mouse work except for the wheel and side button (I can live without the side button but would really like to have the wheel). The mouse is fully functional in WinXp and on an older 2.4x kernel when I used MDK 9.2; thus, this seems to be a 2.6.x issue. I know some of the module names changed. I think the problem is that I need the uhci-hcd module but whenever I add it both the keyboard and mouse will not function. lspci suggests that I have UHCI and EHCI. I read somewhere (MDK errata I think) that in the append section of my lilo.conf I need apic=off and lapic=off so I have this but I do have acpi=on. I also "experimented" with modprobe.preload but don't have any usb related (AFAIK) listings in it at the moment.
Keyboard: A4Tech
Mouse: IBM Optical Navigator (one side button, wheel button)
USB Controller: Integrated on my Biostar 200V motherboard (VIA based)
Kernel (from uname -r): 2.6.3-7mdk
This is what my XF86Config-4 file has...
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
EndSection
This also exists later in XF86Config-4:
InputDevice "Mouse1" "CorePointer"
modprobe.conf pertinent section:
install usb-interface /sbin/modprobe ehci-hcd; /bin/true
* I've also tried: install usb-interface /sbin/modprobe uhci-hcd /sbin/modprobe ehci-hcd; /bin/true
This is the pertinent lsmod usb listing...
usbcore 99132 4 hid,ehci-hcd
* I've tried modprobe usbkbd, usbmouse...I also read that ehci needs either ohci-hcd OR uhci-hcd...I tried all combination with ehci-hcd including both of them!
Again, at my wits end on this so any ideas other that switch distros ;-) is much appreaciated.
besides the correct usb modules for your usb ports/card all you need are the following modules for your mouse to work.
In USB Support:
USB Human Interface Device (full HID) support
HID input layer support
In Input Device Support:
Just set the mouse screen resolution, none of the other stuff is required
you do not want the "usbmouse" module
PS: ehci is for USB 2.0 support, uhci is for regular USB support
rhb327
07-07-2004, 10:28 AM
Thanks for the speedy response. I don't quite understand. I am a newbie so a little hand holding may be necessary :-)
USB Human Interface Device (full HID) support
So this is just the hid module, right? If so, I've got that one covered as it is listed in lsmod. You mention ehci (2.0) and uhci (1.x) but does ehci require either uhci or ohci? On boot with only ehci loaded, I can see via "dmesg | grep usb" that both the mouse and keyboard were identified as "slow" USB (1.x). I guess this is where I get confused...if ehci can function without uhci or ohci and let usb devices work in the slower mode, than maybe my USB configuration is fine and I just need to concentrate on the wheel configuration via XF86Config-4 and xmodmap. I've played around with lspci and it sure shows UHCI and EHCI so I'm not cerain if I need both or not. Most usb/wheel suggestions seem to point to using IMPS/2 and ZAxisMapping 4 5. I've also experimented with the Buttons option. mousedrak (or drakmouse..I can't remember) seems to always launch as Universal PS/2 or USB so I pretty much gave up on this utility.
BTW, I do have both the usb keybaord and mouse support in the bios and PnP OS set to no.
In Input Device Support:
Just set the mouse screen resolution, none of the other stuff is required
Not sure what you mean here. I think you are referring to the XF86Config-4 "Input Device" section so is there another line I need there that refers to mouse resolution?
you do not want the "usbmouse" module
PS: ehci is for USB 2.0 support, uhci is for regular USB support
Yeah, based on my reading. The usbmouse / usbkbd are for lightweight potentially embedded systems but for a PC the hid module(s) are the way to go.
Thanks.
So is just the hid module, right?
correct
You mention ehci (2.0) and uhci (1.x) but does ehci require either uhci or ohci? On boot with only ehci loaded, I can see via "dmesg | grep usb" that both the mouse and keyboard were identified as "slow" USB (1.x). I guess this is where I get confused
they do not require each other to work. ohci is for USB 1 ports on non intel and non via chipsets. ehci is for USB 2.0 ports/cards, and uhci is for USB 1 ports/boards that use intel or via chipsets. when you are configuring your kernel, select the _help_ option, it tells you all of this stuff for most options in the kernel.
Not sure what you mean here. I think you are referring to the XF86Config-4 "Input Device" section so is there another line I need there that refers to mouse resolution?
no. i am referring to the mouse screen reolution setting in the Input Device Support section of the kernel config. it's not critical.
rhb327
07-07-2004, 11:12 AM
Ok. I've never compiled my own kernel and don't want to take that on just yet. Surely (?), Mandrake threw the whole kitchen sink in the kernel they distribute so I would think I could get this working without compiling my own kernel.
As both USB devices are functional, except for the mouse wheel, I think perhaps my configuration is what's incorrect. Also, a previous kernel from MDK 9.2 seemed to work ok with this mouse (IBM optical navigator USB mouse made by micro innovations).
That said, any other tips for getting wheel functionality? Could anyone provide their XF86Config-4 file for a usb mouse on MDK 10.0 Official and and xmodmap changes you made?
Thanks!
rhb327
07-08-2004, 08:12 AM
Still no progress. I do have some additional information though.
I installed 'xev' and noticed that the mouse wheel causes no events. I only get buttons 1 (left), 2 (wheel button) and 3 (right). What might not let X see these events? I read one google post about PS2 emulation code might not let these events through and possbily editing the /boot/config_xxx file and setting CONFIG PS2MOUSE to "m" or "n"...mine currently says "y". I don't know what this file is doing; I just thought I would mention it.
Also, can someone confirm if ehci-hcd requires either ohci-hcd or uhci-hcd? Especially when connecting slower (1.x) usb devices. The FAQ at www.linux-usb.org seems to require this.
Thanks.
Originally posted by rhb327
Still no progress. I do have some additional information though.
I installed 'xev' and noticed that the mouse wheel causes no events. I only get buttons 1 (left), 2 (wheel button) and 3 (right). What might not let X see these events?
only thing i have ever seen that caused that was teh wrong mouse protocol specified in XF86Config
I read one google post about PS2 emulation code might not let these events through and possbily editing the /boot/config_xxx file and setting CONFIG PS2MOUSE to "m" or "n"...mine currently says "y". I don't know what this file is doing; I just thought I would mention it.
try taking it (CONFIG_PS2MOUSE) out of the kernel then.
Also, can someone confirm if ehci-hcd requires either ohci-hcd or uhci-hcd? Especially when connecting slower (1.x) usb devices.
for the second (third?) time, no... it does not require ohci or uhci.
Could anyone provide their XF86Config-4 file for a usb mouse on MDK 10.0 Official and and xmodmap changes you made?
None of this mouse configuration is Mandrake-specific. There is actually a how-to for this in the Help files on this site.
http://www.justlinux.com/forum/showthread.php?s=&threadid=117016
rhb327
07-08-2004, 09:42 AM
Ok, so "take out of the kernel" means what exactly? As I mentioned I've never built my own kernel so if I edit the /boot/config_xxx file this will take it out of the kernel? Or can I add something to the append line in lilo.conf to make this happen.
Sorry to be redundant, just trying to clarify mixed inputs as linux-usb.org seems to suggest otherwise in regards to needing uhci/ohci. And in my case when I add uhci...no joy.
Quote from www.linux-usb.org FAQ:
Second, you need to know what Host Controller Driver (HCD) to use. There's only one Linux EHCI driver, ehci-hcd. (If you use it, you'll also need to use an OHCI or UHCI driver.) On 2.5 and later kernels, there's also only one OHCI driver (ohci-hcd) and one UHCI driver (uhci-hcd). On 2.4 and earlier kernels, the names are different. And while there's only one OHCI driver (usb-ohci), you probably have a choice of two UHCI drivers, usb-uhci and the "alternate (JE)" driver uhci. You probably need to load those drivers as modules, in which case lsmod will tell you whether it's already there or not. If you don't have a modular build, it's harder to tell what is working unless you mount usbfs and look at /proc/bus/usb/devices to see whether it lists a root hub for each host controller you have.
refer to our docs in the Help File Library on how to compile a kernel if you need help with kernels, or use google for Linux to find a how-to, there are many on the net.
For the _last_ time:
you do not need to load all of those USB modules, nor does that quote you provided say that you must load them all. you only load the one(s) for which you have the hardware.
so, if you have a normal PC with USB 1 and USB 2 hardware, you load the uhci, and ehci ones. the ohci is for a type of USB controller that most PCs do not have.
even if you load all 3 modules, if you don't have the hardware for some of them then they won't do anything.
uhci-hcd == USB 1.x ports/cards on intel/via chipsets
ohci-hcd == USB 1.x ports/cards on non intel and non via chipsets
ehci-hcd == USB 2.0 ports/cards
If you are still having difficulty with understanding what hardware you have and the modules then do dmesg | less and read through the output, it will show you when your card is detected and what module it is using.
rhb327
07-08-2004, 12:14 PM
Thanks...I guess this mouse with the wheel just won't work as I've tried just about every protocol possible in my XF86Config-4. I'll have to try something more linux friendly. I've included some useful output below...maybe a more experienced eye might see something. Clearly the motherboard specs indicate I have 4x USB 2.0 ports so it makes sense why ehci is what is working to date (lack the wheel).
I do disagree with your interpretation of the quote I provided.
"There's only one Linux EHCI driver, ehci-hcd. (If you use it, you'll also need to use an OHCI or UHCI driver.)"
To me that clearly implies if you use ehci-hcd you will need to use either ohci-hcd or uhci-hcd...but I already know your position on it as you've provided it 3 or 4 times!
lsusb:
Bus 001 Device 001: ID 0000:0000
lspci:
00:00.0 Host bridge: VIA Technologies, Inc.: Unknown device 3205
00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge
00:09.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host
Controller (rev 80)
00:0f.0 IDE interface: VIA Technologies, Inc.
VT82C586A/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE (rev 06)
00:10.0 USB Controller: VIA Technologies, Inc. USB (rev 81)
00:10.1 USB Controller: VIA Technologies, Inc. USB (rev 81)
00:10.2 USB Controller: VIA Technologies, Inc. USB (rev 81)
00:10.3 USB Controller: VIA Technologies, Inc. USB (rev 81)
00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
00:11.0 ISA bridge: VIA Technologies, Inc.: Unknown device 3227
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235
AC97 Audio Controller (rev 60)
01:00.0 VGA compatible controller: VIA Technologies, Inc.: Unknown device
7205 (rev 01)
dmesg | grep usb:
drivers/usb/core/usb.c: registered new driver usbfs
drivers/usb/core/usb.c: registered new driver hub
drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic
drivers/usb/core/usb.c: registered new driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0
drivers/usb/serial/usb-serial.c: USB Serial support registered for
Handspring Visor / Palm OS
drivers/usb/serial/usb-serial.c: USB Serial support registered for Sony
Clie 3.5
drivers/usb/core/usb.c: registered new driver visor
drivers/usb/serial/visor.c: USB HandSpring Visor / Palm OS driver v2.1
drivers/usb/core/usb.c: registered new driver hiddev
drivers/usb/core/usb.c: registered new driver hid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
dmesg | grep hci:
ehci_hcd 0000:00:10.4: EHCI Host Controller
ehci_hcd 0000:00:10.4: irq 5, pci mem cf80d000
ehci_hcd 0000:00:10.4: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:10.4: USB 2.0 enabled, EHCI 1.00, driver 2003-Dec-29
ohci1394: $Rev: 1097 $ Ben Collins <bcollins@de...>
ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[11] MMIO=[de000000-de0007ff]
Max Packet=[2048]
lsmod (usb pertinent):
visor 16172 0
usbserial 29232 1 visor
ehci-hcd 24196 0
usbcore 99132 6 hid,visor,usbserial,ehci-hcd
rhb327
07-12-2004, 09:33 AM
FOLLOW UP:
I upgraded to kernel 2.6.7 from 2.6.7-3mdk and all is well. Both the usb keybaord and mouse work using the settings aforementioned.
Thanks for all the help.