На моей плате RasPi, Debian Linux, USB-микрофон иногда зависает так, что ничто не может его использовать. Микрофон имеет светодиод, который обычно мигает, когда он заблокирован, он выключается.
Утилита arecord
описывает это следующим образом:
card 1: Device [DYNEX USB MIC Device], device 0:USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
Когда микрофон перестает работать, arecord
выдает следующую диагностику:
> arecord -D plughw:1,0 > recording.wav
Recording WAVE 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono
arecord: set_params:1145: Unable to install hw_params:
ACCESS: RW_INTERLEAVED
FORMAT: U8
etc...
Отключение и подключение микрофона исправляет это только потому, что текущий провал заставляет RasPi перезагрузиться! Не идеальная ситуация.
Есть ли способ исправить это из командной строки или исполняемого файла C?
Я также попытался использовать ioctl(fd, USBDEVFS_RESET, 0)
выходные данные lsusb
для предоставления номера шины и устройства. Это снова включает светодиод, но это излишне. Устройство необходимо переустановить с помощью alsamixer.