Linux
如何從邏輯上彈出/斷開連接並重新連接 USB 設備(加密狗)?
我們購買了一個商業應用程序,只有當他們的加密狗 USB 連接到伺服器時才能工作。然而,有時應用程序無法辨識加密狗,因此它不起作用,但如果有人從 USB 埠物理彈出加密狗並重新連接它,它將辨識並正常工作。
伺服器上傳入了 43 個模組,附加/彈出加密狗不會增加/減少模組數量。
此外,在彈出/附加加密狗之前/之後,我在 /dev 中有 usbmon0 、 usbmon1 和 usbmon2 文件,並且 /dev 中的文件數量在彈出/附加加密狗之前/之後**不會改變。
彈出加密狗後的journalctl -f命令:
Jan 19 18:10:28 iwr kernel: usb 2-2.1: USB disconnect, device number 5
附加加密狗後的journalctl -f命令:
Jan 19 18:11:11 iwr kernel: usb 2-2.1: new full-speed USB device number 6 using uhci_hcd Jan 19 18:11:11 iwr kernel: usb 2-2.1: New USB device found, idVendor=0403, idProduct=c580 Jan 19 18:11:11 iwr kernel: usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 Jan 19 18:11:11 iwr kernel: usb 2-2.1: Product: HID UNIKEY Jan 19 18:11:11 iwr kernel: usb 2-2.1: Manufacturer: OEM Jan 19 18:11:11 iwr kernel: usbhid 2-2.1:1.0: couldn't find an input interrupt endpoint
我可以彈出然後在邏輯上附加它嗎?(發出命令,刪除模組等)
在 Internet 上找到的許多答案(包括 TNW 評論中的答案)都依賴於
/sys/bus/usb/devices/2-2/power/level
或/sys/bus/usb/devices/2-2/power/control
自 2.6.something 核心以來已被棄用。對於較新的核心,建議的過程是取消綁定並重新綁定其驅動程序,這通常會導致電源循環:# Find out which driver to unbind tree /sys/bus/usb/devices/2-2.1 | grep driver |-- driver -> ../../../../../../bus/usb/drivers/whatever # Unbind the driver echo 2-2.1 > /sys/bus/usb/drivers/whatever/unbind # Rebind the driver echo 2-2.1 > /sys/bus/usb/drivers/whatever/bind