Обновление пакета больше не перезапускает сеть
Хотфикс после живой аварии: обновление по ZeroTier уронило удалённый роутер. register_proto.sh перезапускал netifd — со всеми интерфейсами разом — в двух случаях, которые того не стоили. Аплинк после рестарта вернулся, но пробитый NAT-путь ZeroTier — нет, а реле в той сети режет ТСПУ: узел висел «онлайн», а SSH и веб-морда были недостижимы. Причём Fibocom-модема на роутере не было никогда: при месяцах аптайма netifd стартует раньше первой установки пакета, и ветка «прото не зарегистрирован» стреляла на любом обновлении с ≤2.3.2.
Что изменилось:
- Смена содержимого обработчика больше не повод для рестарта вовсе. Проверено живьём: netifd исполняет прото-скрипт с диска при каждом дозвоне — маркер, добавленный в
fibocom.shбез рестарта, сработал на обычномifup. Новая дозвонная логика подхватывается на ближайшем передозвоне, метаданные регистрации дожидаются штатной перезагрузки. Прежнее убеждение «правка обработчика требует рестарта netifd» оказалось ошибкой наблюдения: та правка сидела в ветке холодного дозвона, и рестарт не «перечитывал код», а форсировал холодный дозвон. - Голая регистрация (fibocom-интерфейса в конфиге нет) сеть не трогает — пишет в журнал и ждёт. Рестарт остался ровно в двух случаях: существует настроенный fibocom-интерфейс при незарегистрированном прото (он и так мёртв), либо явный форс от
mkifaceв момент создания fibocom-интерфейса — человек настраивает модем и ждёт именно этого. - Проверено насквозь: полная переустановка пакета нашей же кнопкой на стенде — конфиги firewall/network/dhcp идентичны до байта, интерфейсы не дёргались, dropbear и uhttpd дожили со старыми PID.
Thales MV31-W (1e2d:00b7)
- Имя модема больше не собирает обрывки AT-команд («Thales AT MV31-W AT +CREG: 0 +CEREG: 0»): у модуля эхо включено с завода, а подписки
+CREG=2/+CEREG=2рождают URC, прилетающие посреди чужого чтения. Разбор идентификации берёт первую осмысленную строку ответа (эхо, URC и OK/ERROR отфильтровываются), IMEI/IMSI выбираются по длине цифровой цепочки. Ярлык вкладки чинится сам, как только чистая модель попадает в секцию. - AcT=13 — это заявка EN-DC, а не работающий 5G. Билайн раздаёт её на голом LTE: карточка показывала «5G» на единственной несущей B3, а после принудительного «только 4G» ярлык так и говорил «5G» — выглядело как «режим не применяется». Теперь ярлык следует за фактической NR-несущей в
at^debug?, иначе честные LTE-A/LTE. Третье семейство модемов с этой ловушкой — после FM350 и EM9190.