我尝试使用echo -n '2-2' > /sys/bus/usb/drivers/usb/unbind 取消绑定连接到 FTDI 芯片的 USB 设备,但我发现它在我运行命令后立即自动绑定.
我的lsusb -t看起来像:
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 2: Dev 6, If 0, Class=Vendor Specific Class, Driver=usbfs, 5000M
|__ Port 2: Dev 6, If 1, Class=Vendor Specific Class, Driver=usbfs, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M
我的lsusb看起来像:
Bus 002 Device 006: ID 0403:**** Future Technology Devices International, Ltd
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/devices有:
1-0:1.0 2-0:1.0 2-2 2-2:1.0 2-2:1.1 usb1 usb2
在我运行sudo bash -c 'echo "2-2" > unbind'后,我的dmesg输出以下新消息
[Jan15 11:03] usb 2-2: USB disconnect, device number 3
[ +0.272120] usb 2-2: new SuperSpeed USB device number 4 using xhci_hcd
[ +0.020880] usb 2-2: New USB device found, idVendor=0403, idProduct=***
[ +0.000006] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0.000003] usb 2-2: Product: FTDI **********
[ +0.000003] usb 2-2: Manufacturer: FTDI
[ +0.000002] usb 2-2: SerialNumber: 000000000001
您可以看到 USB 已断开连接,但随后找到了新的 USB 并分配了一个新的设备编号。感觉就像我的 USB 设备被重新绑定而不是取消绑定。有谁知道原因?谢谢!
更多信息:我尝试运行echo -n usb2 > /sys/bus/usb/drivers/usb/unbind以取消绑定总线 2,它可以工作并且 dmesg 显示:
[Jan15 12:33] usb 2-2: USB disconnect, device number 8
我的ls /sys/bus/usb/devices更改为:
1-0:1.0 usb1 usb2
我觉得不正确。据我了解 2-0:1.0 应该永远存在吗?然后我尝试通过echo -n usb2 > /sys/bus/usb/drivers/usb/bind添加 bus2 ,在 dmesg 中出现错误
[Jan15 12:48] usb usb2: can't set config #1, error -22