USB带宽/主机控制器问题- Linux



我有12个USB 2.0设备插入运行Ubuntu 14.04的英特尔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不重新编译内核?

上次我检查这个,你有点绑定。似乎xHCI被编译成内核,而不是作为一个模块,如果你在eHCI/aHCI/oHCI而不是xHCI中编译,USB作为一个整体中断,可能是由于一些内置支持板上USB控制的蓝牙和WIFI设备在某些移动设备上。不要更新你的BIOS尚未…查看您的xHCI选项是否仍然存在。

此时,您最好的选择似乎是在BIOS中禁用xHCI。这可能会禁用所有USB3控制器,但允许USB2控制器在没有此问题阻碍的情况下工作。

关于你描述的英特尔设备,我没有看到它有很多USB端口,所以我假设你使用集线器。从设备的技术规格来看,看起来您必须访问内部头才能访问USB2端口。

对于其他面临这个问题的人来说是个好消息。Intel发布了一个新的bios (v40),重新添加了禁用xHCI的选项。在我的例子中,我更新了bios,禁用了xHCI,一切都如预期的那样工作。

小心只有XHCI的平台(Apollolake, Denverton)。如果你在那里禁用XHCI,你会阻塞你的HW。

最新更新