Temat: Modem LTE: sprawdzanie statusu przed nawiązaniem połaczenia
Nie wiem, czy u Was też się to zdarza, ale u mnie po blackoutach praktycznie regułą jest, że router po wystartowaniu nie nawiązuje połączenia LTE (komenda w /etc/rc.local), tzn. myślę, że dotyczy to ogólnie 2/3/4G (modem e3276, router tp-link 3420v2). Wynika to z tego, że modem nie zdąży zarejestrować się w sieci jeszcze, a nawet jeszcze się nie przełączy (brak dev/ttyUSB0 wg logread). Problem nie występuje przy boocie samego routera, jako że modem jest połączony przez aktywny hub usb, a więc mając zasilanie (chyba?) nie gubi rejestracji, w każdym razie ten problem się nie objawia.
Aby temu zaradzić, dodałem następujący kod w /etc/rc.local, przed nawiązaniem połączenia:
# wait for modem registration
REG_STAT=0
while [ ${REG_STAT}x != 1x -a ${REG_STAT}x != 9x ]
do
REG_STAT=$(gcom -d /dev/ttyUSB0 -s /etc/gcom/checkregistration.gcom | grep '+CREG' | cut -f2 -d " " | cut -f2 -d,)
sleep 3
donecheckregistration.gcom to prosty skrypcik comgt robiący AT+CREG.
Drugie pole zwracane przez CREG to stan rejestracji. Zgodnie z 3GPP TS 27.007 interesują nas
1 registered, home network
9 registered for "CSFB not preferred", home network
(nie wiem, czy ten drugi status faktycznie może się pojawić, ale CS fallback chyba jest przez opów wspierany).
Ew. może jeszcze registered in roaming (5, ew. 10).
U mnie działa, może się komuś przyda.
A może o czymś podczas konfiguracji zapomniałem i dlatego nie działało?
Bubu