Диагностика неисправностей¶
Сборка¶
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
Приём¶
Есть аудио, но нет кадров¶
Проверьте по порядку:
Режим вообще отдаёт кадры? Столбец «Кадры» в Справочник режимов. У
FM,APT,SSTV,GENESIS FSKиUNKNOWNдекодера нет — JSON-файлов не будет никогда.Дошёл ли
--baud? Если режим не принимает бодрейт, значение молча отбрасывается, и флоуграф работает со своим значением по умолчанию (обычно 9600). ДляFSK/GFSK/GMSK/MSKбодрейт обязателен.Тот ли фрейминг? Для режимов с собственным фреймингом диспетчер затирает присланное клиентом значение — переопределить его из клиента нельзя.
Точна ли частота? Послушайте аудио и посмотрите водопад: если несущая уехала за полосу фильтра, демодулятор не зацепится. Помогает
--ppm.Хватает ли отношения сигнал/шум? Сохраните IQ (
--enable-iq-dump=1) и разберите запись офлайн — так проще отличить проблему настройки от слабого сигнала.
Кадры приходят, но в JSON только pdu¶
Это нормально для Geoscan и USP: декодеры gr-satellites не публикуют метаданных.
Полезная нагрузка в pdu при этом корректна. Подробнее — Выходные данные.
Аудио ускорено или замедлено¶
Подписчик аудио жёстко пишет 48000 Гц моно. Если флоуграф отдаёт другую частоту,
рассогласование ничем не проверяется и проявляется именно так. Смотрите цепочку
pfb_arb_resampler в соответствующем .grc.
Наблюдение «успешно», но данных нет¶
Диспетчер возвращает код завершения флоуграфа, а убитый сигналом даёт 128 + N
(см. Код возврата) — то есть отказ приёма отличим от пустого
пролёта по коду возврата. Но клиент СОНИКС этот код не проверяет, и для него
упавший флоуграф выглядит как успешное наблюдение. Смотрите вывод самого
диспетчера: сообщения об ошибках GNU Radio идут туда.
Куда смотреть дальше¶
Что именно делает конкретный флоуграф: Справочник флоуграфов
Известные расхождения и баги: Известные расхождения