私はラズベリーパイ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