Skip to content

v2.4.46

Choose a tag to compare

@fildunsky fildunsky released this 05 Sep 03:44
· 3 commits to master since this release

Разбор живого случая: Telit FN990A28 на Huasifei WH3000 Pro не поднимал соединение, а в логе бесконечно крутилось «SIM in illegal state». Копали в модем — а половина беды оказалась в самой программе.

Диагностический отчёт больше не рвёт соединение

Самое неприятное из найденного: сбор отчёта о неполадках сам ронял дозвон. Раздел «QMI-дополнения» запускал служебного посредника (qmi-proxy), тот оставался жить после отчёта, а сторож соединения через минуту видел его как чужой процесс на канале, убивал — и вместе с ним обрывал дозвон.

Выглядело это так: человек снимает отчёт, чтобы разобраться, почему нет интернета, — и ровно через минуту интернет пропадает ещё раз. В логе это и было видно посекундно.

Канал в этот момент и так свободен, посредник там не нужен вовсе. Теперь читаем напрямую.

Сторож не будит модем с неисправной картой

Когда SIM уходит в отказ (состояние illegal), штатный дозвон OpenWrt зацикливается: раз в 8 секунд передёргивает питание карты и никогда не заканчивает. Снять это может только перезагрузка модуля — этим занимается наша лестница восстановления.

Но одна из веток сторожа поднимала интерфейс, не спрашивая о состоянии карты. Каждые две минуты она запускала петлю заново и обнуляла ошибку, за которую держится лестница. В итоге лестница не накапливала ни одной попытки и до перезагрузки модуля не доходила никогда — модем лежал часами.

Проверка состояния карты была у соседней ветки сторожа; теперь она общая, и обе ветки ходят через неё. Лишнего посредника по-прежнему убираем сразу — он мешает и дозвону, и восстановлению, — а вот интерфейс поднимаем только при живой карте.

Отчёт больше не врёт про формат кадров

Строка «РАССИНХРОН: приём отбрасывается молча» появлялась у каждого модема, который не подключился, и уводила разбор в сторону. На деле формат кадров выставляется в момент дозвона: пока дозвон не прошёл, сверять нечего. Теперь вердикт печатается только при поднятом интерфейсе, а иначе отчёт прямо говорит, почему проверка неприменима.

Настоящая улика — «ушло много, пришло ноль» — осталась и теперь сразу подсказывает вероятную причину.

Мелочи

  • Раздел «QMI-дополнения» заработал на MBIM-модемах: раньше он там просто молчал.