v2.4.46
Разбор живого случая: Telit FN990A28 на Huasifei WH3000 Pro не поднимал соединение, а в логе бесконечно крутилось «SIM in illegal state». Копали в модем — а половина беды оказалась в самой программе.
Диагностический отчёт больше не рвёт соединение
Самое неприятное из найденного: сбор отчёта о неполадках сам ронял дозвон. Раздел «QMI-дополнения» запускал служебного посредника (qmi-proxy), тот оставался жить после отчёта, а сторож соединения через минуту видел его как чужой процесс на канале, убивал — и вместе с ним обрывал дозвон.
Выглядело это так: человек снимает отчёт, чтобы разобраться, почему нет интернета, — и ровно через минуту интернет пропадает ещё раз. В логе это и было видно посекундно.
Канал в этот момент и так свободен, посредник там не нужен вовсе. Теперь читаем напрямую.
Сторож не будит модем с неисправной картой
Когда SIM уходит в отказ (состояние illegal), штатный дозвон OpenWrt зацикливается: раз в 8 секунд передёргивает питание карты и никогда не заканчивает. Снять это может только перезагрузка модуля — этим занимается наша лестница восстановления.
Но одна из веток сторожа поднимала интерфейс, не спрашивая о состоянии карты. Каждые две минуты она запускала петлю заново и обнуляла ошибку, за которую держится лестница. В итоге лестница не накапливала ни одной попытки и до перезагрузки модуля не доходила никогда — модем лежал часами.
Проверка состояния карты была у соседней ветки сторожа; теперь она общая, и обе ветки ходят через неё. Лишнего посредника по-прежнему убираем сразу — он мешает и дозвону, и восстановлению, — а вот интерфейс поднимаем только при живой карте.
Отчёт больше не врёт про формат кадров
Строка «РАССИНХРОН: приём отбрасывается молча» появлялась у каждого модема, который не подключился, и уводила разбор в сторону. На деле формат кадров выставляется в момент дозвона: пока дозвон не прошёл, сверять нечего. Теперь вердикт печатается только при поднятом интерфейсе, а иначе отчёт прямо говорит, почему проверка неприменима.
Настоящая улика — «ушло много, пришло ноль» — осталась и теперь сразу подсказывает вероятную причину.
Мелочи
- Раздел «QMI-дополнения» заработал на MBIM-модемах: раньше он там просто молчал.