# [SOLVED] Mouse (Roccat Kova) delays boot time by 10 seconds

## derbrain

Hello,

I wanted to speed up the boot process a little. Looking at my bootchart, I noted a biiiiiiiiig hang in usb_id first. Since a couple of days, I don't even have usb_id in bootchart anymore, now it's modprobe that hangs, and the break seems to have changed from 5 to 10 seconds. Maybe this is due to some updates, or because I moved to kernel 2.6.33-r2. Anyway, the reason seems to be my mouse. It's a Roccat Kova. It shows up as a mouse AND a keyboard, as it should. But there seems to be a timeout before it starts to work. Afterwards, it works like a charm. This is what dmesg says:

```
...

[    0.289060] usbcore: registered new interface driver usbfs

[    0.289067] usbcore: registered new interface driver hub

[    0.289067] usbcore: registered new device driver usb

...

[    0.658878] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

[    0.658979] ehci_hcd 0000:00:12.2: PCI INT B -> GSI 17 (level, low) -> IRQ 17

[    0.659085] ehci_hcd 0000:00:12.2: EHCI Host Controller

[    0.659193] ehci_hcd 0000:00:12.2: new USB bus registered, assigned bus number 1

[    0.659317] ehci_hcd 0000:00:12.2: debug port 1

[    0.659396] ehci_hcd 0000:00:12.2: irq 17, io mem 0xfe8ff800

[    0.664697] ehci_hcd 0000:00:12.2: USB 2.0 started, EHCI 1.00

[    0.664893] hub 1-0:1.0: USB hub found

[    0.664947] hub 1-0:1.0: 6 ports detected

[    0.665045] ehci_hcd 0000:00:13.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19

[    0.665151] ehci_hcd 0000:00:13.2: EHCI Host Controller

[    0.665259] ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 2

[    0.665383] ehci_hcd 0000:00:13.2: debug port 1

[    0.665461] ehci_hcd 0000:00:13.2: irq 19, io mem 0xfe8ff400

[    0.673696] ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00

[    0.676125] hub 2-0:1.0: USB hub found

[    0.678477] hub 2-0:1.0: 6 ports detected

[    0.680925] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver

[    0.683406] ohci_hcd 0000:00:12.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16

[    0.685966] ohci_hcd 0000:00:12.0: OHCI Host Controller

[    0.688581] ohci_hcd 0000:00:12.0: new USB bus registered, assigned bus number 3

[    0.691253] ohci_hcd 0000:00:12.0: irq 16, io mem 0xfe8fe000

[    0.748829] hub 3-0:1.0: USB hub found

[    0.751561] hub 3-0:1.0: 3 ports detected

[    0.754341] ohci_hcd 0000:00:12.1: PCI INT A -> GSI 16 (level, low) -> IRQ 16

[    0.757205] ohci_hcd 0000:00:12.1: OHCI Host Controller

[    0.760138] ohci_hcd 0000:00:12.1: new USB bus registered, assigned bus number 4

[    0.763125] ohci_hcd 0000:00:12.1: irq 16, io mem 0xfe8fd000

[    0.820825] hub 4-0:1.0: USB hub found

[    0.823860] hub 4-0:1.0: 3 ports detected

[    0.826955] ohci_hcd 0000:00:13.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18

[    0.830142] ohci_hcd 0000:00:13.0: OHCI Host Controller

[    0.833395] ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 5

[    0.836624] ohci_hcd 0000:00:13.0: irq 18, io mem 0xfe8fc000

[    0.894830] hub 5-0:1.0: USB hub found

[    0.898008] hub 5-0:1.0: 3 ports detected

[    0.901161] ohci_hcd 0000:00:13.1: PCI INT A -> GSI 18 (level, low) -> IRQ 18

[    0.904331] ohci_hcd 0000:00:13.1: OHCI Host Controller

[    0.907508] ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 6

[    0.910665] ohci_hcd 0000:00:13.1: irq 18, io mem 0xfe8fb000

[    0.968828] hub 6-0:1.0: USB hub found

[    0.971915] hub 6-0:1.0: 3 ports detected

[    0.974994] ohci_hcd 0000:00:14.5: PCI INT C -> GSI 18 (level, low) -> IRQ 18

[    0.978099] ohci_hcd 0000:00:14.5: OHCI Host Controller

[    0.981171] ohci_hcd 0000:00:14.5: new USB bus registered, assigned bus number 7

[    0.984287] ohci_hcd 0000:00:14.5: irq 18, io mem 0xfe8fa000

...

[    1.041821] hub 7-0:1.0: USB hub found

[    1.041828] hub 7-0:1.0: 2 ports detected

[    1.041915] usbcore: registered new interface driver usblp

[    1.041916] Initializing USB Mass Storage driver...

[    1.041959] usbcore: registered new interface driver usb-storage

[    1.041960] USB Mass Storage support registered.

[    1.042071] PNP: No PS/2 controller found. Probing ports directly.

[    1.042475] serio: i8042 KBD port at 0x60,0x64 irq 1

[    1.042480] serio: i8042 AUX port at 0x60,0x64 irq 12

[    1.042542] mice: PS/2 mouse device common for all mice

...

[    1.260031] usb 4-1: new low speed USB device using ohci_hcd and address 2

...

[    1.657059] usb 4-3: new full speed USB device using ohci_hcd and address 3

[    2.084566] mktemp used greatest stack depth: 5376 bytes left

[    2.252906] mount used greatest stack depth: 4976 bytes left

[    4.335382] rm used greatest stack depth: 4904 bytes left

[    4.983879] udev: starting version 149

[    5.231773] usbcore: registered new interface driver hiddev

[    5.255945] input: Microsoft Natural® Ergonomic Keyboard 4000 as /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.0/input/input2

[    5.256074] microsoft 0003:045E:00DB.0001: input,hidraw0: USB HID v1.11 Keyboard [Microsoft Natural® Ergonomic Keyboard 4000] on usb-0000:00:12.1-1/input0

...

[    5.271751] input: Microsoft Natural® Ergonomic Keyboard 4000 as /devices/pci0000:00/0000:00:12.1/usb4/4-1/4-1:1.1/input/input3

[    5.271873] microsoft 0003:045E:00DB.0002: input,hidraw1: USB HID v1.11 Device [Microsoft Natural® Ergonomic Keyboard 4000] on usb-0000:00:12.1-1/input1

[    5.753443] fstab_import used greatest stack depth: 4768 bytes left

[   15.235880] drivers/hid/usbhid/hid-core.c: usb_submit_urb(ctrl) failed

[   15.235902] generic-usb 0003:1E7D:2CB0.0003: timeout initializing reports

[   15.236096] input: ROCCAT ROCCAT Kova as /devices/pci0000:00/0000:00:12.1/usb4/4-3/4-3:1.0/input/input4

[   15.236287] generic-usb 0003:1E7D:2CB0.0003: input,hidraw2: USB HID v1.00 Mouse [ROCCAT ROCCAT Kova] on usb-0000:00:12.1-3/input0

[   15.239331] input: ROCCAT ROCCAT Kova as /devices/pci0000:00/0000:00:12.1/usb4/4-3/4-3:1.1/input/input5

[   15.239449] generic-usb 0003:1E7D:2CB0.0004: input,hidraw3: USB HID v1.11 Keyboard [ROCCAT ROCCAT Kova] on usb-0000:00:12.1-3/input1

[   15.239497] usbcore: registered new interface driver usbhid

[   15.239502] usbhid: USB HID core driver
```

