打印
[以太网/USB/其他总线]

如何在Linux中对USB 端口电源控制

[复制链接]
713|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
edustudy|  楼主 | 2024-4-7 15:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在Linux中,libusb库用于控制对USB设备的访问。
根据USB 2.0规范第11.15.1.2节,有2个请求可以关闭端口电源; ClearPortFeature(PORT_POWER) 和 SetConfiguration()。
如果要关闭集线器及其下的所有端口,可以通过 SetConfiguration() 请求来完成。
必须是 root 才能更改 USB 设备设置。 要使 libusb 发送 SetConfiguration() 请求,请导航到集线器的设备目录。 更改文件 bConfigurationValue 的权限。 将 0 写入该文件可关闭集线器和设备。
例如集线器 3-3:
$ cd /sys/bus/usb/devices/usb3/3-3
$ sudo chmod o+w bConfigurationValue
$ sudo echo 0 > bConfigurationValue
要重新打开集线器:
$ sudo echo 1 > bConfigurationValue

要关闭单个设备,可以将设备设置为在挂起时关闭,但如何以及何时发生取决于设备的驱动程序。
要设置要关闭的设备,请首先导航到设备的电源目录。 更改文件 pm_qos_no_power_off 的权限并向该文件写入 0:
例如设备 3-3.1:
$ cd /sys/bus/usb/devices/usb3/3-3/3-3:1.0/3-3-port1/power
$ sudo chmod o+w pm_qos_no_power_off
$ sudo echo 0 > pm_qos_no_power_off
当设备最终进入挂起状态时,libusb 将向集线器发送 ClearPortFeature(PORT_POWER) 请求。

使用特权

评论回复
沙发
weifeng90| | 2024-4-7 19:45 | 只看该作者
需要对USB接口控制器进行控制

使用特权

评论回复
板凳
b5z1giu| | 2024-4-24 15:48 | 只看该作者
电源的控制?这个是不是得有USB的电源管理芯片来做?

使用特权

评论回复
地板
suw12q| | 2024-4-24 16:53 | 只看该作者
一般是有管理芯片的,可以通过I2C的方式来实现

使用特权

评论回复
5
p0gon9y| | 2024-4-24 18:14 | 只看该作者
在Linux中,您可以使用USB接口的电源控制功能来管理USB设备的供电情况。这可以通过USB的sysfs接口来实现

使用特权

评论回复
6
w2nme1ai7| | 2024-4-24 19:20 | 只看该作者
确定USB端口的路径:首先,您需要确定要控制的USB端口的路径

使用特权

评论回复
7
g0d5xs| | 2024-4-24 20:25 | 只看该作者
通过lsusb命令,您可以找到您想要控制的USB设备的厂商ID和产品ID,以及设备的总线和端口信息

使用特权

评论回复
8
ex7s4| | 2024-4-24 21:32 | 只看该作者
使用sysfs接口控制电源:一旦您确定了USB端口的路径,您可以使用sysfs接口来控制USB设备的电源

使用特权

评论回复
9
cen9ce| | 2024-4-24 22:49 | 只看该作者
通常,USB设备的电源控制文件位于/sys/bus/usb/devices/目录下

使用特权

评论回复
10
lix1yr| | 2024-4-25 07:16 | 只看该作者
需要注意的是,对USB设备进行电源控制需要root权限。因此,在进行电源控制操作时,请确保您有足够的权限

使用特权

评论回复
11
lidi911| | 2024-4-25 08:30 | 只看该作者
USB电源一般都会使用一个电子开关,直接控制该开关的通断就可以了。

使用特权

评论回复
12
lamanius| | 2024-4-25 09:20 | 只看该作者
请注意,对USB设备进行电源控制可能会影响设备的正常工作,因此在进行此类操作时,请谨慎考虑可能的影响

使用特权

评论回复
13
liu96jp| | 2024-4-25 11:34 | 只看该作者
对USB操作你可以试试这个,
echo "on" > /sys/bus/usb/devices/usbX/power/control  # 打开电源
echo "off" > /sys/bus/usb/devices/usbX/power/control  # 关闭电源

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

6

帖子

1

粉丝