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 и все все все
Блог о ЦОС. И не только.
HackRF как трансивер: Часть 1. Установка SoapySDR
Наконец появилось время писать статейки. Ну что же, поехали!
Приобретал я HackRF с прицелом использовать его как трансивер без границ, с возможностью вещать в эфире на любой частоте и любой модуляции. И вот HackRF в моих руках, принимает и передает данные с помощью блока OsmoSDR. Здорово! Ну что же, соберем граф с трансивером. Кидаем на схему блоки «osmocom Sink» и «osmocom Source», жмем кнопку «Run» и… Получаем облом и кучу ошибок при запуске! Почему? Все просто, блоки пытаются независимо открыть устройство на примем и передачу одномоментно , но HackRf, по природе своей может одномоментно работать либо на прием, либо на передачу. Проблема, однако.
Я начинаю усердно гуглить, и нахожу людей столкнувшихся с той же проблемой. Решений на тот момент не существовало. Печаль. И я отложил эту проблему, надеясь что сообщество пользователей GnuRadio и HackRF как-то решит ее в итоге.
И вот, прошой осенью я решил посмотреть что нового.
И ура, наконец нашлись смелые люди что победили ее, написав драйвер-прослойку между Oscmocom блоками и драйвером HackRF.
Перед Новым Годом меня спросили на Radioscanner.Ru, можно ли как-то заставить работать HackRF трансивером? И я решил написать эту статью с подробными инструкциями.
Решение было найдено в багтрекере HackRF: https://github.com/mossmann/hackrf/issues/195 Суть ее такова, надо воспользоваться драйвером-прослойкой от программы SoapySDR, который возьмет на себя отслеживание режима «прием/передача»
Предварительные условия: я использую Ubuntu, и GnuRadio из репозитория, и все требуемые зависимости и библиотеки у меня установлены. Если нет, то выполните их установку командой «sudo apt-get install gnuradio hackrf gr-osmosdr libhackrf-dev libhackrf0 libusb-1.0-0 libusb-1.0-0-dev git»
Начинааем устанавливать.
1. Открываем консоль, перемещаемся в какой-нибудь каталог и получаем исходный код SoapySDR
$ cd /storage/Temp/
$ git clone https://github.com/pothosware/SoapySDR.git
Клонирование в «SoapySDR»…
remote: Counting objects: 5711, done.
remote: Total 5711 (delta 0), reused 0 (delta 0), pack-reused 5711
Получение объектов: 100% (5711/5711), 2.83 MiB | 948.00 KiB/s, готово.
Определение изменений: 100% (4463/4463), готово.
Проверка соединения… готово.
2. Переходим в каталог SoapySDR
$ cd SoapySDR/
3. Создаем каталог «build»
$ mkdir build
4. Переходим в него
$ cd build
5. Выполняем команду «cmake ../»
$ cmake ../
— The C compiler identification is GNU 5.4.0
— The CXX compiler identification is GNU 5.4.0
— Check for working C compiler: /usr/bin/cc
— Check for working C compiler: /usr/bin/cc — works
— Detecting C compiler ABI info
— Detecting C compiler ABI info — done
— Detecting C compile features
— Detecting C compile features — done
— Check for working CXX compiler: /usr/bin/c++
— Check for working CXX compiler: /usr/bin/c++ — works
— Detecting CXX compiler ABI info
— Detecting CXX compiler ABI info — done
— Detecting CXX compile features
— Detecting CXX compile features — done
— Build type not specified: defaulting to release.
— Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
—
— #############################################
— ## Begin configuration for Python support…
— #############################################
— Enabling optional Python bindings if possible…
— Found SWIG: /usr/bin/swig3.0 (found version «3.0.8»)
— SWIG_FOUND: TRUE — 3.0.8
— Found PythonInterp: /usr/bin/python (found version «2.7.12»)
— PYTHONINTERP_FOUND: TRUE — 2.7.12
— PYTHON_EXECUTABLE: /usr/bin/python
— PYTHON_INSTALL_DIR: $
— Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found version «2.7.12»)
— PYTHONLIBS_FOUND: TRUE — 2.7.12
— PYTHON_INCLUDE_DIRS: /usr/include/python2.7
— PYTHON_LIBRARIES: /usr/lib/x86_64-linux-gnu/libpython2.7.so
— Performing Test SIZE_T_IS_UNSIGNED_INT
— Performing Test SIZE_T_IS_UNSIGNED_INT — Failed
— CMAKE_SWIG_FLAGS=-c++;-threads
—
— #############################################
— ## Begin configuration for Python3 support…
— #############################################
— Enabling optional Python3 bindings if possible…
— SWIG_FOUND: TRUE — 3.0.8
— Found Python3Interp: /usr/bin/python3
— Could NOT find Python3InterpDbg (missing: PYTHON3_DBG_EXECUTABLE)
— PYTHON3INTERP_FOUND: TRUE
— PYTHON3_EXECUTABLE: /usr/bin/python3
— PYTHON3_INSTALL_DIR: $
— Could NOT find Python3Libs (missing: PYTHON3_LIBRARIES PYTHON3_INCLUDE_DIRS)
— PYTHON3LIBS_FOUND: FALSE
— PYTHON3_INCLUDE_DIRS: PYTHON3_INCLUDE_DIR-NOTFOUND
— PYTHON3_LIBRARIES: PYTHON3_LIBRARY-NOTFOUND
—
— ######################################################
— ## SoapySDR enabled features
— ######################################################
—
* Library , runtime library v0.6.0-g5e823fc1
* Tests , library unit tests
* Python , python bindings v2.7.12
— ######################################################
— ## SoapySDR disabled features
— ######################################################
—
* Docs , doxygen documentation
* Python3 , python3 bindings
— SoapySDR version: v0.6.0-g5e823fc1
— ABI/so version: v0.6-dev
— Install prefix: /usr/local
— Configuring done
— Generating done
— Build files have been written to: /storage/Temp/SoapySDR/build
6. Компилируем при помощи команды «make»
$ make
Scanning dependencies of target SoapySDR
[ 3%] Building CXX object lib/CMakeFiles/SoapySDR.dir/Device.cpp.o
[ 6%] Building CXX object lib/CMakeFiles/SoapySDR.dir/Factory.cpp.o
[ 9%] Building CXX object lib/CMakeFiles/SoapySDR.dir/Registry.cpp.o
[ 12%] Building CXX object lib/CMakeFiles/SoapySDR.dir/Types.cpp.o
[ 15%] Building CXX object lib/CMakeFiles/SoapySDR.dir/NullDevice.cpp.o
[ 18%] Building CXX object lib/CMakeFiles/SoapySDR.dir/Logger.cpp.o
[ 21%] Building CXX object lib/CMakeFiles/SoapySDR.dir/Errors.cpp.o
[ 24%] Building CXX object lib/CMakeFiles/SoapySDR.dir/Formats.cpp.o
[ 27%] Building CXX object lib/CMakeFiles/SoapySDR.dir/Modules.cpp.o
[ 30%] Building CXX object lib/CMakeFiles/SoapySDR.dir/Version.cpp.o
[ 33%] Building CXX object lib/CMakeFiles/SoapySDR.dir/TypesC.cpp.o
[ 36%] Building CXX object lib/CMakeFiles/SoapySDR.dir/ModulesC.cpp.o
[ 39%] Building CXX object lib/CMakeFiles/SoapySDR.dir/VersionC.cpp.o
[ 42%] Building CXX object lib/CMakeFiles/SoapySDR.dir/DeviceC.cpp.o
[ 45%] Building CXX object lib/CMakeFiles/SoapySDR.dir/FactoryC.cpp.o
[ 48%] Building CXX object lib/CMakeFiles/SoapySDR.dir/LoggerC.cpp.o
[ 51%] Building CXX object lib/CMakeFiles/SoapySDR.dir/TimeC.cpp.o
[ 54%] Building CXX object lib/CMakeFiles/SoapySDR.dir/ErrorsC.cpp.o
[ 57%] Building CXX object lib/CMakeFiles/SoapySDR.dir/FormatsC.cpp.o
[ 60%] Linking CXX shared library libSoapySDR.so
[ 60%] Built target SoapySDR
Scanning dependencies of target SoapySDRUtil
[ 63%] Building CXX object apps/CMakeFiles/SoapySDRUtil.dir/SoapySDRUtil.cpp.o
[ 66%] Building CXX object apps/CMakeFiles/SoapySDRUtil.dir/SoapySDRProbe.cpp.o
[ 69%] Building CXX object apps/CMakeFiles/SoapySDRUtil.dir/SoapyRateTest.cpp.o
[ 72%] Linking CXX executable SoapySDRUtil
[ 72%] Built target SoapySDRUtil
Scanning dependencies of target TestTimeConversion
[ 75%] Building CXX object tests/CMakeFiles/TestTimeConversion.dir/TestTimeConversion.cpp.o
[ 78%] Linking CXX executable TestTimeConversion
[ 78%] Built target TestTimeConversion
Scanning dependencies of target TestFormatParser
[ 81%] Building CXX object tests/CMakeFiles/TestFormatParser.dir/TestFormatParser.cpp.o
[ 84%] Linking CXX executable TestFormatParser
[ 84%] Built target TestFormatParser
Scanning dependencies of target TestKwargsMarkup
[ 87%] Building CXX object tests/CMakeFiles/TestKwargsMarkup.dir/TestKwargsMarkup.cpp.o
[ 90%] Linking CXX executable TestKwargsMarkup
[ 90%] Built target TestKwargsMarkup
[ 93%] Swig source
Scanning dependencies of target _SoapySDR
[ 96%] Building CXX object python/CMakeFiles/_SoapySDR.dir/SoapySDRPYTHON_wrap.cxx.o
[100%] Linking CXX shared module _SoapySDR.so
[100%] Built target _SoapySDR
7. Устанавливаем собранное командой «sudo make install»
$ sudo make install
[sudo] пароль для igor:
[ 60%] Built target SoapySDR
[ 72%] Built target SoapySDRUtil
[ 78%] Built target TestTimeConversion
[ 84%] Built target TestFormatParser
[ 90%] Built target TestKwargsMarkup
[100%] Built target _SoapySDR
Install the project…
— Install configuration: «Release»
— Installing: /usr/local/share/cmake/SoapySDR/SoapySDRConfig.cmake
— Installing: /usr/local/share/cmake/SoapySDR/SoapySDRUtil.cmake
— Installing: /usr/local/share/cmake/SoapySDR/SoapySDRConfigVersion.cmake
— Up-to-date: /usr/local/include/SoapySDR
— Installing: /usr/local/include/SoapySDR/Version.h
— Installing: /usr/local/include/SoapySDR/Modules.hpp
— Installing: /usr/local/include/SoapySDR/Config.h
— Installing: /usr/local/include/SoapySDR/Time.hpp
— Installing: /usr/local/include/SoapySDR/Types.h
— Installing: /usr/local/include/SoapySDR/Types.hpp
— Installing: /usr/local/include/SoapySDR/Version.hpp
— Installing: /usr/local/include/SoapySDR/Formats.hpp
— Installing: /usr/local/include/SoapySDR/Modules.h
— Installing: /usr/local/include/SoapySDR/Formats.h
— Installing: /usr/local/include/SoapySDR/Device.hpp
— Installing: /usr/local/include/SoapySDR/Logger.h
— Installing: /usr/local/include/SoapySDR/Errors.h
— Installing: /usr/local/include/SoapySDR/Registry.hpp
— Installing: /usr/local/include/SoapySDR/Logger.hpp
— Installing: /usr/local/include/SoapySDR/Device.h
— Installing: /usr/local/include/SoapySDR/Time.h
— Installing: /usr/local/include/SoapySDR/Errors.hpp
— Installing: /usr/local/include/SoapySDR/Constants.h
— Installing: /usr/local/include/SoapySDR/Config.hpp
— Installing: /usr/local/lib/libSoapySDR.so.0.6.0
— Up-to-date: /usr/local/lib/libSoapySDR.so.0.6-dev
— Up-to-date: /usr/local/lib/libSoapySDR.so
— Installing: /usr/local/lib/pkgconfig/SoapySDR.pc
— Installing: /usr/local/bin/SoapySDRUtil
— Set runtime path of «/usr/local/bin/SoapySDRUtil» to «»
— Installing: /usr/local/share/man/man1/SoapySDRUtil.1
— Installing: /usr/local/lib/python2.7/dist-packages/_SoapySDR.so
— Set runtime path of «/usr/local/lib/python2.7/dist-packages/_SoapySDR.so» to «»
— Installing: /usr/local/lib/python2.7/dist-packages/SoapySDR.py
8. Приступаем к установке драйвера-прослойки. Переходим в начальный каталог (у меня это /storage/Temp), и получаем исходный код SoapyHackRF
$ cd /storage/Temp/
$ git clone https://github.com/pothosware/SoapyHackRF.git
Клонирование в «SoapyHackRF»…
remote: Counting objects: 257, done.
remote: Total 257 (delta 0), reused 0 (delta 0), pack-reused 257
Получение объектов: 100% (257/257), 49.82 KiB | 0 bytes/s, готово.
Определение изменений: 100% (170/170), готово.
Проверка соединения… готово.
9. Заходим в SoapyHackRF
$ cd SoapyHackRF/
10. Как и в прошлый раз, создаем каталог «build«, заходим в него, и выполняем команду «cmake ../»
$ mkdir build
$ cd build/
$ cmake ../
— The CXX compiler identification is GNU 5.4.0
— Check for working CXX compiler: /usr/bin/c++
— Check for working CXX compiler: /usr/bin/c++ — works
— Detecting CXX compiler ABI info
— Detecting CXX compiler ABI info — done
— Detecting CXX compile features
— Detecting CXX compile features — done
— Build type not specified: defaulting to release.
— Found PkgConfig: /usr/bin/pkg-config (found version «0.29.1»)
— Found LIBHACKRF: /usr/lib/x86_64-linux-gnu/libhackrf.so
— LIBHACKRF_INCLUDE_DIR — /usr/include/libhackrf
— LIBHACKRF_LIBRARIES — /usr/lib/x86_64-linux-gnu/libhackrf.so
— Performing Test HAS_STD_CXX11
— Performing Test HAS_STD_CXX11 — Success
— Configuring done
— Generating done
— Build files have been written to: /storage/Temp/SoapyHackRF/build
11. Устанавливаем драйвер
$ sudo make install
[sudo] пароль для igor:
Scanning dependencies of target HackRFSupport
[ 20%] Building CXX object CMakeFiles/HackRFSupport.dir/HackRF_Registation.cpp.o
[ 40%] Building CXX object CMakeFiles/HackRFSupport.dir/HackRF_Settings.cpp.o
[ 60%] Building CXX object CMakeFiles/HackRFSupport.dir/HackRF_Streaming.cpp.o
/storage/Temp/SoapyHackRF/HackRF_Streaming.cpp: In member function ‘virtual void SoapyHackRF::releaseReadBuffer(SoapySDR::Stream*, size_t)’:
/storage/Temp/SoapyHackRF/HackRF_Streaming.cpp:734:22: warning: unused variable ‘data’ [-Wunused-variable]
SoapyHackRFStream * data = (SoapyHackRFStream*)stream;
^
/storage/Temp/SoapyHackRF/HackRF_Streaming.cpp: In member function ‘virtual void SoapyHackRF::releaseWriteBuffer(SoapySDR::Stream*, size_t, size_t, int&, long long int)’:
/storage/Temp/SoapyHackRF/HackRF_Streaming.cpp:793:22: warning: unused variable ‘data’ [-Wunused-variable]
SoapyHackRFStream * data = (SoapyHackRFStream*)stream;
^
[ 80%] Building CXX object CMakeFiles/HackRFSupport.dir/HackRF_Session.cpp.o
[100%] Linking CXX shared module libHackRFSupport.so
[100%] Built target HackRFSupport
Install the project…
— Install configuration: «Release»
— Installing: /usr/local/lib/SoapySDR/modules0.6-dev/libHackRFSupport.so
— Set runtime path of «/usr/local/lib/SoapySDR/modules0.6-dev/libHackRFSupport.so» to «»
12. Теперь нам надо проверить работу драйвера. Подключите HackRF к компьютеру, перейдите в начальный каталог, и выполните команду «SoapySDRUtil —probe=»driver=hackrf»»
$ cd /storage/Temp/
$ SoapySDRUtil —probe=»driver=hackrf»
######################################################
## Soapy SDR — the SDR abstraction library
######################################################
—————————————————-
— Device identification
—————————————————-
driver=HackRF
hardware=HackRF One
clock source=internal
part/> serial=000000000000000015d463dc186ca825
version=2014.08.1
—————————————————-
— Peripheral summary
—————————————————-
Channels: 1 Rx, 1 Tx
Timestamps: NO
Other Settings:
* Antenna Bias — Antenna port power control.
Установка драйвера hackrf windows
—————————————————-
— RX Channel 0
—————————————————-
Full-duplex: NO
Supports AGC: NO
Stream formats: CS8, CS16, CF32, CF64
Native format: CS8 [full-scale=128]
Stream args:
* Buffer Count — Number of buffers per read.
Установка драйвера hackrf windows
Antennas: TX/RX
Full gain range: [0, 116] dB
LNA gain range: [0, 40] dB
VGA gain range: [0, 62] dB
AMP gain range: [0, 14] dB
Full freq range: [0, 7250] MHz
RF freq range: [0, 7250] MHz
Sample rates: [1, 20] MHz
Filter bandwidths: [1.75, 28] MHz
—————————————————-
— TX Channel 0
—————————————————-
Full-duplex: NO
Supports AGC: NO
Stream formats: CS8, CS16, CF32, CF64
Native format: CS8 [full-scale=128]
Stream args:
* Buffer Count — Number of buffers per read.
Установка драйвера hackrf windows
Antennas: TX/RX
Full gain range: [0, 61] dB
VGA gain range: [0, 47] dB
AMP gain range: [0, 14] dB
Full freq range: [0, 7250] MHz
RF freq range: [0, 7250] MHz
Sample rates: [1, 20] MHz
Filter bandwidths: [1.75, 28] MHz
Как видите, наш HackRF был успешно опознан. Значит остался последний шаг.
13. Собираем GnuRadio блоки Osmocom c поддержкой SoapySDR. Сборка выполняется так же как и описано ранее здесь, в части описывающей установку gr-osmosdr. Единственное предупреждение — если перед установкой у вас уже был установлен gr-osmocom в системе, удалите его командой «sudo apt-get remove gr-osmosdr».
После запуска команды «cmake ../» в её выводе должно быть указано, что система сборки обнаружила библиотеки SoapyHackRf, и их поддержка будет доступна.
— ######################################################
— # Gnuradio enabled components
— ######################################################
— * Python support
— * Osmocom IQ Imbalance Correction
— * FUNcube Dongle
— * FUNcube Dongle Pro+
— * IQ File Source & Sink
— * RTLSDR TCP Client
— * HackRF & rad1o Badge
— * RFSPACE Receivers
— * SoapySDR support
— * Red Pitaya SDR
—
— ######################################################
— # Gnuradio disabled components
— ######################################################
— * sysmocom OsmoSDR
— * Osmocom RTLSDR
— * Ettus USRP Devices
— * Osmocom MiriSDR
— * nuand bladeRF
— * AIRSPY Receiver
Теперь у нас есть установленный драйвер SoapyHackRf, и в следующих статьях мы наладим работу в режиме трансивера с помощью GnuRadio.
HackRF как трансивер: Часть 1. Установка SoapySDR : 13 комментариев
У кого не встали дрова — не совокупляйтесь лишний раз, ставьте по инструкции разраба на Github. У меня по инструкции в статье не взлетел.