Энрике работает над проектом, который будет записывать FM-радио как MP3-файлы. Для этого он использует rtl_fm с несколькими RTL-SDR донглами. Однако, основная преграда заключалась в том, что добавление пяти или более донглов на его сервер приводило к ошибке “Failed to submit transfer 4!”.
После попыток обойти проблему с помощью Docker и виртуальных машин и в конечном итоге неудачи он решил рассмотреть другие решения. Он нашел, что rtl_test имеет опцию принудной синхронизации вывода, и при включении этой опции ему удалось использовать более четырех донглов. Поэтому он реализовал этот код синхронизации в rtl_fm.
С этим реализованным кодом он теперь может запускать до 15 донглов на одном сервере. Возможно и большее количество, но Энрике не имел такого количества донглов для тестирования.
Если у вас возникала эта проблема, Энрике загрузил запатченную версию rtl_fm по адресу https://github.com/niofis/rtl-sdr.
Обновление: В ветке Keenerds он отклонил слияние этого патча, ссылаясь на следующее:
Синхронный режим не работает. rtl_fm ранее использовал синхронный режим. Он приводил к постоянным мелким сбоям, которые делали декодирование данных невозможным. Не используйте его.
Проблема «много одновременных донглов» — хорошо известная проблема, связанная с LibUSB. Все, что вам нужно сделать, — уменьшить DEFAULT_BUF_NUMBER в librtlsdr.c и перекомпилировать.

Источник:
