我在 Linux 下使用华为 3G 调制解调器。使用 NetworkManager 一段时间后,我现在使用 wvdial 与调制解调器通信并启动 pppd:我添加了一条 udev 规则,这样当插入 USB 设备时,wvdial 就会自动启动。
- 好的情况:我插入调制解调器,调制解调器注册时 wvdial 失败了几次,然后成功了。
- 糟糕的情况:同样,但是 wvdial 一直失败并显示“无运营商”,永远如此。
当发生 2) 的情况时唯一要做的事情是:拔下设备插头,重新插入,并希望这次能成功...
尝试了很多方法,比如在 gprs/umts 之间切换,手动切换运营商以强制重新注册……但都没有成功。一旦失败,它就会一直保持这种状态。
几天前我甚至遇到了一个案例,umts 总是失败,但 gprs 却相当成功。现在有趣的是,在 windows 下 umts 马上就工作了,所以这肯定是 linux 的问题。
调制解调器是华为 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