On Saturday 11 August 2012 11:25:25 Kra OTN wrote: > Hi guys, > > I'm currently facing a problem with my Corsair K60 USB keyboard on a system > that is running FreeBSD9 with a standard kernel (9.0-RELEASE FreeBSD > 9.0-RELEASE #0: Tue Jan 3 07:46:30 UTC 2012 > r...@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64) > > The keyboard is detected with the following device nodes: > > --------------------------------------------------------------------------- > --------------------------------------------------------------------------- > -------------------------- *syslog:* > Aug 11 11:05:47 desktop kernel: ugen0.3: <Corsair> at usbus0 > Aug 11 11:05:47 desktop kernel: ukbd_probe: > Aug 11 11:05:47 desktop kernel: ukbd_probe: > Aug 11 11:05:47 desktop kernel: ukbd0: <Corsair Corsair Vengeance K60 > Keyboard, class 0/0, rev 2.00/1.00, addr 3> on usbus0 > Aug 11 11:05:47 desktop kernel: ukbd_attach: Parsing HID descriptor of 65 > bytes > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found left control > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found right control > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found left shift > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found right shift > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found left alt > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found right alt > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found left GUI > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found right GUI > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found keyboard events > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found keyboard numlock > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found keyboard capslock > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found keyboard scrolllock > Aug 11 11:05:47 desktop kernel: ukbd_set_leds: leds=0x00 > Aug 11 11:05:47 desktop kernel: ukbd_set_leds: leds=0x02 > Aug 11 11:05:47 desktop kernel: kbd2 at ukbd0 > Aug 11 11:05:47 desktop kernel: ukbd_probe: > Aug 11 11:05:47 desktop kernel: ukbd_set_leds_callback: len=1, id=0 > Aug 11 11:05:47 desktop kernel: uhid0: <Corsair Corsair Vengeance K60 > Keyboard, class 0/0, rev 2.00/1.00, addr 3> on usbus0 > Aug 11 11:05:47 desktop kernel: ukbd_probe: > Aug 11 11:05:47 desktop kernel: ukbd_probe: > Aug 11 11:05:47 desktop kernel: ukbd1: <Corsair Corsair Vengeance K60 > Keyboard, class 0/0, rev 2.00/1.00, addr 3> on usbus0 > Aug 11 11:05:47 desktop kernel: ukbd_attach: Parsing HID descriptor of 37 > bytes > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found left control > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found right control > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found left shift > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found right shift > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found left alt > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found right alt > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found left GUI > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found right GUI > Aug 11 11:05:47 desktop kernel: ukbd_parse_hid: Found keyboard events > Aug 11 11:05:47 desktop kernel: ukbd_set_leds: leds=0x00 > Aug 11 11:05:47 desktop kernel: ukbd_set_leds: leds=0x02 > Aug 11 11:05:47 desktop kernel: kbd3 at ukbd1 > --------------------------------------------------------------------------- > --------------------------------------------------------------------------- > -------------------------- *usbconfig:* > ugen0.1: <EHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) > pwr=SAVE > ugen1.1: <XHCI root HUB 0x1b21> at usbus1, cfg=0 md=HOST spd=SUPER > (5.0Gbps) pwr=SAVE > ugen2.1: <XHCI root HUB 0x1b21> at usbus2, cfg=0 md=HOST spd=SUPER > (5.0Gbps) pwr=SAVE > ugen3.1: <EHCI root HUB Intel> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) > pwr=SAVE > ugen0.2: <product 0x0024 vendor 0x8087> at usbus0, cfg=0 md=HOST spd=HIGH > (480Mbps) pwr=SAVE > ugen3.2: <product 0x0024 vendor 0x8087> at usbus3, cfg=0 md=HOST spd=HIGH > (480Mbps) pwr=SAVE > ugen3.3: <product 0x3000 vendor 0x0cf3> at usbus3, cfg=0 md=HOST spd=FULL > (12Mbps) pwr=ON > ugen0.3: <Corsair Vengeance K60 Keyboard Corsair> at usbus0, cfg=0 md=HOST > spd=FULL (12Mbps) pwr=ON > --------------------------------------------------------------------------- > --------------------------------------------------------------------------- > -------------------------- > > As the syslog suggests right/left shift, ctrl and alt keys are working > correctly. But those keys are the _only_ functioning keys. Debugging ukbd > (sysctl hw.usb.ukbd.debug=15) gives me the following output on a working > key: > --------------------------------------------------------------------------- > --------------------------------------------------------------------------- > -------------------------- ukbd_put_key: 0xe2 (226) pressed > ukbd_intr_callback: actlen=15 bytes > ukbd_intr_callback: modifiers = 0x0004 > ukbd_put_key: 0x4e0 (1248) released > --------------------------------------------------------------------------- > --------------------------------------------------------------------------- > -------------------------- > > But when pressing a key that is not working, the "a" for example I get the > following output: > --------------------------------------------------------------------------- > --------------------------------------------------------------------------- > -------------------------- Aug 11 11:12:45 desktop kernel: > ukbd_intr_callback: actlen=15 bytes Aug 11 11:12:45 desktop kernel: > ukbd_intr_callback: modifiers = 0x0000 Aug 11 11:12:46 desktop kernel: > ukbd_intr_callback: actlen=15 bytes Aug 11 11:12:46 desktop kernel: > ukbd_intr_callback: modifiers = 0x0000 > -------------------------------------------------------------------------- > --------------------------------------------------------------------------- > --------------------------- > > I want to remind you that _all_ keys are not working except those parsed > by ukbd_parse_hid. > > The USB keyboard is functioning correctly on a Linux machine, so it's not a > hardware defect. Can someone help me out troubleshooting this problem?
Hi, Usually the actlen should be only 8-bytes. ukbd makes certain assumptions about where the key-data is supposed to be placed. Try using: usbdump -i usbusX -f Y -vvv To capture the data. There is also a quirk to set the BOOT protocol: usbconfig -d X.Y add_quirk UQ_KBD_BOOTPROTO Then re-plug the device. --HPS _______________________________________________ freebsd-usb@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-usb To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"