Re: USB Mouse not working on Thinkpad R40, works under WinXP

From: Tai-hwa Liang <avatar_at_mmlab.cse.yzu.edu.tw>
Date: Sun, 20 Jun 2004 17:09:34 +0800 (CST)
On Mon, 14 Jun 2004, Marc van Kempen wrote:
> Hi,
>
> I just bought a new usb mouse (Genius Powerscroll Eye U+P, optical
> mouse), and while my other USB mouse works fine under FreeBSD -current
> (about two months old), this one doesn't.

I have the similar problem on both -STABLE and -CURRENT. Mine is an "ELECOM
M-MAPP1KHBK" optical mouse, which can be probed by ums.ko and usbd; however,
I found no mouse event from /dev/ums0 while moving, clicking or wheel
scrolling the mouse.

> The mouse is recognized (I see the entry in /var/log/messages) and usbd
> is running and forking off a moused (moused -p /dev/ums0 -I
> /var/run/...). X is configured to work with sysmouse (and this works
> with my other USB mouse), but both on the text console and in X the
> pointer doesn't move and buttons don't work.

Same here: the usbd detected the mouse, but neither the console
pointer(moused) nor the XFree86 responded to the mouse movement.

Controller /dev/usb0:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb1:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
 port 1 addr 2: low speed, power 100 mA, config 1, ELECOM M.A.P.P. series(0x001e), ELECOM(0x056e), rev 1.01
 port 2 powered
Controller /dev/usb2:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb3:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
 port 3 powered
 port 4 powered
 port 5 powered
 port 6 powered

> The hardware is a thinkpad R40, dual boots (Windows XP and FreeBSD
> -current). Under Windows XP the mouse works fine, so it can't be a
> hardware problem.

I doubt it's the same bug in FreeBSD/OpenBSD USB protocol stack since I've
tested the same mouse on another OpenBSD 3.3 box -- same result, no output
to the /dev/ums0 device while clicking/moving the mouse.

However, this mouse works flawlessly on Linux(2.4.x kernel), MacOS X 10.2.6
and M$ Windoze 2000/XP.

> Does anyone have any ideas?

No idea. A blindly try to add new entry/flag such like UQ_SPUR_BUT_UP in
sys/dev/usb/usb_quirks.c doesn't work to me. Following is the dmesg
with hw.usb.ums.debug=9999 and hw.usb.debug=1 set.

You may aware that there's a couple of status=6 within ums_intr
such like "ums_intr: sc=0xc0a89800 status=6." which came from the
"killall moused" and "cat /dev/ums0" while mouse is moving, then swap
the problematic mouse with a Logitech one.

