RTL-SDR

Патч rtl_fm для использования с 15+ RTL-SDR донглами

Энрике работает над проектом, который будет записывать 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 и перекомпилировать.

15 экземпляров rtl_fm запущено

Источник:

Подбираете SDR под задачу?

Опишите, что и где хотите принимать, — подскажем подходящие модели и где их купить.

Похожие материалы

Весь блог