ОТЧЁТ ПО РАБОТЕ МОДЕМА WBC-4G (A7602E-H) В КОНТРОЛЛЕРЕ WIREN BOARD 8 Файл подготовлен для службы поддержки Wiren Board. Все персональные данные обезличены. ================================================================================ Оборудование и ПО ----------------- Контроллер: Wiren Board 8, релиз wb-2606 (Debian bullseye, arm64). Модем: модуль WBC-4G (двухсимочный), модель A7602E-H, прошивка A50C4B08A7600M7. Программный стек: ModemManager 1.20.0-wb108, NetworkManager 1.42.4-1~bpo11+1-wb104 (после обновления), wb-connection-manager + wb-nm-helper 1.37.1, wb-gsm (пакет wb-utils). Характер объекта: действующий загородный объект с инженерной автоматикой, аварийные уведомления — по SMS. 1. ВЫЯВЛЕННЫЕ ПРОБЛЕМЫ И К ЧЕМУ ОНИ ПРИВОДИЛИ --------------------------------------------- 1.1. Модем самопроизвольно уходит с USB-шины. В журнале ядра: «usb 1-1: USB disconnect» — без ошибок сброса порта, без перегрузки по питанию, без ошибок дескриптора. События зафиксированы 06.09, 19.09 и 22.09.2026. Признаки деградации до этого: таймауты AT («Serial command timed out»), у ModemManager — «could not re-acquire serial port lock: Input/output error». К чему приводило: модем пропадает из системы, связь и SMS недоступны. 1.2. После каждого передёрга питания модем не видит SIM-карту, если она установлена во второй слот. Сервис wb-gsm при каждом включении модема принудительно выбирает первый слот (/usr/lib/wb-utils/wb-gsm-common.sh, функция mm_on: gpio_set_value $simselect 0 — «sim1»). Аппаратный выбор слота сделан GPIO (в дереве устройств — simselect-gpios). Если карта стоит во втором слоте, после включения модем «смотрит» в пустой первый слот: состояние failed / sim-missing, в mmcli — «slot 1: none (active), slot 2: none». К чему приводило: модем полностью неработоспособен, в одном из случаев — более 8 суток подряд; аварийные SMS за это время не отправлялись. 1.3. Автоматического восстановления из состояния failed / sim-missing нет. Штатное переключение слота выполняет wb-connection-manager, но только на шаге активации GSM-соединения (wb/nm_helper/connection_manager.py, apply_sim_slot / _activate_gsm_connection). В состоянии failed модем для NetworkManager недоступен, активация не проходит — и переключение слота не выполняется. Скрипт wb-gsm-mm (пакет wb-utils) передёргивает питание только если mmcli вообще не находит модем, либо если модем registered+attached без поддерживаемых IP-семейств. При failed — действий нет. Фактически: модем лежит до ручной перезагрузки контроллера или ручного вмешательства. 1.4. Конфигурация приоритетов соединений вводила систему в заблуждение. В /etc/wb-connection-manager.conf было: high — неиспользуемый Ethernet-порт (без линка), low — GSM-соединение, а рабочий проводной порт (канал с интернетом) не указан ни в одном уровне. Следствия (по логике wb-connection-manager): — при поднятии модем становился «текущим» соединением и получал metric 55 против 100 у проводного, то есть весь трафик, включая обмен с облаком, уходил в нестабильный LTE; — при потере связи на модеме замена ищется только по списку уровней, а проводного канала в списке нет — возврата на исправный проводной канал не происходило. Внешне это выглядело как «контроллер завис без интернета, хотя кабель работает»; — неиспользуемый Ethernet-порт при этом круглосуточно «долбился» попытками активации раз в минуту. 1.5. Повторяющиеся ошибки в журнале wb-connection-manager не видны. Сообщения об ошибках одного соединения дублируются один раз, дальше одинаковый текст подавляется (wb/nm_helper/logging_filter.py). Из-за этого многодневная неработоспособность модема в журнале выглядит как тишина — при разборе обращения это сильно мешает. 1.6. Побочно (не про модем, но зафиксировано): при установке стороннего VPN-клиента в health-проверке появились сообщения об отсутствии в ядре расширений xt_MARK и xt_conntrack (iptables здесь nftables). На работу стека не влияет, но вводит в заблуждение при диагностике. 2. ЧТО СДЕЛАНО НА ПРОГРАММНОМ УРОВНЕ ------------------------------------ 2.1. Интернет через модем выключен полностью: nmcli connection modify connection.autoconnect no ipv4.never-default yes. Модем оставлен только для регистрации в сети и отправки SMS. Важно: соединение убрано и из приоритетов — менеджер активирует соединения из списка уровней независимо от флага autoconnect. 2.2. Приоритеты соединений приведены к рабочему виду: high — проводное соединение (канал с интернетом), medium и low — пусто. После этого менеджер зафиксировал «Current connection changed to <проводное>», попытки активации неиспользуемого порта прекратились. 2.3. Выбор слота SIM возвращён в рабочий: mmcli -m wbc --set-primary-sim-slot=<номер рабочего слота>. Модем зарегистрировался в сети, SMS снова отправляются. 2.4. Обновлены пакеты стабильной ветки: wb-release-info (сборка от 29.09.2026), network-manager и libnm0 → 1.42.4-1~bpo11+1-wb104. Перезагрузка не потребовалась. 2.5. Установлен собственный сторож слота SIM (скрипт + systemd-таймер, проверка каждые 5 минут): — если карта видна — ничего не делает и запоминает рабочий слот; — если карта не видна — возвращает выбор слота в рабочий; — если не помогло — пробует второй слот; — если и это не помогло — передёргивает модем (systemctl restart wb-gsm); — не чаще одного вмешательства в 15 минут; после 4 безуспешных вмешательств подряд прекращает вмешательство и пишет в журнал (защита от бесконечных перезапусков). Логика проверена на стенде (имитация состояний), на работающем модеме экспериментов не было. 3. ЧТО БУДЕТ СДЕЛАНО НА ФИЗИЧЕСКОМ УРОВНЕ (В ПОЛЕ) -------------------------------------------------- 3.1. SIM-карта будет переставлена в первый слот и проверено, читается ли она там. Если да — выбор слота «по умолчанию» совпадёт с расположением карты, и после передёргов питания восстановление не потребуется вовсе. 3.2. При отрицательном результате карта возвращается во второй слот, работу продолжает сторож (п. 2.5). 3.3. Проверка посадки карты в обоих держателях и ВЧ-тракта (антенна, кабель), замер уровня сигнала. 3.4. Наблюдение за журналом сторожа в течение 1–2 недель для оценки частоты отвалов модема. 4. РЕЗУЛЬТАТ НА ТЕКУЩИЙ МОМЕНТ ------------------------------ 4.1. Модем зарегистрирован в сети (уровень сигнала ~50 %), отправка SMS проверена тестовым сообщением — доставлено. 4.2. Интернет объекта работает только по проводному каналу; модем соединение не поднимает и маршрут по умолчанию не перехватывает (в том числе при ручном поднятии соединения). 4.3. Состояние «модем не видит карту» больше не приводит к многодневному отказу SMS: сторож возвращает рабочий слот автоматически. 4.4. Неработоспособность модема перестала быть незаметной: действия сторожа и результат видны в журнале (journalctl -t wb-sim-watchdog). 5. ВОПРОСЫ К ПРОИЗВОДИТЕЛЮ (просьба прокомментировать) ------------------------------------------------------ 5.1. Самопроизвольный уход модема A7602E-H (прошивка A50C4B08A7600M7) с USB-шины без ошибок ядра — известное ли это поведение? Есть ли рекомендации (прошивка модема, параметры питания/сброса)? 5.2. Корректно ли, что wb-gsm при каждом включении модема принудительно выбирает первый слот SIM (mm_on: simselect = 0)? При использовании второго слота это означает, что после любого передёрга питания карта становится невидимой до внешнего вмешательства. 5.3. Планируется ли в штатном ПО восстановление модема из состояния failed / sim-missing (сейчас ни wb-gsm, ни wb-connection-manager этого не делают)? 5.4. Можно ли считать ошибкой, что wb-connection-manager при «текущем» соединении с потерянной связью не возвращается на другие соединения, если их нет в списке приоритетов, и не сообщает об этом в журнал (дедупликация одинаковых сообщений)? ================================================================================