аукцион / donate / услуги / RSS / распечатать / вход 
Мой мир
Вконтакте
Одноклассники

[7 февраля 2018 | 9 февраля 2018 | 28 февраля 2018]

RTL-SDR сервер на Raspberry Pi

Недавно написал о первоначальном старте Raspbery Pi и упомянул о том, что он будет использоваться для SDR-сервера. Как выяснилось эта идея нравится довольно большому числу людей. Честно говоря, мне не нравится передача несжатого потока. В этом плане WEB-SDR куда более лояльнее к каналу чем прямое подключение к донглу. Конечно, можно использовать узкую полосу и не запускать SDR на всю поддерживаемую ширину канала, но тогда водопад будет не так информативен. Для коротковолновиков, конечно, сие не является проблемой, а вот посмотреть тот же LPD-диапазон будет не так легко. Особенно если ты создаешь систему для мониторинга сразу большой территории, где требуется установить около десятка принимающих устройств и пересылающих данные по VPN. Но перейдём к настройке Raspberry Pi в качестве сервера RTL-SDR.

Для полноценной работы нам потребуется USB-донгл на основе RTL2832 и Raspberry Pi (желательно выше второй версии). У меня используется вот такой догл:

SDR RTL2832 донгл.

И вот такая плата Raspberry Pi 3 Model B:

Raspberry Pi 3. Raspberry Pi 3.

Подключаем всю эту систему к монитору и сети. У меня роутер автоматически выдаёт IP-адреса, а для малины он привязан статически. Так, что при перезагрузке он получит нужный адрес. USB-догл подключать не обязательно. Устанавливаем операционную систему Raspbian.

Подключаемся к терминалу или открываем командную строчку на рабочем столе. Начинаем последовательно вводить команды:

pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install cmake build-essential python-pip libusb-1.0-0-dev libusb-1.0 python-numpy git
pi@raspberrypi:~ $ cd ~
pi@raspberrypi:~ $ git clone git://git.osmocom.org/rtl-sdr.git
pi@raspberrypi:~ $ cd rtl-sdr
pi@raspberrypi:~ $ mkdir build
pi@raspberrypi:~ $ cd build
pi@raspberrypi:~ $ cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
pi@raspberrypi:~ $ make
pi@raspberrypi:~ $ sudo make install
pi@raspberrypi:~ $ sudo ldconfig

Далее необходимо отредактировать один текстовый файлик. Вводим команду:

pi@raspberrypi:~ $ sudo nano /etc/apt/sources.list

Надо закоментировать всё, что не закоментировано. И дописать одну строчку.

deb http://archive.raspbian.org/raspbian jessie main

Далее продолжаем работать в командной строке:

pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install libusb-1.0

После обновления возвращаем файл /etc/apt/sources.list к исходному виду. Можно раскоментировать закоментированное и закоментировать добавленную нами строчку, это на ваше усмотрение. Теперь можно выключить устройство, подключить к нему usb-донгл, запустить всю эту гирлянду и после загрузки пробовать запускать получившийся сервер.

Для запуска трансляции надо дать команду:

pi@raspberrypi:~ $ rtl_tcp -a 0.0.0.0 -p 1234

Теперь можно запустить SDR# на своём компьютере и подключиться к серверу вещающему поток.

SDR# rtl_tcp.

Если присмотреться, то видно, что при канале 2.048 MSPS процессор занят всего на 30%. А в канал шириной два мегагерца можно уместить радиолюбительский диапазон на двойку от 144 МГц до 146 МГц.

Файлы использованные для данной статьи:

Тэги: ИТ, Raspberry

Отредактировано:2020-09-07 06:53:51




14 комментариев
Имя: Алексей 🖉
Корпус какой-то собираетесь делать?
Комментарий оставлен: 2018-02-10 00:00:00


Имя: Алексей 🖉
ну что ж, подружил малинку с сдр-кой. Работает. Но виндовое приложение гораздо лучше. А малинка работает близко к пределу и иногда троттлит. Надо вентилятор приспособить.
Комментарий оставлен: 2018-02-10 00:00:00


Имя: Orcinus Orca 🖉
Алексей, виндовое приложение? Там же точно так же реализовано, запускается сервис rtl_tcp.exe на нужном сервере и всё работает. Проблемы с подвисанием точно такие же как на Малине. О моём опыте сетевого вещания можно почитать в статье: http://www.orcinus.ru/archive/2014/12-05.asp
Собственно я в заменил два MiniITX компьютера на вот эти малипусечные платы, пока всё работает стабильно. Постараюсь собрать побольше информации о стабильности и напишу свои впечатления. Но это будет через несколько месяцев.

