Linux
如何查詢 USB 設備並知道它是否存在?
我在 Raspberry pi 2 上使用 Raspbian。我有一個 RFID 閱讀器通過 USB 連接到它。
我的問題:RFID USB 設備在間歇性時間變得不可用,並且重啟設備不起作用。
我的問題:我如何查詢設備並知道它是活著的?我可以使用 lsusb 和其他工具,但是,它們只是向系統查詢設備上的最後一個已知資訊,還是實際上再次觸摸設備並檢索資訊?
對於那些感興趣的人,這是我在 cron 中執行的粗略腳本:
#!/bin/bash rfid_reader="$(lsusb |grep ffff:0035)" echo $rfid_reader bus="$(lsusb |grep ffff:0035|cut -c 5-7)" echo $bus device="$(lsusb |grep ffff:0035|cut -c 16-18)" echo $device # echo "$(./usbreset /dev/bus/usb/$bus/$device)" if [ -z "$rfid_reader" ]; then echo "rfid_reader is not available, restarting USB" echo 0x0 > /sys/devices/platform/bcm2708_usb/buspower echo 0x1 > /sys/devices/platform/bcm2708_usb/buspower sleep 5 ifdown eth0 sleep 5 ifup eth0 else echo $rfid_reader echo "rfid_reader is fine" fi
其中 ffff:0035 是我的來自 lsusb 的 USB RFID 設備的 ID。由於網路適配器與 USB 集成,因此無法從循環中很好地恢復。sleep 和 ifup/ifdown 可以解決這個問題。
據我所知,lsusb 正在主動查詢 USB 匯流排上的設備。
您還可以使用 dmesg 命令查看設備插入的歷史記錄,並確保它不是互動式的。
您也可以使用 lsinput
sudo apt-get install input-utils sudo lsinput