Motherboard on booting, does not identify USB drive connected through usb-3.0 adapter

adapterbiosdriversmotherboardusb-3

I have a PC based on Intel DP55KG "Kenigsberg" motherboard. It doesn't have a usb 3.0 bus (xHCI). I installed a usb 3.0 adaptor card (Inateck KT4006) (working fine, both on Windows and Ubuntu 18); but, I would like to boot from an Ubuntu system residing on a USB HDD; and, before booting, the BIOS does not recognize the additional usb 3.0 bus (and device) created by the adaptor.

So I can't select the USB HDD for boot, if it's connected through the usb 3.0 adaptor. (The same USB HDD works fine after boot, connected to the usb 3.0 adaptor).

Best Answer

If the motherboard doesn't come with an xHCI controller, then it's likely that its firmware actually doesn't have xHCI drivers built-in either. Without that, the firmware simply doesn't know how to enumerate USB devices through this controller.

(In fact your motherboard predates the first release of xHCI by a few months, so its default firmware cannot possibly have drivers for it.)

Meanwhile, the OS can use USB 3.0 just fine because it doesn't rely on any firmware functionality – both Windows and Linux have their own xHCI (and EHCI, OHCI) drivers which directly talk to the controller via PCI bus.


To work around this, you can put GRUB and the Ubuntu /boot partition on different storage (e.g. a SATA HDD or a USB 2.0 flash drive). This will allow the motherboard to start GRUB, and as soon as GRUB loads the Ubuntu kernel+initrd, the xHCI controller will become usable through Linux drivers and the system should boot normally.

(That's actually the whole point of having an initrd – it contains all drivers needed for the kernel to access the root filesystem.)