我有12个USB 2.0设备插入运行Ubuntu 14.04的Intel NUC D54250WYK。
运行lshw -short
显示两个不同的USB总线和两个主机控制器(xHCI和eHCI)。
所有USB设备都显示在同一总线上,无论插入哪个端口,都使用xHCI。因此,我在dmsg中看到以下错误:
Not enough host controller resources for new device state.
Not enough bandwidth for altsetting 0.
有没有办法强制设备到特定的总线?
我还读到Linux可能存在xHCI问题。有没有办法强制eHCI而不重新编译核心?英特尔不在BIOS中提供该选项。
答案 0 :(得分:1)
最后我检查了这个,你有点像一个绑定。似乎xHCI
被编译到内核中,而不是作为模块编译,如果您在eHCI
/ aHCI
/ oHCI
而不是xHCI
进行编译,则USB为整个中断,可能是由于某些主板上的板载USB控制蓝牙和WIFI设备的内置支持。 DO NOT UPDATE YOUR BIOS yet... see if the option to disable xHCI
still exists on yours.
此时,您最好选择在BIOS中禁用xHCI
。这可能会禁用所有USB3控制器,但允许USB2控制器工作,而不会妨碍您。
对于您描述的英特尔设备,我上面没有看到很多USB端口,因此我假设您正在使用集线器。从the tech specs for your device开始,您似乎必须访问内部标头才能访问USB2端口。
答案 1 :(得分:0)
面对这个问题的其他人的好消息。英特尔发布了一个新的BIOS(v40),它添加了禁用xHCI的选项。在我的情况下,我更新了BIOS,禁用了xHCI,一切都按预期工作。
答案 2 :(得分:0)
当心仅具有XHCI的平台(Apollolake,Denverton)。 如果在此禁用XHCI,则将使硬件变砖。