我在linux下使用華為3G調製解調器。使用 NetworkManager 一段時間後,我現在使用 wvdial 與數據機通訊並啟動 pppd:我新增了一個 udev 規則,以便在插入 USB 裝置時 wvdial 自動啟動。
- 好的情況是:我插入調變解調器,在調變解調器註冊時 wvdial 失敗幾次,然後成功。
- 糟糕的情況:相同,但 wvdial 總是因“NO CARRIER”而失敗,永遠。
當 2) 發生時唯一要做的事情是:拔掉設備,重新插上,希望這次我們能遇到好情況...
嘗試了很多方法,例如在 gprs/umts 之間切換、手動切換運營商以強制其重新註冊……沒有運氣。一旦它不起作用,它就會保持這種狀態。
幾天前,我甚至遇到了一個案例,umts 總是失敗,但 gprs 相當成功。現在有趣的是,在 Windows 下 umts 馬上就可以工作了,所以這絕對是一個 Linux 問題。
調製解調器是華為E1762。
NetworkManager / 數據機管理器在某種程度上遇到了同樣的問題。
運行 ubuntu 清晰
答案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