# Диагностика неисправностей ## Сборка ### `grcc` падает на geoscan или usp ``` Block key "satellites_fsk_demodulator" not found ``` Не установлен **gr-satellites**. Он нужен только двум флоуграфам, но `make` собирает все подряд и останавливается на первом отказе. Поставьте gr-satellites (см. [](install.md)) либо соберите остальное поштучно: ```sh 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`, и попадают в домашний каталог того пользователя, который собирал. Проверьте, куда именно: ```sh 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`, либо режим ссылается на скрипт, которого нет: ```sh ls $(dirname $(which flowgraph_dispatcher))/satnogs_*.py ``` Сверьте имя со столбцом «Скрипт флоуграфа» в [](modes.md). ### Address already in use Порт 16887, 16888 или 16889 занят (или тройка от вашего `--zmq-base-port`). Обычно это не завершившийся предыдущий запуск — диспетчер добивает детей `SIGKILL` через `TERMINATION_GRACE_SEC`, то есть 2 секунды на фазу и 4 секунды в худшем случае, но при `SIGKILL` самого диспетчера дети остаются: ```sh ss -lntp | grep -E '1688[789]' pkill -f satnogs_ ; pkill -f zmq_.*_sub ``` ### Флоуграф стартует и сразу висит Почти всегда — недоступный `rigctld`. Блок доплеровской компенсации подключается к `--rigctl-host:--rigctl-port` и ждёт. Проверьте: ```sh echo "f" | nc 127.0.0.1 4532 ``` Для проверки без трансивера поднимите фиктивный: `rigctld -m 1`. ### Не создаются выходные файлы Подписчики открывают файлы на запись, но не создают каталоги: ```sh mkdir -p /tmp/.satnogs/data ``` ## Приём ### Есть аудио, но нет кадров Проверьте по порядку: 1. **Режим вообще отдаёт кадры?** Столбец «Кадры» в [](modes.md). У `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` при этом корректна. Подробнее — [](outputs.md). ### Аудио ускорено или замедлено Подписчик аудио жёстко пишет 48000 Гц моно. Если флоуграф отдаёт другую частоту, рассогласование ничем не проверяется и проявляется именно так. Смотрите цепочку `pfb_arb_resampler` в соответствующем `.grc`. ### Наблюдение «успешно», но данных нет Диспетчер возвращает код завершения флоуграфа, а убитый сигналом даёт `128 + N` (см. [](dispatcher.md#код-возврата)) — то есть отказ приёма отличим от пустого пролёта по коду возврата. Но клиент СОНИКС этот код не проверяет, и для него упавший флоуграф выглядит как успешное наблюдение. Смотрите вывод самого диспетчера: сообщения об ошибках GNU Radio идут туда. ## Куда смотреть дальше - Что именно делает конкретный флоуграф: [](flowgraphs/index.md) - Известные расхождения и баги: [](dev/known-issues.md)