GnuRadio и все все все
Блог о ЦОС. И не только.
Обзор HackRf One: Часть 2 Настройка софта
Мы подключили HackRf к ноутбуку, и увидели что он определяется корректно. Настала пора разобраться с программной частью. Для начала нам нужно установить ПО для HackRf. К счастью все необходимое ПО уже имеется в репозитории Ubuntu. Посмотрим что там есть.
igor@ghost64:
$ apt-cache search hackrf
gqrx-sdr — Software defined radio receiver
hackrf — Software defined radio peripheral
libhackrf-dev — Software defined radio peripheral
libhackrf0 — Software defined radio peripheral
gqrx — Software defined radio receiver
gr-osmosdr — Gnuradio blocks from the OsmoSDR project
Давай разберемся кто есть кто.
hackrf — утилиты для взаимодействия с приемником
libhackrf0 — библиотека для поддержки управления HackRf сторонними приложениями
libhackrf-dev — пакет содержащий заголовочные файлы, и прочие вещи, необходимые нам, если мы сами захотим скомпилировать какую-нибудь программу с поддержкой HackRf
Нам потребуется это все. Устанавливаем ПО командой:
$ sudo apt-get install hackrf libhackrf0 libhackrf-dev
Посмотрим что за утилиты мы установили. Пакет hackrf содержит следующие программы:
hackrf_info — вывод информации о устройстве.
hackrf_spiflash — программа для обновления прошивки в контроллере
hackrf_cpldjtag — программа для обновления прошивки в CLPD микросхеме.
hackrf_transfer — многофункциональная программа для передачи/приема данных
hackrf_max2837, hackrf_rffc5071, hackrf_si5351c — насколько я понял, данные программы служат для модификаций значений регистров в микросхемах. Возможно они нужны для разработиков прошивок в отладочных целях.
Запустим уже что-нибудь? Что попроще, к примеру hackrf_info
$ hackrf_info
Found HackRF board.
Board ID Number: 2 (HackRF One)
Firmware Version: 2014.08.1
Part ID Number: 0x00584f5e 0x00584f5e
Serial Number: 0x00000000 0x00000000 0x15d463dc 0x186ca825
Вся информация о оборудовании как на ладони. Наиболее полезное тут для нас это Firmware Version. Сейчас в HackRf прошита самая последняя версия 2014.08.1. Проверять наличие новых прошивок нужно тут http://sourceforge.net/projects/hackrf/files/
Если в результате запуска команды вы получили ошибку:
hackrf_open() failed: HACKRF_ERROR_NOT_FOUND (-5)
то причины могут быть в следующем:
1. Отсутствие прав доступа к USB устройствам у текущего пользователя.
Проверить это можно запустив утилиту hackrf_info от имени root пользователя. Если от имени рута программа успешно считывает информацию с HackRf, а от пользователя не хочет, то значит проблема с правами. Исправить это можно, написав правило для udev
Создайте файл /etc/udev/rules.d/52-hackrf.rules , и впишите в него следующие правила:
ATTR
, MODE=»660″, GROUP=»plugdev»
ATTR
«660», GROUP=»plugdev»
ATTR
«660», GROUP=»plugdev»
Сохраните файл, и либо перезагрузите компьютер, либо перезапустите демон udev командой udevadm control —reload-rules . Как вы уже догадались, этими тремя правилами мы задаем для устройств с определенными VendorID и ProductID права доступа 660, и доступ членам группы plugdev.
2. Другая причина — устаревшая версия программ и библиотек для HackRf
HackRf One поддерживается ПО версии 2014.04.1 и новее. Может получиться так, что в репозитории окажется старая версия ПО. Проверить версию установленного ПО в Debian/Ubuntu можно при помощи команды apt-cache show hackrf
Вот небольшая иллюстрация.
Ноут с Ubuntu 14.04 LTS
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION=»Ubuntu 14.04.2 LTS»
В репозитории — устаревший софт.
$ apt-cache show hackrf
Package: hackrf
Priority: extra
Section: universe/libs
Installed-Size: 120
Maintainer: Ubuntu Developers
Original-Maintainer: A. Maitland Bottoms
Architecture: i386
Version: 2013.07.1.16.d5cebd-2 — с этой версией жизни нет!
Depends: libhackrf0 (= 2013.07.1.16.d5cebd-2), libc6 (>= 2.7)
Filename: pool/universe/h/hackrf/hackrf_2013.07.1.16.d5cebd-2_i386.deb
Size: 29708
MD5sum: e4e8542460419a3c0e577dbd6f26ffe9
SHA1: 777ef6d304f2c5606d755291dc123c7c800ab42e
SHA256: 3200d2819cf3f67614f3dd1d2b81fe7adb5443be89e577d0499ae464ab931b21
А вот другой ноут с относительно свежей системой
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.10
DISTRIB_CODENAME=utopic
DISTRIB_DESCRIPTION=»Ubuntu 14.10″
$ apt-cache show hackrf
Package: hackrf
Priority: extra
Section: universe/libs
Installed-Size: 124
Maintainer: Ubuntu Developers
Original-Maintainer: A. Maitland Bottoms
Architecture: i386
Version: 2014.04.1-2 — тут в репозитории свежая версия.
Depends: libhackrf0 (= 2014.04.1-2), libc6 (>= 2.7)
Filename: pool/universe/h/hackrf/hackrf_2014.04.1-2_i386.deb
Size: 26718
MD5sum: 2658d15c2d09328049850cc41fb4e643
Выхода из этой ситуации два: либо ждать когда обновят софт в репозитории (ждать этого можно вечно ) или собрать свежий софт самому.
Собираем его так:
1. Ставим нужный для сборки софт
sudo apt-get install build-essential cmake libusb-1.0-0-dev
2. Удаляем неактуальный софт.
sudo apt-get remove hackrf libhackrf-dev libhackrf0
3. Получаем свежие версии исходников:
git clone https://github.com/mossmann/hackrf.git
4. Идем в папку host
cd hackrf/host/
5. Выполняем следующие команды
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
6. Теперь попытаемся выполнить команду hackrf_info (если у вас на эту команду bash выругался что-то вроде «команда не найдена», то просто откройте новое терминальное окно, и выполните в нем)
$ hackrf_info
Found HackRF board.
Board ID Number: 2 (HackRF One)
Firmware Version: 2014.08.1
Part ID Number: 0xa000cb3c 0x00584f5e
Serial Number: 0x00000000 0x00000000 0x15d463dc 0x186ca825
Ура! Работает!
Итак, софт мы поставили, и оборудование успешно определяется. Настала пора попробовать использовать HackRf как источник сигнала в GnuRadio.
Поддержку HackRf в GnuRadio обеспечивает OsmoSDR source (тот самый, что используется для работы с RTL донглами). Даже если у вас он уже был установлен ранее, то его надо будет пересобрать для поддержки HackRF. Сборка выполняется по инструкции из этой статьи . При сборке следует обратить внимание на вывод команды cmake. В ней он указывает какие компоненты он обнаружил и активировал. Запись о HackRF должна присутствовать в разделе «gr-osmosdr enabled components»
— ######################################################
— # gr-osmosdr enabled components
— ######################################################
— * Python support
— * FUNcube Dongle
— * IQ File Source
— * Osmocom RTLSDR
— * RTLSDR TCP Client
— * HackRF Jawbreaker
— * RFSPACE Receivers
После пересборки/установки OsmoSDR можно попробовать проверить работу HackRF с GnuRadio послушав FM станции с помощью графа приемника fm_radio_rx.grc Не забудьте поменять в этом графе частоту семплирования с 5 миллионов, до 8 (минимально поддерживаемую HackRF)
Вот как-то так оно работает. Не следует удивляться уровню сигнала, так как это принималось все квартире на антенну от Baofeng.
Источник
Как установить gnuradio в Ubuntu / Debian
Установка:
Для установки gnuradio в Ubuntu / Linux Mint / Debian, введите в Терминал :
Подробная информация о пакете:
Программное обеспечение Radio Radio Radio Toolkit
Зависимости:
Библиотека опций программ для C++
Библиотека операционной системы (например, поддержка диагностики)
Портативный многопоточный C++
Библиотека GNU C: общие библиотеки
Библиотека времени исполнения Codec2
Библиотека поддержки GCC
Аналоговые функции gnuradio
Функции gnuradio atsc
Функции gnuradio блокируют
Функции каналов gnuradio
Функции управления функциями gnuradio comedi
Функции цифровой связи gnuradio
Блоки обработки сигналов цифрового телевидения gnuradio
Поддержка Gnuradio FunCube Dongle
Поддержка коррекции ошибок gnuradio
Gnuradio быстрые функции преобразования Фурье
Функции фильтра gnuradio
Функции спутниковых сигналов gnuradio noaa
Функции радиовызовов gnuradio pager
Библиотека контейнеров gnuradio pmt
Функции графического пользовательского интерфейса gnuradio Qt
Gnuradio core runtime
Функции модуляции gnuradio решетки
Функции универсального аппаратного обеспечения gnuradio
Функции видео gnuradio
Функции gnuradio vocoder
Функции gnuradio wxgui
Функции gnuradio zeromq
Библиотека C++ для гибкого ведения журнала (среда выполнения)
Общая библиотека времени исполнения Python (версия 2.7)
Модуль ядра Qt 5
Модуль виджетов Qt 5
Стандартная библиотека GNU GNU v3
Универсальный аппаратный драйвер для продуктов Ettus Research — библиотека
Инструменты с оптимизированным вектором
Интерактивный высокоуровневый объектно-ориентированный язык (ветка 2.x)
Текстовый механизм шаблонов и генератор кода Python
Связывание Python для набора виджета GTK+
Связывание pythonic для библиотек libxml2 и libxslt
Численный Python добавляет быстрый механизм массива на язык Python
Связывание Python с OpenGL (Python 2)
Связывание Python 2 для Qt5
Библиотека времени исполнения генератора Python/C++
Интерфейс Python для wxWidgets Кросс-платформенный инструментарий C++ GUI
Источник
Сборка и установка GNURadio из GIT под Ubuntu и Debian
Добрый всем вечер, день или еще!
Тут как-то понадобилось установить программу GNURadio. Конечно я ее установил через «apt install . » и даже попробовал как советует автор GNURadio через PyBOMBS, но в первом случае, нет гарантии, что это будет последняя версия, а во втором возникали ошибки при установке.
Но в любом случае, мне хотелось всегда последнюю версию (хотя последнее, не всегда значит лучше!), да и вообще нравится мне этот фетиш с make )
В общем решил поставить из репозитория GitHub и собрать самостоятельно. Но естественно возникли проблемы со сборкой. То одно не хватает, то другое, то версии не те. В общем всё ругается и не компилируется. А в инете нет нормального описания (я не нашел) по установке.
Но потратив денек, я для себя накатал доку (дабы потом не забыть) и решил поделиться с Вами.
И так я расскажу, как установить и собрать GNURadio и модули для DVB-T USB приемника (у меня обычный приемник с али за 500 руб. и AirSpy R2)
Советы по установке:
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
Для начала устанавливаем необходимые пакеты (строка длинная)
и далее строчку за строчкой
после make test посмотрите, чтобы не было ошибок!
если нет, то далее…
сейчас мы установили GNURadio. Его можно уже запустить и пользоваться, но нам надо еще собрать и подключить модули для нашего DVB-T приемника.
Часть 2. Инсталлируем библиотеку RTL-SDR (DVB-T RTL2832U)
Тут не должно быть проблем. И библиотека RTL-SDR установлена.
Часть 3. Инсталлируем библиотеку LibRtlSdr
Сделано. Идем далее.
Часть 4. Инсталлируем библиотеку GR-OsmoSdr
Сделано. Идем далее.
Часть 5. Инсталлируем библиотеку Liquid DSP
Сделано. Идем далее.
Часть 6. Заблокировать загрузку стандартных файлов для нашего DVB-T RTL2832U
Открываем (или создаем) файл «/etc/modprobe.d/blacklist-dvb.conf»
и туда вставляем строчки
blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830
и ПЕРЕЗАПУСКАЕМ систему или проще говоря:
Ну вот, вроде процесс закончен и мы можем запустить и проверить наш GNURadio
для этого набираем в консоли:
Источник