Установка и сборка¶
Зависимости¶
Сборка не компилирует C++ — она прогоняет каждый .grc через grcc и получает
Python-скрипты. Поэтому все зависимости нужны уже на этапе сборки: grcc
импортирует блоки, чтобы сгенерировать код, и падает, если блока нет.
Компонент |
Версия |
Зачем |
|---|---|---|
CMake |
≥ 3.20 |
сборочная система; версия заявлена в |
GNU Radio |
3.10.x |
ядро; нужны компоненты |
|
из GNU Radio |
генератор Python из |
3.1.x |
блоки |
|
≥ 5.x |
только для Geoscan и USP |
|
SoapySDR + драйвер приёмника |
— |
блок |
Hamlib с Python-биндингами |
— |
|
Python: |
— |
процессы-подписчики |
Примечание
Без gr-satellites сборка дойдёт до satellites/geoscan_gfsk_decoder.grc и
satellites/usp_fsk_decoder.grc и упадёт там с ошибкой про отсутствующий блок
satellites_fsk_demodulator. Все перечисленные зависимости объявлены в
debian/control, поэтому apt-get build-dep . их подтянет.
Debian¶
Пакеты gr-satnogs доступны в репозиториях home:librespace:satnogs2 на openSUSE Open Build Service. После подключения репозитория:
sudo apt-get install build-essential cmake pkgconf \
gnuradio-dev gr-satnogs \
python3-soapysdr python3-zmq python3-numpy python3-soundfile
gr-satellites там тоже есть (проверено на Debian 12: gr-satnogs 3.1.0.1,
gr-satellites 5.9.0). Если в вашем дистрибутиве пакета нет — ставьте из
исходников.
Проверить, что всё на месте:
gnuradio-config-info --version # ожидается 3.10.x
python3 -c "import satnogs; import satellites; import Hamlib; print('ok')"
which grcc
Сборка из исходников¶
git clone git@gitlab.com:space-education-development/soniks/soniks-flowgraphs.git
cd soniks-flowgraphs
mkdir build && cd build
cmake ..
make
sudo make install
Сборка в контейнере¶
На машине без gr-satnogs вся сборка проверяется в образе, на котором собран
клиент станции. Дерево монтируется только на чтение, копия собирается внутри:
docker run --rm -v "$PWD":/src:ro librespace/gnuradio:3.10.5.1-satnogs bash -c '
set -e
export DEBIAN_FRONTEND=noninteractive
echo "deb http://download.opensuse.org/repositories/home:/librespace:/satnogs2/Debian_12/ /" \
> /etc/apt/sources.list.d/satnogs.list
apt-get update && apt-get install -y --no-install-recommends curl gnupg
curl -fsSL https://download.opensuse.org/repositories/home:librespace:satnogs2/Debian_12/Release.key \
| gpg --dearmor > /etc/apt/trusted.gpg.d/satnogs.gpg
apt-get update && apt-get install -y --no-install-recommends \
build-essential cmake pkgconf debhelper dh-python python3-all gr-satnogs gr-satellites
mkdir /work && cp -a /src/. /work/ && cd /work && rm -rf build
cmake -S . -B build && cmake --build build'
В образе уже есть GNU Radio 3.10.5.1, grcc, gr-satellites и Hamlib; из
репозитория OBS доезжает gr-satnogs. Замените последнюю строку на
dpkg-buildpackage -b -us -uc, чтобы получить .deb.
Примечание
Станция собирается иначе: soniks-client-new/Dockerfile берёт тот же базовый
образ, но gr-satnogs компилирует из master, а не ставит из OBS. Если правка
.grc опирается на свежий блок gr-satnogs, проверяйте её именно так.
Сборка одного флоуграфа¶
Каждому .grc соответствует цель CMake, названная по имени файла без расширения:
make fm # generic/fm.grc
make usp_fsk_decoder # satellites/usp_fsk_decoder.grc
make geoscan_gfsk_decoder
Удобно при отладке: не нужно ждать прогона grcc по всем 20 флоуграфам.
Что и куда ставится¶
Источник |
Куда |
Что получается |
|---|---|---|
|
|
|
|
|
исходники, плюс символические ссылки без расширения в |
Примечание
test_flowgraphs/ в сборку не входит: генераторы писались бы grcc -u в
домашний каталог сборщика на этапе make, а не make install. Разработчику,
которому они нужны в палитре GRC, — grcc -u *.grc вручную, см.
Справочник флоуграфов.
Удаление¶
sudo make uninstall
Сборка Debian-пакета¶
sudo apt-get build-dep . # либо поставьте Build-Depends вручную
dpkg-buildpackage -us -uc -b
Метаданные — в debian/control:
пакет soniks-flowgraphs, архитектурно-независимый. Он заменяет собой
satnogs-flowgraphs (Provides/Conflicts/Replaces), поэтому обновление с
апстримового пакета проходит без ручного удаления.
В CI пакет не собирается: форк больше не публикует в OBS-проекты Libre Space Foundation, а своей инфраструктуры пока нет. См. Известные расхождения.
Проверка установки¶
flowgraph_dispatcher --help
ls $(dirname $(which flowgraph_dispatcher))/satnogs_*.py | head
Первый запуск с реальным приёмником — Быстрый старт.