Linux - 限制USB设备带宽

4
我正在尝试将多个(10-20)USB Wi-Fi Dongle连接到单个USB端口(使用外部供电的USB HUB),但是我无法同时连接超过5-6个设备。
每个Dongle似乎从总可用带宽5000 Mbps(1x USB3端口)中分配“500-800” Mbps,这没有意义。
然而,我的问题是是否有一种方法使USB端口/集线器表现为“最佳努力”,忽略分配的带宽或者只能将每个设备限制在较低的带宽,例如20-50 Mbps。我不需要它们以全速运行。
1个回答

4
我认为不可能,原因如下。
在说明原因之前,让我们来讨论一下“总线实例(Bus Instance)”的概念。
根据XHCI规范,“每个总线实例代表支持该实例速度的单位带宽”。
因此,集线器中每个USB 3.0端口都将有两个总线实例。超级速度和高速。
带宽取决于连接的设备。如果是USB 2.0设备,则最多可获得480 Mbps的带宽,如果是SS设备,则最多可获得5 Gbps的带宽。如果连接多个设备,则完全依赖于USB控制器硬件来在总线实例之间分配带宽。
因此,基本上我认为我们无法通过软件来做到这一点。XHCI规范没有任何更改带宽的命令。我们也没有用于管理集线器端口带宽的任何集线器请求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接