Date: Thu, 5 Mar 2009 21:08:59 +0200 From: Boris Kotzev <boris.kotzev@gmail.com> To: Hans Petter Selasky <hselasky@c2i.net> Cc: freebsd-usb@freebsd.org Subject: Re: usb touchpad not working properly on CURRENT with usb2 Message-ID: <200903052109.00282.boris.kotzev@gmail.com> In-Reply-To: <200903051431.22066.hselasky@c2i.net> References: <200903041946.15105.boris.kotzev@gmail.com> <200903042346.00840.boris.kotzev@gmail.com> <200903051431.22066.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
> On Wednesday 04 March 2009, Boris Kotzev wrote: > > > On Wednesday 04 March 2009, Boris Kotzev wrote: > > > > Hi, > > > > > > > > The touchpad of my laptop is not responding properly to input > > > > anymore. It used to work fine with the old usb stack. > > > > > > > > The laptop is running CURRENT from yesterday: > > > > > > > > FreeBSD zembla.universe 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Wed Mar > > > > 4 17:30:05 EET 2009 user@zembla.universe:/usr/obj/usr/src/sys/CUSTOM > > > > amd64 > > > > > > > > When I move my finger horizontally on the touchpad of the laptop, the > > > > cursor moves up and down. Moving the finger vertically moves the > > > > cursor a little and then it stops. Pressing the touchpad button moves > > > > the cursor to the right. > > > > > > > > The touchpad is detected as: > > > > > > > > ugen0.2: <Apple Internal Keyboard / Trackpad Apple Computer> at > > > > usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON > > > > > > > > Resetting the touchpad produces the following dmesg output: > > > > > > > > ukbd0: at uhub0, port 2, addr 2 (disconnected) > > > > ums1: at uhub0, port 2, addr 2 (disconnected) > > > > ums_detach:608: sc=0xffffff000188c400 > > > > uhid1: at uhub0, port 2, addr 2 (disconnected) > > > > ukbd0: <Apple Internal Keyboard> on usbus0 > > > > kbd1 at ukbd0 > > > > ums1: <Touchpad> on usbus0 > > > > ums_attach:530: WARNING: report size, 67 bytes, is larger than > > > > interrupt size, 64 bytes! ums1: 3 buttons and [XY] coordinates > > > > ums_attach:546: sc=0xffffff000184e800 > > > > ums_attach:547: X 8/8 > > > > ums_attach:548: Y 16/8 > > > > ums_attach:549: Z 0/0 > > > > ums_attach:550: T 0/0 > > > > ums_attach:551: W 0/0 > > > > ums_attach:555: B1 0/1 > > > > ums_attach:555: B2 1/1 > > > > ums_attach:555: B3 2/1 > > > > ums_attach:557: size=67, id=0 > > > > uhid1: <Apple Internal Keyboard> on usbus0 > > > > > > > > What other information should I provide to help solving this problem? > > > > > > > > Sincerely, > > > > > > > > Boris Kotzev > > > > > > Could you get the USB HID descriptors dumped using: > > > > > > usbhidctl > > > > > > --HPS > > > > All information I managed to extract by using usbhidctl is below: > > > > # usbhidctl -f /dev/uhid1 -ra > > Report descriptor: > > Collection page=Consumer usage=Consumer_Control > > Input size=8 count=1 page=Consumer usage=Eject, logical range 0..255 > > End collection > > Total input size 1 bytes > > Total output size 0 bytes > > Total feature size 0 bytes > > usbhidctl: USB_SET_IMMED: Device not configured > > > > If it is not enough, will you explain to me how to use this utility? > > Hi, > > I think you have to unload ums module. Then replug the device and search > for the new uhid device. > > Can you also do: > > usbconfig -u 0 -a 2 dump_device_desc dump_curr_config_desc > > --HPS Hi, After the removal of the ums and ukbd devices from the kernel, a lot more uhid devices showed up in /dev: # dmesg | grep uhid uhid0: <Logitech USB Receiver, class 0/0, rev 2.00/57.01, addr 3> on usbus4 uhid1: <Logitech USB Receiver, class 0/0, rev 2.00/57.01, addr 3> on usbus4 uhid2: <Apple Internal Keyboard> on usbus0 uhid3: <Touchpad> on usbus0 uhid4: <Apple Internal Keyboard> on usbus0 uhid5: <Apple Computer, Inc. IR Receiver, class 0/0, rev 2.00/1.10, addr 2> on usbus2 uhid6: <Apple Computer product 0x1000, class 0/0, rev 2.00/19.65, addr 2> on usbus3 uhid7: <Apple Computer product 0x1000, class 0/0, rev 2.00/19.65, addr 2> on usbus3 The dump for uhid2, uhid3 and uhid4 is shown below. # usbhidctl -f /dev/uhid2 -r Report descriptor: Collection page=Generic_Desktop usage=Keyboard Input size=1 count=1 page=Keyboard usage=Keyboard_LeftControl, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_LeftShift, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_LeftAlt, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_Left_GUI, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_RightControl, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_RightShift, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_RightAlt, logical range 0..1 Input size=1 count=1 page=Keyboard usage=Keyboard_Right_GUI, logical range 0..1 Output size=1 count=1 page=LEDs usage=Num_Lock, logical range 0..1 Output size=1 count=1 page=LEDs usage=Caps_Lock, logical range 0..1 Output size=1 count=1 page=LEDs usage=Scroll_Lock, logical range 0..1 Output size=1 count=1 page=LEDs usage=Compose, logical range 0..1 Output size=1 count=1 page=LEDs usage=Kana, logical range 0..1 Input size=8 count=5 page=Keyboard usage=Reserved_(no_event_indicated), logical range 0..101 Input size=8 count=1 page=0x00ff usage=0x0003, logical range 0..101 End collection Total input size 8 bytes Total output size 1 bytes Total feature size 0 bytes # usbhidctl -f /dev/uhid3 -r Report descriptor: Collection page=Generic_Desktop usage=Mouse Total input size 0 bytes Total output size 0 bytes Total feature size 0 bytes # usbhidctl -f /dev/uhid4 -r Report descriptor: Collection page=Consumer usage=Consumer_Control Input size=8 count=1 page=Consumer usage=Eject, logical range 0..255 End collection Total input size 1 bytes Total output size 0 bytes Total feature size 0 bytes The output of usbconfig is as follows: # usbconfig -u 0 -a 2 dump_device_desc dump_curr_config_desc ugen0.2: <Apple Internal Keyboard / Trackpad Apple Computer> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x0000 bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0008 idVendor = 0x05ac idProduct = 0x0218 bcdDevice = 0x0064 iManufacturer = 0x0001 <Apple Computer> iProduct = 0x0002 <Apple Internal Keyboard / Trackpad> iSerialNumber = 0x0000 <no string> bNumConfigurations = 0x0001 Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x0054 bNumInterfaces = 0x0003 bConfigurationValue = 0x0001 iConfiguration = 0x0000 <no string> bmAttributes = 0x00a0 bMaxPower = 0x0014 Interface 0 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0000 bAlternateSetting = 0x0000 bNumEndpoints = 0x0001 bInterfaceClass = 0x0003 bInterfaceSubClass = 0x0001 bInterfaceProtocol = 0x0001 iInterface = 0x0003 <Apple Internal Keyboard> Additional Descriptor bLength = 0x09 bDescriptorType = 0x21 bDescriptorSubType = 0x11 RAW dump: 0x00 | 0x09, 0x21, 0x11, 0x01, 0x0d, 0x01, 0x22, 0x49, 0x08 | 0x00 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0083 bmAttributes = 0x0003 wMaxPacketSize = 0x0008 bInterval = 0x0008 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 1 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0001 bAlternateSetting = 0x0000 bNumEndpoints = 0x0001 bInterfaceClass = 0x0003 bInterfaceSubClass = 0x0001 bInterfaceProtocol = 0x0002 iInterface = 0x0004 <Touchpad> Additional Descriptor bLength = 0x09 bDescriptorType = 0x21 bDescriptorSubType = 0x11 RAW dump: 0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x59, 0x08 | 0x00 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 bmAttributes = 0x0003 wMaxPacketSize = 0x0040 bInterval = 0x0008 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 2 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0002 bAlternateSetting = 0x0000 bNumEndpoints = 0x0001 bInterfaceClass = 0x0003 bInterfaceSubClass = 0x0000 bInterfaceProtocol = 0x0000 iInterface = 0x0003 <Apple Internal Keyboard> Additional Descriptor bLength = 0x09 bDescriptorType = 0x21 bDescriptorSubType = 0x11 RAW dump: 0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x14, 0x08 | 0x00 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0084 bmAttributes = 0x0003 wMaxPacketSize = 0x0001 bInterval = 0x0008 bRefresh = 0x0000 bSynchAddress = 0x0000 Thanks! Boris Kotzev
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200903052109.00282.boris.kotzev>