Собираем обновленный SDR драйвер rtl_tcp с ключами Direct Sampling

Как выбирать режим Direct Sampling в клиентских программах, если в меню управления rtl_tcp нет соответствующих пунктов?

В стандартном драйвере rtl_tcp нет ключей которые позволяли бы включить этот режим.

Предлагаем собрать новый драйвер. Для начала удалим старый.

cd rtl-sdr/

cd build/

sudo make uninstall

sudo ldconfig

sudo reboot 0

После перезагрузки надо удалить папку «rtl-sdr»:

rm -rf rtl-sdr/

Теперь установка обновленного SUWS драйвера:

git clone https://github.com/SUWS/librtlsdr.git

cd librtlsdr/

mkdir build

cd build

cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON

make

sudo make install

sudo ldconfig

И теперь, в выводе возможных ключей запуска rtl_tcp можно увидеть искомый — «enable direct sampling».

Запуск сервера в режиме Direct Sampling производится командой

sudo rtl_tcp -a 192.168.3.106 -p 3476 -q 2

Где параметр «-q 2» выбирает пин Q, задействованный в приемнике rtl-sdr.com v3. Для других вариаций исполнения режима Direct Sampling в других версиях приемника RTL SDR может потребоваться выбор пина I, т.е. «-q 1».

Для запуска обычного режима по-прежнему используется команда

sudo rtl_tcp -a 192.168.3.106 -p 3476

В некоем выводе служебной информации после запуска сервера можно видеть строку «Enabled direct sampling mode, input 2», что говорит о работающем режиме Direct Sampling.

Автозапуск rtl_tcp

В некоторых образах ОС для одноплатных ПК при старте системы сетевой интерфейс запускается с некоторым запозданием относительно программ в автозагрузке, и отсутствие IP-адреса на сетевом интерфейсе для программ заканчивается невозможностью их старта. Поэтому запускать программы лучше с задержкой. 10-30 секунд вроде бы хватает.

Надо создать файл с именем start_rtl.sh в папке /home/orangepi , например.

Применительно к рассматриваемому образу ОС папка по пути /home/orangepi уже существует и чтобы в нее перейти нужно дать команду cd ~ или cd /home/orangepi , а далее:

sudo touch start_rtl.sh                 —   создать файл с именем start_rtl.sh

sudo nano start_rtl.sh               — открыть его на редактирование в редакторе nano

В теле файла написать такой скрипт, подставив локальный IP-адрес одноплатного ПК :

#!/bin/sh

sleep 10

/usr/local/bin/rtl_tcp -a 192.168.3.118 -p 3476

В принципе, вместо /usr/local/bin/rtl_tcp можно писать просто rtl_tcp, т.е. rtl_tcp -a 192.168.3.118 -p 3476

CTRL+O и нажать Enter

CTRL+X

sudo chmod +x start_rtl.sh                 — дать файлу права на исполнение

Ради проверки можно запустить этот скрипт командой sudo ./start_rtl.sh и убедится, что через 10 секунд rtl_tcp запускается.

sudo nano /etc/rc.local                   — открыть на редактирование файл /etc/rc.local

И дописать следующую строчку до строки exit 0:

sudo /home/orangepi/start_rtl.sh

CTRL+O и нажать Enter

CTRL+X

Ради проверки (проверки правильности написания пути) можно дать команду sudo /home/orangepi/start_rtl.sh и убедится, что через 10 секунд rtl_tcp запускается.

Получилась такая схема — в файле rc.local указываем какой файл скрипта запускать при старте системы (start_rtl.sh), а в файле start_rtl.sh указываем какую программу запускать с задержкой в 10 секунд (rtl_tcp).

sudo reboot 0

После перезапуска сервера, ждем 10 секунд, запускаем на нем htop и убеждаемся, что процесс rtl_tcp запущен.

Теперь можно клиентскими программами (SDR Sharp, SDR Console, SDR Touch(Ведроид), еще какие-то) подключаться к серверу.

Рейтинг@Mail.ru Яндекс.Метрика