Добрый всем вечер, день или еще!

Тут как-то понадобилось установить программу GNURadio. Конечно я ее установил через «apt install ....» и даже попробовал как советует автор GNURadio через PyBOMBS, но в первом случае, нет гарантии, что это будет последняя версия, а во втором возникали ошибки при установке.

Но в любом случае, мне хотелось всегда последнюю версию (хотя последнее, не всегда значит лучше!), да и вообще нравится мне этот фетиш с make )

В общем решил поставить из репозитория GitHub и собрать самостоятельно. Но естественно возникли проблемы со сборкой. То одно не хватает, то другое, то версии не те. В общем всё ругается и не компилируется. А в инете нет нормального описания (я не нашел) по установке.

Но потратив денек, я для себя накатал доку (дабы потом не забыть) и решил поделиться с Вами.


И так я расскажу, как установить и собрать GNURadio и модули для DVB-T USB приемника (у меня обычный приемник с али за 500 руб. и AirSpy R2)

Приемник DVB-T USB RTL2832U
image

Итак, поехали!

Советы по установке:

1. Пишу по шагам, не пропускать ни одного шага, идем сверху вниз
2. Я скачивал всё в домашнюю папку! (cd ~)
3. Где нужен root, там я пишу sudo
4. Проверяйте, что пишется в консоли после каждого шага (вдруг у Вас ошибка)
5. Процесс не быстрый! Нужно терпения и машинку по быстрее. Где-то час у вас уйдет на всё.

Далее

Весь процесс я поделил на 6 частей (установок)

1. Инсталлируем GNURadio — процесс долгий, сборка идет долго. Так, что терпения вам
2. Инсталлируем библиотеку RTL-SDR (DVB-T RTL2832U) для приемника
3. Инсталлируем библиотеку LibRtlSdr (Software to turn the RTL2832U into an SDR)
4. Инсталлируем библиотеку GR-OsmoSdr
5. Инсталлируем библиотеку Liquid DSP
6. Заблокировать загрузку стандартных файлов для нашего DVB-T RTL2832U

Часть 1. Инсталлируем GNURadio

Для начала устанавливаем необходимые пакеты (строка длинная)

sudo apt-get install git python-pip libboost-all-dev swig libcppunit-dev python-gtk2-dev libfftw3-dev libqwt-dev pyqt4-dev-tools python-wxgtk3.0 python-lxml alsa-utils doxygen cmake libusb-1.0-0-dev libgsl-dev osspd

и далее строчку за строчкой

cd ~
sudo pip install --upgrade pip
sudo pip install mako numpy Cheetah3
git clone https://github.com/gnuradio/gnuradio.git
cd gnuradio
git clone https://github.com/gnuradio/volk.git
mkdir build
cd build
cmake ../
make
make test

после make test посмотрите, чтобы не было ошибок!
если нет, то далее…

sudo make install
sudo ldconfig

сейчас мы установили GNURadio. Его можно уже запустить и пользоваться, но нам надо еще собрать и подключить модули для нашего DVB-T приемника.

Часть 2. Инсталлируем библиотеку RTL-SDR (DVB-T RTL2832U)

cd ~
git clone https://github.com/osmocom/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig

Тут не должно быть проблем. И библиотека RTL-SDR установлена.

Часть 3. Инсталлируем библиотеку LibRtlSdr

sudo apt-get install libusb-1.0-0-dev
cd ~
git clone https://github.com/steve-m/librtlsdr.git
cd librtlsdr
mkdir build
cd build/
cmake ../
make
sudo make install
sudo ldconfig

Сделано. Идем далее.

Часть 4. Инсталлируем библиотеку GR-OsmoSdr

cd ~
git clone git://git.osmocom.org/gr-osmosdr
cd gr-osmosdr/
mkdir build
cd build/
cmake ../
make
sudo make install
sudo ldconfig

Сделано. Идем далее.

Часть 5. Инсталлируем библиотеку Liquid DSP

