在無有線網路環境下,透過 GPRS/EDGE Modem 透過串口撥號上網是 Linux 系統常見需求。本文以 Siemens MC35 模組為例,詳細記錄從硬體連接、AT 指令測試、wvdial 配置到 PPP 連線建立的完整流程。
/dev/ttyS0)。minicom (建議在圖形介面終端機中執行):| 指令 | 預期回應 | 說明 |
|---|---|---|
AT | OK | 基本通訊測試 |
AT+CSQ? | +CSQ: 22,99 | 訊號品質,前值 12~31 為正常 |
AT+CGDCONT=1,"IP","cmnet" | OK | 設定 APN (中國移動 cmnet,依業者調整) |
ATDT*99***1# | CONNECT | 撥號指令,成功後會進入資料模式 |
測試通過後退出 minicom (Ctrl+A 然後 Q)。
sudo wvdialconf /etc/wvdial.conf
程式會掃描序列埠,成功時輸出類似:
Found a modem on /dev/ttyS0.
Modem configuration written to /etc/wvdial.conf.
ttyS0: Speed 57600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
若失敗請重試數次,確認序列埠權限 (sudo usermod -a -G dialout $USER)。
[Dialer Defaults]
Modem = /dev/ttyS0
Baud = 57600
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem
Phone = *99***1#
Username =
Password =
說明: 移除 wvdialconf 生成的多餘 Init 指令,保留核心初始化字串。APN 已在 minicom 階段寫入模組非揮發性記憶體,此處無需重複。
編輯 /etc/ppp/chap-secrets 與 /etc/ppp/pap-secrets,內容同為:
"" * ""
格式:用戶名 伺服器 密碼 IP,星號表不限制伺服器,空字串表無帳密驗證 (視 ISP 而定)。
sudo wvdial
成功輸出關鍵階段:
--> Sending: ATDT*99***1#
--> Waiting for carrier.
CONNECT
--> Carrier detected. Starting pppd at ...
--> pid of pppd: 19535
另開終端驗證介面:
ifconfig ppp0
# 應顯示 inet addr 動態 IP,如 220.192.68.149
sudo route add default ppp0
測試連通性:
ping 166.111.8.238 # 清華大學 DNS,或任意公網 IP
在 wvdial 終端按 Ctrl+C,或 sudo killall wvdial。系統會優雅關閉 PPP 介面。
dialout 群組,重新登入生效。/var/log/syslog 中 pppd 與 chat 錯誤碼。掌握 minicom 測試 AT 指令與 wvdial 自動化撥號流程,即可在任何支援串口的 Linux 系統上快速建立 GPRS/3G 連線。現代系統多已整合 ModemManager + NetworkManager 圖形化管理,但理解底層原理對嵌入式/無圖形環境仍至關重要。