usb/125941: not working wheel on my microsoft notebook optical mouse 3000

Kai Wang kaiwang27 at gmail.com
Mon Aug 11 15:19:53 UTC 2008


On Mon, Aug 11, 2008 at 10:19:35AM -0400, Grzegorz Blach wrote:
> 
> 
> On Mon, 11 Aug 2008 15:34:34 +0200, Kai Wang <kaiwang27 at gmail.com> wrote:
> > On Tue, Aug 05, 2008 at 10:03:15AM -0400, magik at back-up.pl wrote:
> >> 
> >> 
> >> On Thu, 24 Jul 2008 23:30:07 GMT, FreeBSD-gnats-submit at FreeBSD.org
> > wrote:
> >> > Thank you very much for your problem report.
> >> > It has the internal identification `usb/125941'.
> >> > The individual assigned to look at your
> >> > report is: freebsd-usb. 
> >> > 
> >> > You can access the state of your problem report at any time
> >> > via this link:
> >> > 
> >> > http://www.freebsd.org/cgi/query-pr.cgi?pr=125941
> >> > 
> >> >>Category:       usb
> >> >>Responsible:    freebsd-usb
> >> >>Synopsis:       not working wheel on my microsoft notebook optical
> > mouse
> >> > 3000
> >> >>Arrival-Date:   Thu Jul 24 23:30:07 UTC 2008
> >> 
> >> I just fixed problem with wheel on my mouse
> >> and I'm sending in attachment patch for /usr/src/sys/dev/usb/ums.c file.
> > 
> >> --- ums.c.orig	2008-08-05 17:24:21.815936911 +0200
> >> +++ ums.c	2008-08-05 17:24:51.885277111 +0200
> >> @@ -402,6 +402,7 @@
> >>  		sc->sc_loc_x.pos = 8;
> >>  		sc->sc_loc_y.pos = 16;
> >>  		sc->sc_loc_z.pos = 24;
> >> +                sc->sc_loc_z.size = 8;
> >>  		sc->sc_loc_btn[0].pos = 0;
> >>  		sc->sc_loc_btn[1].pos = 1;
> >>  		sc->sc_loc_btn[2].pos = 2;
> > 
> > 
> > Hi,
> > 
> > Thanks for submitting the patch. It'd be great if you could also
> > test the patch below for us and paste the result here, just for
> > better understanding the problem.
> > 
> > The patch adds some debug printfs:
> > 
> > --- /sys/dev/usb/ums.c	2008-05-05 20:25:42.000000000 +0200
> > +++ ums.c	2008-08-11 15:25:44.000000000 +0200
> > @@ -284,6 +284,7 @@
> >  	wheel = hid_locate(desc, size, HID_USAGE2(HUP_GENERIC_DESKTOP,
> >  						  HUG_WHEEL),
> >  			    hid_input, &sc->sc_loc_z, &flags);
> > +	printf("wheel=%d\n", wheel);
> >  
> >  	if (wheel) {
> >  		if ((flags & MOUSE_FLAGS_MASK) != MOUSE_FLAGS) {
> > @@ -323,6 +324,7 @@
> >  			sc->flags |= UMS_Z;
> >  		}
> >  	}
> > +	printf("sc->flags=0x%04x\n", sc->flags);
> >  
> >  	/*
> >  	 * The Microsoft Wireless Intellimouse 2.0 reports it's wheel
> > @@ -402,6 +404,7 @@
> >  		sc->sc_loc_x.pos = 8;
> >  		sc->sc_loc_y.pos = 16;
> >  		sc->sc_loc_z.pos = 24;
> > +		printf("sc->sc_loc_z.size=%u\n", sc->sc_loc_z.size);
> >  		sc->sc_loc_btn[0].pos = 0;
> >  		sc->sc_loc_btn[1].pos = 1;
> >  		sc->sc_loc_btn[2].pos = 2;
> 
> this, what I see:
> 
> ums0: <Microsoft Microsoft Notebook Optical Mouse with Tilt Wheel, class
> 0/0, rev 2.00/1.20, addr 2> on uhub0
> wheel=0
> sc->flags=0x0000
> ums0: 3 buttons and a TILT dir.
> sc->sc_loc_z.size=0
> 

Interesting. Now I suspect that Optical Mouse 3000 model 1049 got different
versions.

Could you please get krepdump (http://people.freebsd.org/~kaiw/tools/krepdump.tgz)

 # tar xzvf krepdump.tgz
 # cd krepdump
 # make
 # kldload ./krepdump.ko

Then plug in your mouse and paste the result here?

There is one version of report desc of this mouse here:
http://lists.freebsd.org/pipermail/freebsd-usb/2008-February/004617.html

and my guess is your mouse's report desc is different than that...


Thanks,
Kai


More information about the freebsd-usb mailing list