sudo apt-get install automake
cd ~
git clone https://github.com/jgaeddert/liquid-dsp.git
cd liquid-dsp
./bootstrap.sh
./configure
make
sudo make install
sudo ldconfig

Сделано. Идем далее.

Часть 6. Заблокировать загрузку стандартных файлов для нашего DVB-T RTL2832U
Открываем (или создаем) файл "/etc/modprobe.d/blacklist-dvb.conf"
и туда вставляем строчки

blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830


и ПЕРЕЗАПУСКАЕМ систему или проще говоря:

sudo reboot

Ну вот, вроде процесс закончен и мы можем запустить и проверить наш GNURadio
для этого набираем в консоли:

gnuradio-companion

Запустили GNURadio
image

Пример FM Radio для GNURadio

Ну и сам ролик установки на Ubuntu 18.04


Во время установки и проб, были ошибки связанных со звуковой картой (Проблема здесь в использовании программой старой звуковой подсистемы OSS) и второе прописать в блоке «osmosdr_source_0» строку «driver=rtlsdr,rtl=0». В остальном вроде проблем не было. Но у вас не должно быть проблем, т.к. я уже указал нужные вам пакеты в «sudo apt install...»

После установки всех пакетов, клонированные папки (git clone ....) можно удалить:

rm -r -f gr-osmosdr
rm -r -f rtl-sdr
rm -r -f librtlsdr
rm -r -f gnuradio
rm -r -f liquid-dsp


Я еще дополнительно устанавливал себе блоки-модули для LoRa, GSM и прочее.

Различных модулей под GNURadio много.

Полный список таких плагинов-блоков для GNURadio по ссылкам:

https://github.com/gnuradio/gr-recipes
https://github.com/gnuradio/gr-etcetera

Для примера расскажу как установить модуль gr-gsm

Заходим по ссылке https://github.com/gnuradio/gr-etcetera, там видим архив файлов для установки через PyBOMBS, но мы будем устанавливать и собирать из исходников.

Ищем файл gr-gsm.lwr

gr-gsm.lwr
image

и нажимаем на нем

gr-gsm.lwr
image

Находим в конце строку github.com/ptrkrysik/gr-gsm.git и копируем в буфер.
Это ссылка на исходы на GITHUB.

(копируем только github.com/ptrkrysik/gr-gsm.git)

Далее все как обычно

cd ~
git clone https://github.com/ptrkrysik/gr-gsm.git
cd gr-gsm/
mkdir build/
cd build
cmake ../
make
sudo make install
sudo ldconfig


Всё, модуль установлен и появился в GNURadio

GSM модуль в GNURadio
image


Все модули, как правило, устанавливаются также, но читайте в readme от автора модуля.

Дополнение для тех, у кого есть AirSpy R2
Тут всё тоже просто как 2х2

cd ~
git clone https://github.com/airspy/airspyone_host.git
cd airspyone_host
mkdir build
cd build/
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig


Вот и всё. Надеюсь кому-то это интересно, будут вопросы — спрашивайте.

Комментарии (4)


  1. gecube
    03.05.2018 18:09

    Предлагаю учиться ставить софт не через make install, а через checkinstall. Это позволяет в конечном счёте контролировать мусор в системе и собирать "православный" deb пакет


    1. Serjaru Автор
      03.05.2018 18:14

      Ну наша задача не deb пакеты собирать. А установить программу. Поэтому этот коммент не в тему.


      1. gecube
        03.05.2018 18:50
        +1

        И да, и нет. Нужно показывать best practices. Иначе никто ими и не овладеет. Сам долгое время так же собирал астериск из исходников, но в какой-то момент это надоело и стал делать правильно + скрипты ansible для раскатки.


  1. axilirator
    04.05.2018 12:14

    Часть 3. Инсталлируем библиотеку LibRtlSdr

    Зачем устанавливать librtlsdr отдельно, если она идет в составе основного репозитория git.osmocom.org/rtl-sdr/tree/src/librtlsdr.c?