我使用的是 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