首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Linux控制USB电源(开/关)

使用Linux控制USB电源(开/关)
EN

Stack Overflow用户
提问于 2011-01-16 05:19:26
回答 4查看 266K关注 0票数 176

是否可以使用Linux手动打开/关闭USB电源?

有一个外部USB冷却风扇(那种你用来给自己降温的风扇,而不是PC),如果能从终端控制它就好了,因为我想把风扇放在很远的地方。

我想这对很多其他的东西也是有用的,因为有很多USB玩具。也许是空气净化器,等等(我听说它们不是真的有效)。

EN

回答 4

Stack Overflow用户

发布于 2013-08-07 16:12:34

我发现这些解决方案至少适用于正确配置的Terminus FE 1.1 USB集线器芯片:

1.要关闭集线器所有USB端口的电源,可以使用以下命令解除集线器与内核的绑定:

代码语言:javascript
复制
echo "1-4.4.4" > /sys/bus/usb/drivers/usb/unbind

要重新打开电源,您可以使用以下命令将其绑定回去

代码语言:javascript
复制
echo "1-4.4.4" > /sys/bus/usb/drivers/usb/bind

2.在每个端口单独切换电源比较棘手:我可以使用hubpower来控制每个端口-但它也有一个缺点: hubpower首先会断开usbdevfs,这会导致所有的USB设备与系统断开,至少在ubuntu上是这样:

代码语言:javascript
复制
usb_ioctl.ioctl_code = USBDEVFS_DISCONNECT;
rc = ioctl(fd, USBDEVFS_IOCTL, &usb_ioctl);

禁用此ioctl后,我可以在不分离所有设备的情况下关闭单个端口的电源-但电源立即恢复(可能是因为内核看到未初始化的设备),这导致USB设备只是执行“冷重新启动”,这是我通常想要做的。我打了补丁的hubpower是here

票数 28
EN

Stack Overflow用户

发布于 2014-04-13 00:46:47

代码语言:javascript
复制
echo '2-1' |sudo tee /sys/bus/usb/drivers/usb/unbind

适用于ubuntu

票数 6
EN

Stack Overflow用户

发布于 2016-11-24 10:55:57

USB 5v电源始终打开(即使计算机关闭,在某些计算机和某些端口上也是如此。)您可能需要使用某种类型的开关对Arduino进行编程,并通过插入计算机的USB串行库对其进行控制。

换句话说,this交换机教程和this教程的组合是关于通过串行库与通过USB插入的Arduino进行通信的教程。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4702216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档