Случайно получаю сообщение «NO CARRIER» от модема Huawei 3G под Linux

Случайно получаю сообщение «NO CARRIER» от модема Huawei 3G под Linux

Я использую модем Huawei 3G под Linux. После использования NetworkManager в течение некоторого времени, я теперь использую wvdial для связи с модемом и запуска pppd: я добавил правило udev, поэтому wvdial запускается автоматически при подключении usb-устройства.

  1. Хороший случай: я подключаю модем, wvdial несколько раз дает сбой, пока модем регистрируется, а затем снова работает.
  2. Плохой случай: то же самое, но wvdial постоянно выдает ошибку «НЕТ НЕСУЩЕЙ СВЯЗИ», и так вечно.

Единственное, что остается сделать, когда происходит 2): отключить устройство, подключить снова и надеяться, что на этот раз нам повезет...

Пробовал много вещей, вроде переключения между gprs/umts, ручного переключения оператора, чтобы заставить его перерегистрироваться... безуспешно. Если не работает, то так и остается.

Несколько дней назад я даже столкнулся со случаем, когда umts постоянно отказывал, а gprs работал достаточно хорошо. Интересно, что под windows umts сразу заработал, так что это определенно проблема linux.

Модем - huawei E1762.
NetworkManager / modem-manager несколько страдает от той же проблемы.
Запуск ubuntu lucid

решение1

Хорошо, я думаю, что модем сбивается с толку, когда wvdial начинает с ним общаться до того, как он завершит регистрацию.

-> Добавлена ​​задержка в 2 секунды после подключения устройства, и скрипт ждет, пока устройство не будет зарегистрировано, прежде чем запускать wvdial. Тогда это всегда работает!!

#!/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

Скрипт оператора:

#!/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

Связанный контент