From owner-freebsd-usb@FreeBSD.ORG Sat Aug 11 11:55:16 2012 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 945B11065679 for ; Sat, 11 Aug 2012 11:55:16 +0000 (UTC) (envelope-from kraotn@gmail.com) Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by mx1.freebsd.org (Postfix) with ESMTP id 179EC8FC0A for ; Sat, 11 Aug 2012 11:55:15 +0000 (UTC) Received: by wibhr14 with SMTP id hr14so1634547wib.13 for ; Sat, 11 Aug 2012 04:55:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=4jk6m41Y9H9OTfIj0rcsgLZMIcQw5rikeiM68fUnUwM=; b=HO5CPF92sVna6AYhgfOGNgV31CEVTcMPoBGxHvBATdzOassaLGorEnM24z3boewiSk 7Da5JT0N8OEFqhw4GMDhwJZBIMCmeV+p0t7NmfB8wxLHbHYdeS56C9Mo6UtvkCFi+tnf xloo82ZEve/n3nphk2lRMbBbKP663gvjswGSJZuMicld/Dp6QQx/u+TnlZcqeDPZrYZL voZhg8UQHGDlxZZVH4qGB8ffscUiMtvEgMlLrizciEpxEKmODivKMRBgdRijU4OhvDGl 4lRB5obGhhX9f+epKWrQXC8WzTy7hEb2J8JrGtBj4NQOXKbyE5QhoiGq101dvJNiigi8 g5pw== MIME-Version: 1.0 Received: by 10.180.84.104 with SMTP id x8mr3364372wiy.20.1344686114988; Sat, 11 Aug 2012 04:55:14 -0700 (PDT) Received: by 10.223.70.200 with HTTP; Sat, 11 Aug 2012 04:55:14 -0700 (PDT) In-Reply-To: References: <201208111152.35966.hselasky@c2i.net> Date: Sat, 11 Aug 2012 13:55:14 +0200 Message-ID: From: Kra OTN To: Hans Petter Selasky Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-usb@freebsd.org Subject: Re: USB keyboard partially functioning X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Aug 2012 11:55:16 -0000 *Output of usbdump (at time of problem, it loops):* ------------------------------------------------------------------- 13:49:38.646846 usbus3.2 DONE-CTRL-EP=00000080,SPD=HIGH,NFR=2,SLEN=4,IVAL=0,ERR=0 frame[0] WRITE 8 bytes frame[1] READ 4 bytes 0000 01 01 00 00 -- -- -- -- -- -- -- -- -- -- -- -- |.... | flags 0x10 status 0xea1a1 13:49:38.646855 usbus3.2 SUBM-CTRL-EP=00000080,SPD=HIGH,NFR=2,SLEN=8,IVAL=0 frame[0] WRITE 8 bytes 0000 A3 00 00 00 02 00 04 00 -- -- -- -- -- -- -- -- |........ | frame[1] READ 4 bytes flags 0x10 status 0xea1a3 13:49:38.646971 usbus3.2 DONE-CTRL-EP=00000080,SPD=HIGH,NFR=2,SLEN=4,IVAL=0,ERR=0 frame[0] WRITE 8 bytes frame[1] READ 4 bytes 0000 01 01 00 00 -- -- -- -- -- -- -- -- -- -- -- -- |.... | flags 0x10 status 0xca1a1 13:49:38.646974 usbus3.2 SUBM-CTRL-EP=00000080,SPD=HIGH,NFR=2,SLEN=8,IVAL=0 frame[0] WRITE 8 bytes 0000 A3 00 00 00 03 00 04 00 -- -- -- -- -- -- -- -- |........ | frame[1] READ 4 bytes flags 0x10 status 0xca1a3 13:49:38.647095 usbus3.2 DONE-CTRL-EP=00000080,SPD=HIGH,NFR=2,SLEN=4,IVAL=0,ERR=0 frame[0] WRITE 8 bytes frame[1] READ 4 bytes 0000 00 01 00 00 -- -- -- -- -- -- -- -- -- -- -- -- |.... | flags 0x10 status 0xea1a1 13:49:38.647098 usbus3.2 SUBM-CTRL-EP=00000080,SPD=HIGH,NFR=2,SLEN=8,IVAL=0 frame[0] WRITE 8 bytes 0000 A3 00 00 00 04 00 04 00 -- -- -- -- -- -- -- -- |........ | frame[1] READ 4 bytes flags 0x10 status 0xea1a3 13:49:38.647220 usbus3.2 DONE-CTRL-EP=00000080,SPD=HIGH,NFR=2,SLEN=4,IVAL=0,ERR=0 frame[0] WRITE 8 bytes frame[1] READ 4 bytes 0000 00 01 00 00 -- -- -- -- -- -- -- -- -- -- -- -- |.... | flags 0x10 status 0xca1a1 ------------------------------------------------------------------- *output of usbconfig (i have manually set the pwr to OFF)* ------------------------------------------------------------------- [root@desktop ~]# usbconfig ugen0.1: at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE ugen1.1: at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE ugen2.1: at usbus2, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE ugen3.1: at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE ugen0.2: at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE ugen3.2: at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE ugen3.5: at usbus3, cfg=255 md=HOST spd=FULL (12Mbps) pwr=OFF ugen3.3: at usbus3, cfg=255 md=HOST spd=FULL (12Mbps) pwr=OFF ugen3.4: at usbus3, cfg=255 md=HOST spd=FULL (12Mbps) pwr=OFF ------------------------------------------------------------------- On Sat, Aug 11, 2012 at 1:02 PM, Kra OTN wrote: > Hans, > > Thank you for your support. Executing the "usbconfig -d x.y add_quirk > UQ_KBD_BOOTPROTO" -command did the trick once but after a warm reboot and > executing the above command again results in a, what it looks like, a bus > error / conflict. > > The keyboard LEDs are flashing rapidly and my USB mouse has stopped > working also (rapidly flashing light). > > Debugging gives me the following error messages: > > ------------------------------------------------------------------------------------- > Aug 11 12:33:35 desktop kernel: uhid0: at uhub5, port 1, addr 3 > (disconnected) > Aug 11 12:33:35 desktop kernel: ukbd_intr_callback: error=USB_ERR_STALLED > Aug 11 12:33:35 desktop last message repeated 3 times > Aug 11 12:33:35 desktop kernel: usbd_req_re_enumerate: addr=3, set address > failed! (USB_ERR_STALLED, ignored) > Aug 11 12:33:35 desktop kernel: usbd_setup_device_desc: getting device > descriptor at addr 3 failed, USB_ERR_STALLED > Aug 11 12:33:35 desktop kernel: ukbd_intr_callback: error=USB_ERR_STALLED > Aug 11 12:33:36 desktop last message repeated 8 times > Aug 11 12:33:36 desktop kernel: usbd_req_re_enumerate: addr=3, set address > failed! (USB_ERR_STALLED, ignored) > Aug 11 12:33:36 desktop kernel: usbd_setup_device_desc: getting device > descriptor at addr 3 failed, USB_ERR_STALLED > Aug 11 12:33:36 desktop kernel: ukbd_intr_callback: error=USB_ERR_STALLED > Aug 11 12:58:09 desktop kernel: ugen3.4: at usbus3 (disconnected) > Aug 11 12:58:09 desktop kernel: uhub_reattach_port: could not allocate new > device > > ------------------------------------------------------------------------------------- > > Is it possible to auto quirk at boot? > > > Many thanks, > > M. > > > > > On Sat, Aug 11, 2012 at 11:52 AM, Hans Petter Selasky wrote: > >> 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 >> > root@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: 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: > > 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: > > 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: > > 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: at usbus0, cfg=0 md=HOST spd=HIGH >> (480Mbps) >> > pwr=SAVE >> > ugen1.1: at usbus1, cfg=0 md=HOST spd=SUPER >> > (5.0Gbps) pwr=SAVE >> > ugen2.1: at usbus2, cfg=0 md=HOST spd=SUPER >> > (5.0Gbps) pwr=SAVE >> > ugen3.1: at usbus3, cfg=0 md=HOST spd=HIGH >> (480Mbps) >> > pwr=SAVE >> > ugen0.2: at usbus0, cfg=0 md=HOST >> spd=HIGH >> > (480Mbps) pwr=SAVE >> > ugen3.2: at usbus3, cfg=0 md=HOST >> spd=HIGH >> > (480Mbps) pwr=SAVE >> > ugen3.3: at usbus3, cfg=0 md=HOST >> spd=FULL >> > (12Mbps) pwr=ON >> > ugen0.3: 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 >> > >