是否可以关闭特定的 USB 端口使其不接受任何设备?

bfr*_*uci 14 usb

我的电脑上有很多端口。我想关闭其中一个,因此当我将手机连接到该端口时,它只会充电。不过,我确实希望我的手机在某些情况下可以与我的电脑配合使用,所以我希望其他端口不受影响。

我只想知道这有多大可能。

小智 6

第一次运行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)

在输出中,找到要禁用的端口的设备号。例如,示例中的希捷硬盘有Device 009- 这是它的设备号。那么 id 将是usb[device number]- 例如usb9

然后,禁用 USB 唤醒(仅执行一次):

请务必将Xin替换usbX为设备编号。

echo disabled | sudo tee /sys/bus/usb/devices/usbX/power/wakeup 
Run Code Online (Sandbox Code Playgroud)

然后将其关闭:

echo suspend | sudo tee /sys/bus/usb/devices/usbX/power/level
Run Code Online (Sandbox Code Playgroud)

撤消此操作:

echo enabled | sudo tee /sys/bus/usb/devices/usbX/power/wakeup
echo on | sudo tee /sys/bus/usb/devices/usbX/power/level
Run Code Online (Sandbox Code Playgroud)

  • 当“echo suspend”时,我得到“tee: /sys/bus/usb/devices/usbX/power/level: Invalid argument”,而“echo on”则没有这样的错误。 (4认同)
  • 尝试上述命令并返回... `tee: /sys/bus/usb/devices/usb11/power/wakeup: 没有禁用此类文件或目录` (2认同)
  • 看起来“写入错误:参数无效”是因为从内核 2.6.32 开始不再支持“挂起”选项。请参阅 https://superuser.com/a/371254。 (2认同)

Win*_*nix 3

这是一个即插即用(字面意思)选项:

仅对 USB 加密狗充电

如果您想避免每次插入手机充电时弹出消息和文件浏览器,这是一个好主意。

这也比软件方法更简单,因为关闭数据端口的软件可以通过重新打开端口的软件来逆转。或者它可能会在挂起/恢复或您未预见到的其他过程中重新初始化。