Я использую модем Huawei 3G под Linux. После использования NetworkManager в течение некоторого времени, я теперь использую wvdial для связи с модемом и запуска pppd: я добавил правило udev, поэтому wvdial запускается автоматически при подключении usb-устройства.
- Хороший случай: я подключаю модем, wvdial несколько раз дает сбой, пока модем регистрируется, а затем снова работает.
- Плохой случай: то же самое, но 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