Aleatoriamente recebendo “NO CARRIER” do modem Huawei 3G no linux

1

Estou usando um modem huawei 3G no linux. Depois de usar o NetworkManager por algum tempo, agora eu uso o wvdial para falar com o modem e iniciar o pppd: eu adicionei uma regra do udev para que o wvdial seja iniciado automaticamente quando o dispositivo USB estiver conectado.

  1. O bom caso: eu conecto o modem, o wvdial falha algumas vezes enquanto o modem está se registrando, então é bem-sucedido.
  2. O caso ruim: o mesmo, mas o wvdial continua falhando com "NO CARRIER", para sempre.

A única coisa a fazer quando 2) acontece: desligar o dispositivo, reconectar e esperar que estejamos no bom caso desta vez ...

Tentei muitas coisas, como alternar entre gprs / umts, alternando manualmente o operador para forçá-lo a se registrar novamente ... sem sorte. Uma vez que não funciona, fica assim.

Alguns dias atrás eu até me deparei com um caso em que umts falha o tempo todo, mas os gprs conseguem razoavelmente bem. Agora, o que é interessante é que sob o windows umts funcionou imediatamente, então este é definitivamente um problema do linux.

O modem é um huawei E1762.
O NetworkManager / modem-manager sofre um pouco do mesmo problema.
Executando o ubuntu lúcido

    
por lemonsqueeze 03.01.2013 / 13:35

1 resposta

3

Ok, eu 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 2 segundos 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
    
por 03.01.2013 / 13:50