I skipped some irrelevant lines, but you see the big jump from 5 to 15 seconds. Is there any way to ignore or reduce the timeout for this device?

Thanks a lot,

ChristianLast edited by derbrain on Fri Mar 22, 2013 3:39 am; edited 1 time in total

----------

## cach0rr0

set the module not to autoload at boot through the normal methods, and instead write in the requisite modprobe to be run as part of /etc/init.d/local

and for speeding up boot time, if you haven't done so already, the single biggest improvement I saw was moving from baselayout-1 to bl-2/openrc - more on that here: https://forums.gentoo.org/viewtopic-t-807202-highlight-ricing.html

----------

## derbrain

 *cach0rr0 wrote:*   

> set the module not to autoload at boot through the normal methods, and instead write in the requisite modprobe to be run as part of /etc/init.d/local

 

Hmmm, I tried that, but it seems that it just makes things slow later, so I reverted that back.

See http://omploader.org/vNHRweQ vs. http://omploader.org/vNHRxMA

(As you see, I already am on baselayout-2)

----------

## derbrain

Hmm, I'm still stuck with this problem.

I reverted back to cach0rr0's idea, starting the module in /etc/init.d/local.

I noticed something interesting: I always thought the problem was (only) modprobe. But there is another process colored in pink (I'm not sure what the colors mean) EXACTLY during the mysterious 10 seconds: devkit-power-daemon. During this time, nothing happens, the HDD-LED is not flickering. Could this be some kind of race condition?

Plugging out the mouse results in a normal boot, and after plugging it in I get the timeout anyway. However, other processes are not being blocked like while booting.

So, I can think of two possible solutions:

1. skipping the timeout in some way. I played around with some "usbhid quirks" settings, but didn't succeed. I also checked the source could to get a clue about why the timeout happens, but I don't understand enough of it. However, ist must be possible, since Windows doesn't have this problem.

2. at least let the timeout happen "in parralel" and not blocking other processes

How can I achieve one of them?

----------

## derbrain

The solution was adding the following line to /etc/modprobe.d/usbhid.conf (if usbhid is compiled as a module, otherwise it has to be passed as a kernel parameter):

```
options usbhid quirks=0x1e7d:0x2cb0:0x20000000
```

----------