Корпус в местах использования не нужен, они будут закреплены внутри шкафа. На даче я буду ставить подобную железку в пластиковом корпусе. Может быть для эксперимента куплю Малину второй версии, а не третьей.
Комментарий оставлен: 2018-02-10 00:00:00


Имя: Алексей 🖉
Мою зверушку тоже можно подружить с малинкой и вещать стрим через сеть, а демодулировать на компьютере. Тогда нагрузка на процессор вполне приемлемая. Даже на полосе в 10МГц.

Кстати, эта тема сейчас активно развивается, проекты на гитхабе постоянно обновляются, и коммьюнити живое.

Так что спасибо вам за првоначальную идею. Оживил одно из своих хобби.
Комментарий оставлен: 2018-02-21 00:00:00


Имя: Алексей 🖉
Про полосу в 10МГц я погорячился. Такое малинка не тянет.
Комментарий оставлен: 2018-02-22 00:00:00


Имя: Orcinus Orca 🖉
Алексей, такую полосу я только у приставок к Yaesu видел.
Комментарий оставлен: 2018-02-22 00:00:00


Имя: Алексей 🖉
Баг в программе. Задать полосу SDR на малинке как бы можно, но фактически зам 2.048 МГц. Когда СДРка подключена к лэптопу, то 10МГц можно выставить, но падает разрядность оцифровки. Упирается в ширину пропускания USB 2.0.
Комментарий оставлен: 2018-02-23 00:00:00


Имя: Orcinus Orca 🖉
Алексей, он не может быть рассчитан на 10 МГц, так как для работы для которой предназначался такой ширины просто не нужно. Изначально он разрабатывался для работы с DVB-T.
Комментарий оставлен: 2018-02-26 00:00:00


Имя: Алексей 🖉
Моя коробочка SDRplay RSP1 более продвинутая чем свисток. Умеет в 10МГц.
Комментарий оставлен: 2018-02-27 00:00:00


Имя: Orcinus Orca 🖉
Алексей, прикольно. Не баловался с такой игрушкой.
Комментарий оставлен: 2018-03-01 00:00:00


Имя: Алексей 🖉
Значительно лучше чем свисток, но и дороже, конечно.

Облизываюсь на LimeSDR. Но там цена — совсем уж космос. Зато возможностей...
Комментарий оставлен: 2018-03-01 00:00:00


Имя: Orcinus Orca 🖉
Алексей, посмотрел, да игрушки интересные.
Комментарий оставлен: 2018-03-11 00:00:00


Имя: sash 🖉
При попытке установить старый пакет на сборке 2018-11-13-raspbian-stretch-lite:

sudo apt-get install libusb-1.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting ’libusb-1.0-0’ for regex ’libusb-1.0’
Note, selecting ’libusb-1.0-0-dbg’ for regex ’libusb-1.0’
Note, selecting ’libusb-1.0-0-dev’ for regex ’libusb-1.0’
Note, selecting ’libusb-1.0-doc’ for regex ’libusb-1.0’
libusb-1.0-doc is already the newest version (2:1.0.21-1).
libusb-1.0-0 is already the newest version (2:1.0.21-1).
libusb-1.0-0-dev is already the newest version (2:1.0.21-1).
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
libusb-1.0-0-dbg : Depends: libusb-1.0-0 (= 2:1.0.19-1) but 2:1.0.21-1 is to be installed
E: Unable to correct problems, you have held broken packages.




Комментарий оставлен: 2018-11-17 00:00:00


Имя: Orcinus Orca 🖉
sash, вы забыли изменить адрес для скачивания дистрибутивов:
deb http://archive.raspbian.org/raspbian jessie main
Комментарий оставлен: 2018-11-18 00:00:00



Этот сайт использует файлы cookies, чтобы упростить вашу навигацию по сайту, предлагать только интересную информацию и упростить заполнение форм. Я предполагаю, что, если вы продолжаете использовать мой сайт, то вы согласны с использованием мной файлов cookies. Вы в любое время можете удалить и/или запретить их использование изменив настройки своего интернет-браузера.

Сообщайте мне о замеченных ошибках на: web@orcinus.ru. Все пожелания и советы будут учтены при дальнейшем проектировании сайта. Я готов сотрудничать со всеми желающими. В некоторых случаях, мнение автора может не совпадать с мнением автора! Phone: +7-902-924-70-49.

Top.Mail.Ru
Top.Mail.Ru LiveInternet Rambler's Top100 Яндекс.Метрика