Ans*_*jee 7 usb-3 linux-device-driver ubuntu-12.04 ubuntu-16.04
我尝试将多个支持 USB 3.0 的设备连接到我的 ubuntu 12.04 机器。但发现一次只能看到不超过 9 个设备连接。我尝试在 监视内核日志/var/log/kern.log
,我发现在连接第 10 个设备时,出现以下错误:
此设备无法找到足够的可用资源。(代码 12)
我的 USB 主机控制器是:
英特尔公司 8 系列/C220 系列芯片组家族 USB xHCI(修订版 05)
一些论坛建议禁用 USB 3.0 支持应该强制设备在 USB 2.0 模式下工作,并且应该可以解决问题。这是真的。从 BIOS 禁用 xHCI 支持对我来说很有效。
我认为这应该是较旧的 Ubuntu 12.04 设置(或 USB 驱动程序可能是)上的错误。因此,我将系统升级到 Ubuntu 16。但这里也存在同样的问题。如果我想通过 USB 3.0 使用我的设备怎么办?如果某些主板上没有从 BIOS 禁用 xHCI 支持的选项怎么办?
控制器具有为连接的设备分配的内部缓冲区,用于执行输入和输出。这些缓冲区也称为资源或端点。
更快的设备需要分配更多的缓冲区来容纳更多的数据。此数量可能因设备而异,但最多为 32 个端点,每个设备有 16 个输入和 16 个输出。
有报道称,英特尔8系列USB 3.0 XHCI主机控制器仅支持96个端点,实际限制可能会提前达到。
根据您帖子中的信息,我猜测每个 USB3 磁盘都使用 10 个端点。资源,大概是5进5出。因此,9 个磁盘使用 90 个端点,这很好,但 10 个磁盘需要 100 个端点,超出了 96 个限制,因此控制器向操作系统发送了错误代码。
当您降低与较慢 USB2 的连接时,控制器为每个设备分配的缓冲区要少得多,因此您可以连接更多磁盘。
解决方案可能是添加一个 USB2 集线器并将不需要高传输速率的磁盘放在上面。
进一步阅读:
归档时间: |
|
查看次数: |
2703 次 |
最近记录: |