我在 Raspberry pi 2 上使用 Raspbian。我有一个通过 USB 连接到它的 RFID 读取器。
我的问题: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 可以解决这个问题。
答案1
据我所知,lsusb 正在主动查询 USB 总线上的设备。
您还可以使用 dmesg 命令查看设备插入的历史记录,并确保这不是交互式的。
您还可以使用 lsinput
sudo apt-get install input-utils
sudo lsinput