Я использую Raspbian на Raspberry pi 2. У меня есть RFID-считыватель, подключенный к нему через USB.
Моя проблема: USB-устройство RFID периодически становится недоступным, и после включения и выключения питания устройство не работает.
Мой вопрос: Как я могу запросить устройство и узнать, что оно живое? Я могу использовать 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 - это идентификатор моего USB-устройства RFID от lsusb. Поскольку сетевой адаптер интегрирован с USB, он плохо восстанавливается после включения и выключения. Сон и ifup / ifdown решают эту проблему.