Como posso consultar um dispositivo USB e saber que ele está ativo?

0

Estou usando o Raspbian em um Raspberry pi 2. Eu tenho um leitor de RFID conectado via USB.

Meu problema: O dispositivo USB RFID fica indisponível em horários intermitentes e o ciclo de energia do dispositivo não funciona.

Minha pergunta: Como posso consultar o dispositivo e saber que ele está vivo? Posso usar o lsusb e outras ferramentas, mas eles estão apenas consultando o sistema para a última informação conhecida no dispositivo ou estão realmente tocando o dispositivo novamente e recuperando as informações?

Para os interessados, aqui está meu script bruto executado no 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

Onde ffff: 0035 é o ID do meu dispositivo RFID USB da lsusb. Como o adaptador de rede é integrado com o USB, ele não se recupera bem do ciclo. O sono e o ifup / ifdown cuidam desse problema.

    
por user72055 18.11.2015 / 19:51

1 resposta

2

O lsusb está consultando ativamente os dispositivos no barramento USB, até onde sei.

Você também pode usar o comando dmesg para ver o histórico da inserção de dispositivos, e com certeza não é interativo.

Você também pode usar lsinput

sudo apt-get install input-utils
sudo lsinput
    
por 18.11.2015 / 19:54