我尝试过的没有 USB 集线器实际上似乎正确支持 USB 2.0 合规性所需的“集线器端口电源控制”。
USB 2.0 标准规定:
自供电集线器可能有电源开关来控制面向下游端口的电源传输,但这不是必需的。总线供电的集线器需要有电源开关。带有电源开关的集线器可以将所有端口的电源作为一组/组切换到单独的每个端口,或者具有任意数量的一个或多个端口组。集线器通过 wHubCharacteristics 中的 Logical Power Switching Mode 字段的设置来指示它是否支持电源切换。如果集线器支持每个端口的电源切换,那么当接收到端口的 SetPortFeature(PORT_POWER) 请求时,端口的电源就会打开。当端口处于 Powered-off 或 Not Configured 状态时,端口电源关闭。如果集线器支持联动电源切换,然后当组中的任何端口接收到 SetPortFeature(PORT_POWER) 请求时,打开组中所有端口的电源。除非群组中的所有端口都处于 Powered-off 或 Not Configured 状态,否则不会关闭群组的电源。
和
虽然不需要自供电集线器来实现电源切换,但集线器必须支持所有端口的 Powered-off 状态。此外,即使集线器没有可由 USB 系统软件控制的电源开关,集线器也必须实现 PortPwrCtrlMask(所有位设置为 1B)。
http://www.makelinux.net/lib/usb/2/USB_2.0_Specification/doc-363
在 Linux 中,大多数芯片组lusb -v在按照wHubCharacteristics字段中指定的方式执行时似乎都支持此功能。但是当实际尝试使用它时什么也没有发生,不可能关闭任何端口(甚至所有端口)的电源。
我想这是因为硬件制造商从来没有困扰到实际上线了这种支持,尽管该芯片组支持它,引导人们做这样黑客这个
所以我的问题是:
有没有人有正确支持 USB 端口电源控制的硬件列表?
具体来说,型号和批号都会很好,因为不同版本之间的支持可能不同。
相关链接:
http://www.gniibe.org/development/ac-power-control-by-USB-hub/index.html