USBデバイスに問い合わせて有効にするかどうかはどうすればわかりますか?

USBデバイスに問い合わせて有効にするかどうかはどうすればわかりますか?

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

おすすめ記事