usb/101066: Logitech iFeel MouseMan USB - UN53B

Heiko Przybyl zuxez at uni.de
Sun Jul 30 18:50:14 UTC 2006


>Number:         101066
>Category:       usb
>Synopsis:       Logitech iFeel MouseMan USB - UN53B
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-usb
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jul 30 18:50:13 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Heiko Przybyl
>Release:        7.0-CURRENT-200607
>Organization:
-
>Environment:
FreeBSD tormented-soul 7.0-CURRENT-200607 FreeBSD 7.0-CURRENT-200607 #5: Sun Jul 30 16:07:28 CEST 2006     root at tormented-soul:/usr/src/sys/i386/compile/HEIKO  i386

>Description:
Hi.

After switching from Linux to FreeBSD yesterday, I encounter problems with the mouse mentioned in the subject. It is neither recognized in the normal boot-up nor when re-plugging it after the boot-up, which renders the device (my only mouse) completely useless.
Turning on USB_DEBUG has shown: "usbd_get_string: getting string failed, using 0". So this beauty seems to not understand the string descriptor requests.
I have searched the usb-list and the net, but without any success. Ok, there was a hint about commenting out the code, but I think this is not the way it is ment to be. So I decided to have a look into the sources under /usr/src/sys/dev/usb. In fact, there is already a Logitech iFeel Mouse in usbdevs, but with a different device id. The listed device is 0xc030 whilst mine is 0xc032. So I added a new entry "product LOGITECH UN53B 0xc032 iFeel MouseMan". Actually this did not solve the problem of failing recognition of the device :-) So I took a closer look on usbdi.c::usbd_get_string() which is the point of failure and found "if (dev->quirks->uq_flags & UQ_NO_STRINGS)" which in turn checks the device for being unable to provide the strings usbdi.c::usbd_get_string() wants to extract. So the next step was to add the newly created usbdevs entry to usb_quirks.c with UQ_NO_STRINGS as the corresponding quirk. Now the mouse is shown in command usbdevs, works fine in moused and under
  Xorg. It is successfully recognized as /dev/ums0 4-button mouse with scroll wheel.

Attached there are the patches of the changes I did. Hopefully they will find their way into the tree, since there seem to be a lot of people struggling with that (mouse') problem.

Btw. system is: AthlonXP on VIAKT400A+ (VT82xxxxx UHCI USB) running 7.0-CURRENT-200607.


Best regards,

    Heiko

>How-To-Repeat:
restart the system
plug out/in the mouse :-)
>Fix:
add "product LOGITECH UN53B 0xc032 iFeel MouseMan" to /usr/src/sys/dev/usb/usbdevs
add "{ USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN53B, ANY, { UQ_NO_STRINGS }}," to /usr/src/sys/dev/usb/usb_quirks.c

If needed, I am able to provided patches for those files.
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-usb mailing list