HackRF и GnuRadio на Mac

Хочу описать процесс установки и использования ПО для HackRF One, данная заметка является скорее памяткой для себя, но возможно будет полезна и другим начинающим "Маководам"...

Почему именно HackRF? С учетом ТТХ и цены это очень интересный гаджет для знакомства и экспериментов с GnuRadio.

Начнем...

Во первых, на чем обычно не заостряют внимание, - для успешной установки и сборки ПО из портов Вам потребуется установить последнюю версию Xcode из AppStore. Если Xcode уже установлен - настоятельно рекомендуется его обновить до последней версии. После установки его нужно запустить и принять положения лицензии. Кроме непосредственно GUI версии нужно установить утилиты командной строки, для этого в терминале вводим:

xcode-select --install


Для запуска порта GnuRadio требуется установить X11https://www.xquartz.org


Для установки ПО рекомендую использовать проект MacPort, скачать последнюю версию для вашей OS можно тут: https://www.macports.org/install.php

Устанавливаем MacPort и можем приступить к установке портов.


Во-первых, установим GnuRadio, для этого можно сразу запустить установку порта, но я рекомендую сначала установить порт doxygen. Собственно его установка автоматом должна пройти и в первом случае, однако у меня данный процесс выпадал с  ошибкой и приходилось ставить его вручную, поэтому сразу запускаем:

sudo port install doxygen

sudo port install gnuradio


Процесс установки довольно долгий и на старом маке может занять около 40 минут.

Если установка завершилось без ошибок, то можно попробовать запустить GUI командой gnuradio-companion (вводим её в терминале). Должно открыться окно типа:



Если при запуске появилась ошибка об отсутствии дисплея, то скорее всего у Вас не установлен X11, или Вы не перегрузились после его установки.


Теперь займемся HackRF, закрываем пока GnuRadio и запускаем в терминале установку порта:

sudo port install hackrf

После успешной установки - подключите устройство к компьютеру (если не сделали этого раньше) и выполните в терминале:

hackrf_info

Должна отобразиться информация о Вашем HackRF:

Found HackRF board 0:

USB descriptor string: 000000000000000014d463dc2fa16de1

Board ID Number: 2 (HackRF One)

Firmware Version: 2015.07.2

Part ID Number: 0xa000cb3c 0x00694f48

Serial Number: 0x00000000 0x00000000 0x14d463dc 0x2fa16de1


Давайте еще поставим порт OSMOSDR:

sudo port install gr-osmosdr +full

sudo port install gr-fosphor


Для проверки работы можно запустить спектр-анализатор:

osmocom_fft -F

Должно появиться такое окно:



Теперь поставим порт GQRX:

sudo port install gqrx


Для запуска - набираем в терминале gqrx.


GQRX работает и с другими приемниками, например RFSpace, Afedri и т.п.


GnuRadio довольно мощный инструмент, позволяющий из блоков-кирпичиков составлять довольно продвинутые схемы. Вот, например, простейший передатчик WFM передающий данные с микрофона компьютера в эфир. Частота по умолчанию 88.1МГц, исправьте её на ту, что не занята в Вашем регионе и экспериментируйте. 


Возможно, для экспериментов, Вам будет полезен и аналог Virtual Audio кабель: SoundFlower


В заключении, рекомендую обновить прошивку Вашего HackRF на актуальную, взять её можно тут: https://github.com/mossmann/hackrf/releases


Обновляйте его по инструкции и внимательно смотрите на имена файлов, что-б не пришлось потом проходить процедуру восстановления. ;)

Eterlogic VSPE

Eterlogic VSPE (Virtual Serial Ports Emulator) это программа поможет Вам создать виртуальный COM порт, пару, сплиттер и много чего еще.

Для чего это нужно? Приведу простой пример, - Вы хотите использовать ПО Perseus SDR с BobCAT и StationList. Обмен между этими программами осуществляется через COM порты. Скачивайте VSPE, после ее установки можно создать виртуальные устройства - коннектор для Perseus SDR (COM10 по умолчанию), а далее связанный с ним сплиттер (например на COM11), к которому можно подключить параллельно несколько программ (в нашем случае BobCAT и StationList).

Программа бесплатна, поддерживает русский язык, работает в Windows 7.

Конечно, VSPE можно использовать и с любыми другими устройствами, работающими с COM портами.