打开/关闭 USB 端口

cur*_*der 21 usb power-management

是否可以在 Ubuntu 中使用终端打开/关闭特定的 USB 端口?

lsusb 显示以下结果:

Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 2232:1020
Bus 002 Device 009: ID 0bc2:a013 Seagate RSS LLC
Bus 002 Device 003: ID 0a5c:219c Broadcom Corp.
Run Code Online (Sandbox Code Playgroud)

希捷是我的外置硬盘。我可以在终端关闭它吗?

我尝试使用 Linux 控制 USB 电源(开/关)。但是我对应该替换什么来代替usbX.

rus*_*tyx 11

之前的所有答案都谈到了USB 挂起机制,即“逻辑断电”,他们永远不会从 USB 端口物理切断 VBUS +5V。

所描述的只有少数集线器实际上可以削减VBUS这里

hubpower工具可以做到这一点(如果集线器支持的话)。


Joh*_*ore 7

遇到同样的问题后,我发现应该以不同的方式输入命令,以便“sudo”可以适当地应用权限。

使用“tee”命令。

echo 0 | sudo tee /sys/bus/usb/devices/usb2/power/autosuspend_delay_ms
Run Code Online (Sandbox Code Playgroud)

将 root 权限应用于“tee”命令,该命令会将 0 写入指定文件,替换当前存在的任何内容。要追加,请使用带有选项 -a 的 tee 命令。

有关信息,请参阅手册页 tee

  • `tee` 命令也会产生打印到屏幕的副作用。如果你愿意,`dd of=/sys/bus/...` 将只写入文件,而不会写入其他任何地方。 (2认同)

Sau*_*mar 4

实际上usbX只不过是 USB 端口号,其中表示诸如或之类的X数字...例如,对于端口12。一般来说,笔记本电脑可能有三个或四个 USB 端口,其中包括 USB 2.0 和 USB 3.0 端口。12usb1usb2

在 Ubuntu 中,usb1, usb2...usbX/sys/devices/pci000:00/*. 为了更好地理解它,请运行以下命令:

ls -l /sys/bus/usb/devices/
Run Code Online (Sandbox Code Playgroud)

因此,启用/禁用 USB 端口usbX将替换为usb1当您想要启用/禁用时USB Port Number 1(或参考 Stack Exchange):


编辑:感谢Stefan Denchev告诉我们使用sudo将某些文本回显到文件的正确方法。(也检查他的评论。)您现在不应该收到权限被拒绝的消息。

sudo sh -c "echo '0' > /sys/bus/usb/devices/usb1/power/autosuspend_delay_ms"
sudo sh -c "echo 'auto' > /sys/bus/usb/devices/usb1/power/control"
Run Code Online (Sandbox Code Playgroud)

查看lsusb结果后,您的 Seagate 设备似乎已连接到Port No. 2,因此您需要禁用usb2。那么命令将是:

sudo sh -c "echo '0' > /sys/bus/usb/devices/usb2/power/autosuspend_delay_ms"
sudo sh -c "echo 'auto' > /sys/bus/usb/devices/usb2/power/control"
Run Code Online (Sandbox Code Playgroud)