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