3

I've recently thrown Ubuntu onto my main rig as a dual boot. I've been having an issue with a rather slow (relatively speaking) boot time. It takes around forty seconds. I seem to have found the issue, but I'm not really sure how to approach fixing it. When I run

    dmesg

I get the following:

[    2.482055] Switched to clocksource tsc
[   11.278410] hid-generic 0003:1B1C:1B11.0002: usb_submit_urb(ctrl) failed: -1
[   11.278446] hid-generic 0003:1B1C:1B11.0002: timeout initializing reports
[   11.278644] input: Corsair Corsair K95 RGB Gaming Keyboard  as /devices/pci0000:00/0000:00:1c.4/0000:03:00.0/usb3/3-2/3-2:1.1/0003:1B1C:1B11.0002/input/input8
[   11.334075] hid-generic 0003:1B1C:1B11.0002: input,hidraw4: USB HID v1.11 Keyboard [Corsair Corsair K95 RGB Gaming Keyboard ] on usb-0000:03:00.0-2/input1
[   21.334396] hid-generic 0003:1B1C:1B11.0003: timeout initializing reports
[   21.334535] hid-generic 0003:1B1C:1B11.0003: hiddev0,hidraw5: USB HID v1.11 Device [Corsair Corsair K95 RGB Gaming Keyboard ] on usb-0000:03:00.0-2/input2
[   31.334376] hid-generic 0003:1B1C:1B11.0004: usb_submit_urb(ctrl) failed: -1
[   31.334411] hid-generic 0003:1B1C:1B11.0004: timeout initializing reports
[   31.334548] hid-generic 0003:1B1C:1B11.0004: hiddev0,hidraw6: USB HID v1.11 Device [Corsair Corsair K95 RGB Gaming Keyboard ] on usb-0000:03:00.0-2/input3

Full results here http://pastebin.com/7wbT8iW6

I ran across an unofficial driver for this keyboard. I've already updated the kernel to 4.0.4-040004-generic in an attempt to fix things. This resulted in no change. Would installing that driver be a potential fix? Is there some other solution I should look into? Thank you for the help.

2
  • For the record these lines are implicated, and I run into the same issue on 15.10 with my Corsair K70 keyboard: [ 11.278410] hid-generic 0003:1B1C:1B11.0002: usb_submit_urb(ctrl) failed: -1 ... [ 21.334396] hid-generic 0003:1B1C:1B11.0003: timeout initializing reports
    – Coder Guy
    Nov 23, 2015 at 20:50
  • It seems likely that the unofficial driver mentioned is github.com/ccMSC/ckb. It's README has a list of usbhid.quirks to try for the various device models it supports.
    – TwoD
    Dec 19, 2015 at 0:00

1 Answer 1

1

DISCLAIMER: I am a green Linux user, the information I present here is taken from a similar problem and resolution in another forum. I have also applied these steps to my own machine and verified that it works on my machine. I do not endorse this as a generally accepted solution for all variants of this scenario. This is a "works for me" solution I present and I realize that it may also work for others. I would definitely familiarize yourself with grub before proceeding.

The Problem

The problem as noted is implicated in the following dmesg lines:


[ 11.278410] hid-generic 0003:1B1C:1B11.0002: usb_submit_urb(ctrl) failed: -1
...
[ 21.334396] hid-generic 0003:1B1C:1B11.0003: timeout initializing reports

This is adding about 30 seconds to your boot-up time. The device it is complaining about isn't the actual keyboard controller, rather, it's the keyboard LED back-light controller (which technically isn't a keyboard) and doesn't know what to do with it. If your keyboard is like mine (I have the K70) then it has two USB cables, one for the back-light and the other for the keyboard.

Solution - Add USB HID Probing Quirks for the Kernel

Run the following command from terminal:

lsusb | grep -i '1B1C:1B11'

To verify that the device that dmesg complains about is in-fact your Corsair K95 Keyboard. Alternatively you can run lsusb -v | less and visually confirm that the report descriptors are unavailable for this device.

Add the following flag to your grub2 configuration:

usbhid.quirks=0x1b1c:0x1b11:0x20000000

NOTE: The 0x1b1c:0x1b11 corresponds to your back-light controller verified using lsusb and reported in dmesg.

NOTE: The 0x prefix is important, without this prefix the parser will fail.

The simplest way to do this is to edit your /etc/default/grub file and add it to the GRUB_CMDLINE_LINUX_DEFAULT variable. This is what mine looks like for my Corsair K70 Keyboard (do not simply copy/paste this as yours is likely different!):

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbhid.quirks=0x1b1c:0x1b13:0x20000000"

Save your changes and run:

sudo update-grub

Now reboot your machine and you will experience a faster boot to login time.

2
  • 1
    For future users: I had to add the following, for it to work: usbhid.quirks=0x1b1c:0x1b13:0x20000000 Apr 2, 2016 at 14:11
  • Confirmed, I stumbled upon this independently and found the code that parses this uses sscanf with the format "0x%hx:0x%hx:0x%x"
    – Coder Guy
    Jun 17, 2016 at 4:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .