From owner-freebsd-current@FreeBSD.ORG Sun Jun 20 09:09:36 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E529816A4CE for ; Sun, 20 Jun 2004 09:09:35 +0000 (GMT) Received: from www.mmlab.cse.yzu.edu.tw (www.mmlab.cse.yzu.edu.tw [140.138.145.166]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6411E43D1F for ; Sun, 20 Jun 2004 09:09:35 +0000 (GMT) (envelope-from avatar@mmlab.cse.yzu.edu.tw) Received: by www.mmlab.cse.yzu.edu.tw (qmail, from userid 1000) id 4E97C4EFCD3; Sun, 20 Jun 2004 17:09:34 +0800 (CST) Received: from localhost (localhost [127.0.0.1]) by www.mmlab.cse.yzu.edu.tw (qmail) with ESMTP id 46E484EFCD1; Sun, 20 Jun 2004 17:09:34 +0800 (CST) Date: Sun, 20 Jun 2004 17:09:34 +0800 (CST) From: Tai-hwa Liang To: Marc van Kempen In-Reply-To: <40CDDFFC.6070507@bowtie.nl> Message-ID: <04062016491810.20516@www.mmlab.cse.yzu.edu.tw> References: <40CDDFFC.6070507@bowtie.nl> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-current@freebsd.org Subject: Re: USB Mouse not working on Thinkpad R40, works under WinXP X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jun 2004 09:09:36 -0000 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