ums_intr: sc=0xc0a89800 status=13
ums_intr: data = e0 cc c9
ums_intr: status=13
ums_intr: sc=0xc0a89800 status=13
ums_intr: data = e0 cc c9
ums_intr: status=13
ums_intr: sc=0xc0a89800 status=13
ums_intr: data = e0 cc c9
ums_intr: status=13
ums_intr: sc=0xc0a89800 status=13
ums_intr: data = e0 cc c9
ums_intr: status=13
ums_intr: sc=0xc0a89800 status=13
ums_intr: data = e0 cc c9
ums_intr: status=13
ums0: at uhub1 port 2 (addr 2) disconnected
ums_intr: sc=0xc0a89800 status=6
ums_intr: data = e0 cc c9
ums0: disconnected
ums0: detached
ums0: ELECOM ELECOM M.A.P.P. series, rev 1.10/1.01, addr 2, iclass 3/1
ums_attach: bLength=7 bDescriptorType=5 bEndpointAddress=1-in bmAttributes=3 wMaxPacketSize=4 bInterval=10
ums0: 3 buttons and Z dir.
ums_attach: sc=0xc0a89800
ums_attach: X	8/8
ums_attach: Y	16/8
ums_attach: Z	24/8
ums_attach: B1	0/1
ums_attach: B2	1/1
ums_attach: B3	2/1
ums_attach: size=4, id=0
ums0: Spurious button up events
ums_intr: sc=0xc0a89800 status=6
ums_intr: data = 80 ff fc
ums_intr: sc=0xc0a89800 status=6
ums_intr: data = 80 ff fc
ums_intr: sc=0xc0a89800 status=6
ums_intr: data = 80 ff fc
ums0: at uhub1 port 2 (addr 2) disconnected
ums0: disconnected
ums0: detached
usbd_new_device bus=0xc0ca3000 port=2 depth=1 lowspeed=512
usbd_new_device: adding unit addr=2, rev=110, class=0, subclass=0, protocol=0, maxpacket=8, len=18, ls=1
usbd_find_quirk 0x056e/0x001e/101: 136
usbd_new_device: new dev (addr 2), dev=0xc0fca280, parent=0xc0c9d800
usbd_probe_and_attach: trying device specific drivers
usbd_probe_and_attach: no device specific driver found
usbd_probe_and_attach: looping over 1 configurations
usbd_set_config_index: (addr 2) attr=0xa0, selfpowered=0, power=100
usbd_set_config_index: set config 1
ums0: Elecom product 0x001e, rev 1.10/1.01, addr 2, iclass 3/1
ums_attach: bLength=7 bDescriptorType=5 bEndpointAddress=1-in bmAttributes=3 wMaxPacketSize=4 bInterval=10
ums0: 3 buttons and Z dir.
ums_attach: sc=0xc0a89800
ums_attach: X	8/8
ums_attach: Y	16/8
ums_attach: Z	24/8
ums_attach: B1	0/1
ums_attach: B2	1/1
ums_attach: B3	2/1
ums_attach: size=4, id=0
ums0: Spurious button up events
ums_intr: sc=0xc0a89800 status=6
ums_intr: data = 80 ff fc
ums_intr: sc=0xc0a89800 status=6
ums_intr: data = 80 ff fc
ums0: at uhub1 port 2 (addr 2) disconnected
ums0: disconnected
ums0: detached
usbd_new_device bus=0xc0ca3000 port=2 depth=1 lowspeed=512
usbd_new_device: adding unit addr=2, rev=110, class=0, subclass=0, protocol=0, maxpacket=8, len=18, ls=1
usbd_new_device: new dev (addr 2), dev=0xc0fca280, parent=0xc0c9d800
usbd_probe_and_attach: trying device specific drivers
usbd_probe_and_attach: no device specific driver found
usbd_probe_and_attach: looping over 1 configurations
usbd_set_config_index: (addr 2) attr=0xa0, selfpowered=0, power=100
usbd_set_config_index: set config 1
ums0: Logitech USB Mouse, rev 1.10/6.20, addr 2, iclass 3/1
ums_attach: bLength=7 bDescriptorType=5 bEndpointAddress=1-in bmAttributes=3 wMaxPacketSize=4 bInterval=10
ums0: 3 buttons and Z dir.
ums_attach: sc=0xc0a89800
ums_attach: X	8/8
ums_attach: Y	16/8
ums_attach: Z	24/8
ums_attach: B1	0/1
ums_attach: B2	1/1
ums_attach: B3	2/1
ums_attach: size=4, id=0
ums_intr: sc=0xc0a89800 status=6
ums_intr: data = 60 ff fc
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 ff 01
ums_intr: x:-1 y:-1 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 04 02
ums_intr: x:4 y:-2 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 08 00
ums_intr: x:8 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 07 00
ums_intr: x:7 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 07 00
ums_intr: x:7 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 07 ff
ums_intr: x:7 y:1 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 06 ff
ums_intr: x:6 y:1 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 05 ff
ums_intr: x:5 y:1 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 03 00
ums_intr: x:3 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 02 00
ums_intr: x:2 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 01 ff
ums_intr: x:1 y:1 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 02 00
ums_intr: x:2 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 02 fe
ums_intr: x:2 y:2 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 03 fe
ums_intr: x:3 y:2 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 03 fe
ums_intr: x:3 y:2 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 02 fd
ums_intr: x:2 y:3 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 01 00
ums_intr: x:1 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 ff 00
ums_intr: x:-1 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 fd 00
ums_intr: x:-3 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 fe 00
ums_intr: x:-2 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 fe 00
ums_intr: x:-2 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=0
ums_intr: data = 00 ff 00
ums_intr: x:-1 y:0 z:0 buttons:0x0
ums_intr: sc=0xc0a89800 status=6
ums_intr: data = 00 ff 00
ums0: at uhub1 port 2 (addr 2) disconnected
ums0: disconnected
ums0: detached
Received on Sun Jun 20 2004 - 07:09:36 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:58 UTC