Диагностика неисправностей

Сборка

grcc падает на geoscan или usp

Block key "satellites_fsk_demodulator" not found

Не установлен gr-satellites. Он нужен только двум флоуграфам, но make собирает все подряд и останавливается на первом отказе. Поставьте gr-satellites (см. Установка и сборка) либо соберите остальное поштучно:

make fm && make fsk_ax25 && 

ImportError: No module named Hamlib

Не установлены Python-биндинги Hamlib. Их требует каждый флоуграф с доплеровской компенсацией — то есть все, кроме шаблонных.

CMake ругается на cmake_path

Unknown CMake command "cmake_path"

cmake_path() появился в CMake 3.20, хотя в CMakeLists.txt заявлен минимум 3.8. Нужен CMake 3.20 или новее.

Иерархические блоки не появились в GNU Radio Companion

Они пишутся в персистентный каталог GNU Radio на этапе make, а не make install, и попадают в домашний каталог того пользователя, который собирал. Проверьте, куда именно:

gnuradio-config-info --persistentdir
ls $(gnuradio-config-info --persistentdir)/satnogs_*.block.yml

Если собирали через sudo, блоки ушли в /root.

Запуск

Error starting flowgraph: [Errno 2] No such file or directory

Скрипт флоуграфа не найден в PATH. Либо не выполнен make install, либо режим ссылается на скрипт, которого нет:

ls $(dirname $(which flowgraph_dispatcher))/satnogs_*.py

Сверьте имя со столбцом «Скрипт флоуграфа» в Справочник режимов.

Address already in use

Порт 16887, 16888 или 16889 занят (или тройка от вашего --zmq-base-port). Обычно это не завершившийся предыдущий запуск — диспетчер добивает детей SIGKILL через TERMINATION_GRACE_SEC, то есть 2 секунды на фазу и 4 секунды в худшем случае, но при SIGKILL самого диспетчера дети остаются:

ss -lntp | grep -E '1688[789]'
pkill -f satnogs_ ; pkill -f zmq_.*_sub

Флоуграф стартует и сразу висит

Почти всегда — недоступный rigctld. Блок доплеровской компенсации подключается к --rigctl-host:--rigctl-port и ждёт. Проверьте:

echo "f" | nc 127.0.0.1 4532

Для проверки без трансивера поднимите фиктивный: rigctld -m 1.

Не создаются выходные файлы

Подписчики открывают файлы на запись, но не создают каталоги:

mkdir -p /tmp/.satnogs/data

Приём

Есть аудио, но нет кадров

Проверьте по порядку:

  1. Режим вообще отдаёт кадры? Столбец «Кадры» в Справочник режимов. У FM, APT, SSTV, GENESIS FSK и UNKNOWN декодера нет — JSON-файлов не будет никогда.

  2. Дошёл ли --baud? Если режим не принимает бодрейт, значение молча отбрасывается, и флоуграф работает со своим значением по умолчанию (обычно 9600). Для FSK/GFSK/GMSK/MSK бодрейт обязателен.

  3. Тот ли фрейминг? Для режимов с собственным фреймингом диспетчер затирает присланное клиентом значение — переопределить его из клиента нельзя.

  4. Точна ли частота? Послушайте аудио и посмотрите водопад: если несущая уехала за полосу фильтра, демодулятор не зацепится. Помогает --ppm.

  5. Хватает ли отношения сигнал/шум? Сохраните IQ (--enable-iq-dump=1) и разберите запись офлайн — так проще отличить проблему настройки от слабого сигнала.

Кадры приходят, но в JSON только pdu

Это нормально для Geoscan и USP: декодеры gr-satellites не публикуют метаданных. Полезная нагрузка в pdu при этом корректна. Подробнее — Выходные данные.

Аудио ускорено или замедлено

Подписчик аудио жёстко пишет 48000 Гц моно. Если флоуграф отдаёт другую частоту, рассогласование ничем не проверяется и проявляется именно так. Смотрите цепочку pfb_arb_resampler в соответствующем .grc.

Наблюдение «успешно», но данных нет

Диспетчер возвращает код завершения флоуграфа, а убитый сигналом даёт 128 + N (см. Код возврата) — то есть отказ приёма отличим от пустого пролёта по коду возврата. Но клиент СОНИКС этот код не проверяет, и для него упавший флоуграф выглядит как успешное наблюдение. Смотрите вывод самого диспетчера: сообщения об ошибках GNU Radio идут туда.

Куда смотреть дальше