Without other usb devices the keyboard works immediately. With them it takes 5 ish seconds for it to start responding. This is regardless of which device is discovered first (which I can manipulate), it seems to just wait for all of them. Is there a way to make it not do that?
Check if you find anything about this in the kernel log (
dmesg
).I believe this is a hardware issue. Have you checked the USB options in the BIOS?
It works fine in bios and bootloader. This only happens during boot
I had an issue where one keyboard (worked with another one) worked in bootloader, but not when entering the encryption password after that. I believe I solved that by moving keyboard earlier in the module list in mkinitcpio.conf. Maybe something similar would solve your issue?
I did try messing with the hook order but it’s already as early as it can be.
Are you using the usb ports on the motherboard itself? Because you need to with a lot of MBs depending on when they initialize other USB
Hint: try another USB port.
USB is like a network, and it could be a jungle of cables and ports and switches and bridges and whatnot. But the closer you get to the mainboard, the better are your chances to escape such a problem.
This worked. Apparently I had all the usb devices connected to the same controller and it seems linux initialises them controller by controller. Thanks
I had a motherboard like this: the USB ports didn’t work until it booted into an OS. You had to connect a PS2 to make changes in the BIOS, and could only boot from IDE. It was super-annoying.
Yep if the MB has a PS/2 slot this is the solution.
You can also get a usb to PS/2 converter so you don’t need an extra keyboard.
…on which hardware?
Last i encountered this issue i had to connect it directly to an USB port, instead of through an USB hub.
Was there no option about it on the BIOS/UEFI about something like that?
How would bios change how linux loads usb devices?
There are lots of BIOS options that impact USB devices, and especially input devices. I’d start digging. If anything, I’d try plugging into the USB ports that are connected to the main bridge at the top of the board, and not any that are extended via passthrough cable. On some boards, those USB ports are set to emulate PS2 serial.
You never know how the kernel would behave compared to how the BIOS is setup. There might be some bios settings that force the kernel to behave a specific way.