是否可以使用Linux手动打开/关闭USB电源?
有一个外部USB冷却风扇(那种你用来给自己降温的风扇,而不是PC),如果能从终端控制它就好了,因为我想把风扇放在很远的地方。
我想这对很多其他的东西也是有用的,因为有很多USB玩具。也许是空气净化器,等等(我听说它们不是真的有效)。
发布于 2013-08-07 16:12:34
我发现这些解决方案至少适用于正确配置的Terminus FE 1.1 USB集线器芯片:
1.要关闭集线器所有USB端口的电源,可以使用以下命令解除集线器与内核的绑定:
echo "1-4.4.4" > /sys/bus/usb/drivers/usb/unbind
要重新打开电源,您可以使用以下命令将其绑定回去
echo "1-4.4.4" > /sys/bus/usb/drivers/usb/bind
2.在每个端口单独切换电源比较棘手:我可以使用hubpower来控制每个端口-但它也有一个缺点: hubpower首先会断开usbdevfs,这会导致所有的USB设备与系统断开,至少在ubuntu上是这样:
usb_ioctl.ioctl_code = USBDEVFS_DISCONNECT;
rc = ioctl(fd, USBDEVFS_IOCTL, &usb_ioctl);
禁用此ioctl
后,我可以在不分离所有设备的情况下关闭单个端口的电源-但电源立即恢复(可能是因为内核看到未初始化的设备),这导致USB设备只是执行“冷重新启动”,这是我通常想要做的。我打了补丁的hubpower是here
发布于 2014-04-13 00:46:47
echo '2-1' |sudo tee /sys/bus/usb/drivers/usb/unbind
适用于ubuntu
https://stackoverflow.com/questions/4702216
复制相似问题