![Obtendo aleatoriamente "NO CARRIER" do modem 3G da Huawei no Linux](https://rvso.com/image/1345281/Obtendo%20aleatoriamente%20%22NO%20CARRIER%22%20do%20modem%203G%20da%20Huawei%20no%20Linux.png)
Estou usando um modem Huawei 3G no Linux. Depois de usar o NetworkManager por algum tempo, agora uso o wvdial para falar com o modem e iniciar o pppd: adicionei uma regra do udev para que o wvdial seja iniciado automaticamente quando o dispositivo USB for conectado.
- O bom caso: eu conecto o modem, o wvdial falha algumas vezes enquanto o modem está sendo registrado e depois consegue.
- O caso ruim: o mesmo, mas o wvdial continua falhando com "NO CARRIER", para sempre.
Única coisa a fazer quando 2) acontece: desconectar o dispositivo, reconectar e torcer para que desta vez tenhamos um bom caso ...
Tentei muitas coisas, como alternar entre gprs/umts, alternar manualmente a operadora para forçá-lo a registrar novamente ... sem sorte. Uma vez que não funciona, permanece assim.
Alguns dias atrás, me deparei com um caso em que o umts falhava o tempo todo, mas o gprs funcionava razoavelmente bem. Agora, o que é interessante é que no Windows umts funcionou imediatamente, então este é definitivamente um problema do Linux.
O modem é um Huawei E1762.
NetworkManager/modem-manager sofre um pouco do mesmo problema.
Executando o Ubuntu lúcido
Responder1
Ok, acho que o que está acontecendo é que o modem fica confuso quando o wvdial começa a falar com ele antes de terminar o registro.
-> Adicionado um atraso de 2s após conectar o dispositivo, e fazer com que o script espere até que o dispositivo seja registrado antes de executar o wvdial. Então sempre funciona!!
#!/bin/bash
while [ -e /dev/ttyUSB0 ] ; do
# wait to be registered
if ./operator | grep -q ','; then
wvdial provider >> wvdial.log 2>&1
fi
sleep 1
done
script do operador:
#!/bin/bash
# boy, is this ugly ...
chat -t 1 -e "" '\pAT' OK AT+COPS? +COPS '\pAT' OK >> /dev/ttyUSB1 < /dev/ttyUSB1 2>/tmp/foo
grep -m 1 '^+COPS' /tmp/foo