Уже есть статья про запуск на Raspberry Pi. Но из-за особенностей RPi пришлось от неё отказаться в пользу более продвинутого железа у ODROID-C1+
Устанавливаем Ubuntu Minimal на карту, карту вставляем в С1+, Подключаем RTL-SDR свисток, антенну, патч-корд и подаём питание.
Подключаемся по SSH.
- ssh root@192.168.1.167
Пароль по умолчанию - odroid
Пытаемся обновить систему
- apt-get update&&apt-get upgrade&&apt-get dist-upgrade
Если будет ошибка
- E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
Ждем, насколько я понял, при первом запуске Ubuntu Minimal расширяет системный раздел на всю карту. Активность видно по быстро мигающем синему светодиоду, как только он начнет медленно мигать - приступаем к обновлению
- apt-get update&&apt-get upgrade&&apt-get dist-upgrade
Для своего удобства, я использовал подключение по WiFi. Настроить его было немного сложнее чем на обычной Ubuntu или Raspbian
Устанавливаем необходимые программы
- apt-get install git libusb-1.0-0-dev cmake nano wireless-tools wpasupplicant usbutils speedtest-cli
Проверяем что свисток видит система
- iwconfig
Да-да, тут почему-то WiFi свисток не wlan0 а wlx000f60038ce5
Значит все ок. Приступаем к настройке подключения к сети WiFi
Сканируем видимые сети
- iwlist scan
Для подключения нам нужен ключ psk
- wpa_passphrase ВАШSSIDWiFiСети ВашПароль
Пример: wpa_passphrase MyWiFi 1234admin
Сразу нам предоставят psk ключ для подключения к сети
- network={
- ssid="ВАШSSIDWiFiСети"
- #psk="ВашПароль"
- psk=fe727aa8b64ac9b23423423gsxfgbcvbbbc6c52e7522fw4w709a
- }
Где-нибудь сохраняем его
Редактируем interfaces
- nano /etc/network/interfaces
Приводим его к такому виду, так можно будет использовать подключение по Ethernet и WiFi, но только что-то одно
- # interfaces(5) file used by ifup(8) and ifdown(8)
- # Include files from /etc/network/interfaces.d:
- auto wlx000f60038ce5
- iface wlx000f60038ce5 inet dhcp
- wpa-driver wext
- wpa-ssid ВАШSSIDWiFiСети
- wpa-ap-scan 1
- wpa-proto RSN
- wpa-pairwise CCMP
- wpa-group CCMP
- wpa-key-mgmt WPA-PSK
- wpa-psk fe727aa8b64ac9b23423423gsxfgbcvbbbc6c52e7522fw4w709a
Сохраняем CTRL+O и выходим CRTL+X
Далее создаем конфигурационный файл для wpasupplicant
- nano /etc/wpa_supplicant.conf
У меня такая конфигурация
- ap_scan=1
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="ВАШSSIDWiFiСети"
scan_ssid=0
psk=fe727aa8b64ac9b23423423gsxfgbcvbbbc6c52e7522fw4w709a
key_mgmt=WPA-PSK
proto=RSN
pairwise=CCMP
group=CCMP
}
Сохраняем CTRL+O , выходим CRTL+X и перезагружаемся
- reboot
Всё. Патч-корд отсоединяем, чтобы не было конфликтов в работе dhcp роутера
Устанавливаем osmo-RTL-SDR
- git clone git://git.osmocom.org/rtl-sdr.git
- cd rtl-sdr
- mkdir build
- cd build
- cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
- make
- make install
- ldconfig
Проверим что свисток работает
- rtl_test
Вывод будет примерно таким
- pi@raspberrypi:~$ rtl_test
Found 1 device(s):
0: Realtek, RTL2832U, SN: 00001302
Using device 0: Generic RTL2832U
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
Info: This tool will continuously read from the device, and report if
samples get lost. If you observe no further output, everything is fine.
Reading samples in async mode...
lost at least 68 bytes
Теперь чтобы транслировать в сеть достаточно запустить rtl_tcp и указать IP Raspberry Pi и вручную указать порт (по умолчанию это 1234)
- rtl_tcp -a 192.168.1.167 -p 1234
Для раздачи потока вашим друзьям, можно использовать замечательную утилиту rtlmuxer
- git clone https://github.com/alexander-sholohov/rtlmuxer
- cd ./rtlmuxer
- make
Для работы этой утилиты нужно чтобы работал rtl_tcp, можно оставить его работать в фоне, можно открыть еще один терминал и выполнить
- ./rtlmuxer --src-address=192.168.1.167 --src-port=1234 --sink-bind-address=192.168.1.167 --sink-bind-port-a=2222 --sink-bind-port-b=2223
src-address=192.168.1.167 - адрес rtl_tcp вещания
--src-port=1234 - порт который вещает rtl_tcp
--sink-bind-port-a=2222 Порт A
--sink-bind-port-b=2223 Порт B
Порт A используется для управления, т.е. он задает частоту дискретизации, усиление, сдвиг, ppm и т.д. Порт B - для слушателей, они могут в пределах выбранной частоты дискретизации слушать радио, но изменять параметры вещания не смогут.
Чтобы вы управляли, вам нужно ввести в поле Device string
- 192.168.1.167:2222 - для локального управления
- 164.72.86.60:2223 - внешний ip для друзей
- test.asuscomm.com:2223 - если роутер поддерживает DDNS
Устанавливаем OpenWebRX
- apt-get install build-essential libfftw3-dev cmake nmap
- git clone https://github.com/simonyiszk/openwebrx.git
- git clone https://github.com/simonyiszk/csdr.git
- cd csdr
- make
- make install
Убираем загрузку драйверов dvbt. Если не убрать, С1+ будет зависать намертво с kernel panic
- bash -c 'echo -e "\n# for RTL-SDR:\nblacklist dvb_usb_rtl28xxu\n" >> /etc/modprobe.d/blacklist.conf'
Чтобы редактировать настройки OpenWebRX, переходим в каталог с программой и используя nano редактируем
- nano config_webrx.py
Запускаем openwebrx
- ./openwebrx.py
Стандартный порт для вещания 8073. Открываем браузер и вводим IP C1+
192.168.1.167:8073
Для автоматического запуска при включении C1+ необходимо установить
tmux
- apt-get install tmux
Далее редактируем файл для автозапуска скриптов и вписываем строку до значения exit0
- nano /etc/rc.local
- sudo -H -u root tmux new -d -s openwebrx-session 'bash -c "cd ~/openwebrx; ./openwebrx.py; bash"'
Перезагружаем и радуемся!
Круто!! Спасибо!
ВідповістиВидалитиПодскажите пожалуйста сколько клиентов выдержит данное железо.
ВідповістиВидалитивсе работает кроме после Устанавливаем OpenWebRX
ВідповістиВидалити+1
ВидалитиGolovastik, конфиг, естесственно, штатный
nano config_webrx.py
ВідповістиВидалитипокажите ваши настройки
config_webrx.py настройка под использование rtlmux ?
ВідповістиВидалитиconfig_webrx.py настройки под потоковое rtl_tcp покажите, а получается тема не завершена. Тема Запускаем RTL-SDR сервер OpenWebRX/RTL_TCP так и покажите как работает !!!
ВідповістиВидалитинастройки config_webrx.py что то типа !device 127.0.0.1:1234
ВідповістиВидалити