如何在 Linux 中打开和关闭 USB 连接的设备?

如何在 Linux 中打开和关闭 USB 连接的设备?

我使用的是 Kensington Expert Mouse,这是一种轨迹球,通常可以使用。但是,有时,系统进入睡眠状态后,它会停止对球的移动做出反应。

在 Windows 下,我可以进入设备管理器并禁用-启用该设备,这样它就可以再次工作,但在 Linux 下如何做同样的事情?拔掉设备是可行的,但很烦人。

我的操作系统是 Linux Mint 18。

答案1

要找出确切的设备运行:

$ lsusb

要禁用和启用设备(例如端口 2 上的 USB 和设备 ID 1):

1)关闭设备ID2-1:

$ echo '2-1' |sudo tee /sys/bus/usb/drivers/usb/unbind

2)重新打开设备ID 2-1:

 $ echo '2-1' |sudo tee /sys/bus/usb/drivers/usb/bind

或者,如果您只想重置 USB 设备,绑定/解除绑定可能会很棘手,因为 ID 可能会随时间而变化,您可能会意外选择另一个设备。在这种情况下,您可以使用 lsusb 提供的供应商和产品 ID 和 usb_modeswitch。

Fe:识别无线适配器:

$ lsusb
Bus 001 Device 042: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
Bus 001 Device 035: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

您可以通过以下方式重置 Edimax Technology 的无线适配器:

$ sudo usb_modeswitch -v 0x7392 -p 0x7811 --reset-usb

答案2

根据您的主机,仅运行“lsusb”是不够的。解除绑定/绑定需要总线和端口号,但 lsub 会返回设备号。这可能不匹配。

例如,我的一个系统上有两个 USB 磁盘。总线 2、设备 2 和 3。

root@hp-leipzig:/sys/bus/usb/drivers/usb# lsusb
Bus 002 Device 003: ID 1058:2621 Western Digital Technologies, Inc. 
Elements 2621
Bus 002 Device 002: ID 1058:25ed Western Digital Technologies, Inc. My 
Book 25ED
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

如果你ls进去sys/bus/usb/drivers/usb看看,你会发现没有 2-2 或 2-3,而是 2-7 和 2-8

root@hp-leipzig:/sys/bus/usb/drivers/usb# ls 
2-7  2-8  bind  uevent  unbind  usb1  usb

一种方法可能是,记住总线/设备部分(假设 My Book 为 2/2),然后运行lsusb -t并在那里查找总线、设备 2:

root@hp-leipzig:/sys/bus/usb/drivers/usb# lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M
    |__ Port 7: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
    |__ Port 8: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M

可能还有其他方法,例如对于 USB 存储设备(/dev/sdb):

udevadm info --name /dev/sdb -q path结果是这样的/devices/pci0000:00/0000:00:14.0/usb2/2-7/2-7:1.0/host2/target2:0:0/2:0:0:0/block/sdb-->2-7

相关内容