樹莓派3g模塊
樹莓派對大部分模塊都有自動的驅動支持基本上都可以做到即插即用,網上有很多方法可以實現3g模塊上網,比如使用可以自動撥號並且斷線重連的軟件pppd、umtskeeper與sakis3g。在這裏我們將用到以下幾個軟件
1.在linux上,3G網卡上電會被檢測爲storge設備,而要用它撥號上網,就需要把網卡從storge設備轉爲modem設備,怎麼轉化呢?linux下有個軟件叫usb_modeswitch,這是需要安裝的第1個軟件。
2.爲了簡化pppd的撥號流程(傳統方式要編寫好幾個腳本,調用幾次pppd的命令),需要一個wvdial的軟件,它將pppd的撥號流程簡化爲一個配置腳本,寫好腳本,運行wvdial,它會先完成和modem的AT命令交互,待交互完成後,再調用pppd,完成撥號上網。這是需要安裝的第2個軟件(裏面自行安裝好了pppd)。所以我們不需要再次安裝pppd。
接下來進入操作過程:
插入3g模塊,這裏我是使用的華爲3g e620的模塊
查看3g模塊信息
pi@nameserver114:~$ lsusb
Bus 001 Device 004: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. LAN9500 Ethernet 10/100 Adapter / SMSC9512/9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
安裝必要軟件sudo apt-get install usb-modeswitch usb-modeswitch-data
sudo apt-get install wvdial
基本準備工作已經完成,接下來usb-modeswitch默認配置文件
在配置文件之前我們需要查找本華爲模塊版本的轉換信息
以下目錄中有一個壓縮包,並解壓它
configPack.tar.gz
tar -xzvf /usr/share/usb_modeswitch/configPack.tar.gz
pi@nameserver114:~$ cd /usr/share/usb_modeswitch/
pi@nameserver114:/usr/share/usb_modeswitch$ ls
03f0:002a 0af0:d057 198a:0003
0408:f000 0af0:d058 198f:bccd
0421:060c 0af0:d155 19d2:0003
0421:0610 0af0:d157 19d2:0013
0421:061d 0af0:d255 19d2:0026
0421:0622 0af0:d257 19d2:0031
0421:0627 0af0:d357 19d2:0040
0421:062c 0b3c:c700 19d2:0053
0421:0632 0b3c:f000 19d2:0083
0421:0637 0cf3:20ff 19d2:0083:uPr=WCDMA
0471:1210:uMa=Philips 0d46:45a1 19d2:0101
0471:1210:uMa=Wisue 0d46:45a5 19d2:0103
0471:1237 0df7:0800 19d2:0110
0482:024d 0e8d:0002:uPr=MT 19d2:0115
04bb:bccd 0e8d:7109 19d2:0120
04e8:680c 0fce:d0cf 19d2:0146
04e8:689a 0fce:d0e1 19d2:0149
04e8:f000:sMo=U209 0fce:d103 19d2:0154
057c:84ff 0fd1:1000 19d2:0166
05c6:1000:sVe=GT 1004:1000 19d2:0169
05c6:1000:sVe=Option 1004:607f 19d2:0325
05c6:1000:uMa=AnyDATA 1004:613a 19d2:1001
05c6:1000:uMa=CELOT 1004:613f 19d2:1007
05c6:1000:uMa=DGT 1004:614e 19d2:1009
05c6:1000:uMa=Option 1004:6156 19d2:1013
05c6:1000:uMa=SAMSUNG 1004:6190 19d2:1017
05c6:1000:uMa=SSE 1004:61aa 19d2:1171
05c6:1000:uMa=StrongRising 1004:61dd 19d2:1175
05c6:1000:uMa=Vertex 1004:61e7 19d2:1179
05c6:2000 1004:61eb 19d2:1201
05c6:2001 1004:6327 19d2:1216
05c6:6503 1033:0035 19d2:1224
05c6:f000 106c:3b03 19d2:1514
05c7:1000 106c:3b05 19d2:1517
072f:100d 106c:3b06 19d2:1520
07d1:a800 106c:3b14 19d2:1523
07d1:a804 1076:7f40 19d2:1542
0922:1001 109b:f009 19d2:2000
0930:0d46 1199:0fff 19d2:bccd
0ace:2011 1266:1000 19d2:ffde
0ace:20ff 12d1:1001 19d2:ffe6
0af0:4007 12d1:1003 19d2:fff5
0af0:6711 12d1:1009 19d2:fff6
0af0:6731 12d1:101e 1a8d:1000
0af0:6751 12d1:1030 1a8d:2000
0af0:6771 12d1:1031 1ab7:5700
0af0:6791 12d1:1414 1b7d:0700
0af0:6811 12d1:1446 1bbb:000f
0af0:6911 12d1:1449 1bbb:00ca
0af0:6951 12d1:14ad 1bbb:f000
0af0:6971 12d1:14b5 1bbb:f017
0af0:7011 12d1:14b7 1bbb:f052
0af0:7031 12d1:14ba 1c9e:1001
0af0:7051 12d1:14c1 1c9e:6061
0af0:7071 12d1:14c3 1c9e:9200
0af0:7111 12d1:14c4 1c9e:9800
0af0:7211 12d1:14c5 1c9e:98ff
0af0:7251 12d1:14d1 1c9e:9e00
0af0:7271 12d1:14fe 1c9e:f000
0af0:7301 12d1:1505 1da5:f000
0af0:7311 12d1:151a 1dd6:1000
0af0:7361 12d1:1520 1de1:1101
0af0:7381 12d1:1521 1e0e:f000
0af0:7401 12d1:1523 1e89:f000
0af0:7501 12d1:1526 1edf:6003
0af0:7601 12d1:1553 1ee8:0009
0af0:7701 12d1:1557 1ee8:0013
0af0:7706 12d1:155b 1ee8:0040
0af0:7801 12d1:1c0b 1ee8:004a
0af0:7901 12d1:1c24 1ee8:0054
0af0:7a01 12d1:1d50 1ee8:0060
0af0:7a05 12d1:1da1 1f28:0021
0af0:8006 12d1:1f01 1fac:0032
0af0:8200 12d1:1f11 1fac:0130
0af0:8201 12d1:380b 1fac:0150
0af0:8300 1307:1169 1fac:0151
0af0:8302 1410:5010 2001:a80b
0af0:8304 1410:5020 201e:1023
0af0:8400 1410:5030 201e:2009
0af0:8600 1410:5031 2020:f00e
0af0:8700 1410:5041 2077:f000
0af0:8800 1410:5059 21f5:1000
0af0:8900 1410:7001 22de:6803
0af0:9000 148e:a000 22f4:0021
0af0:c031 148f:2578 230d:0001
0af0:c100 15eb:7153 230d:0007
0af0:d001 16d8:6281 230d:0101
0af0:d013 16d8:6803 2357:0200
0af0:d031 16d8:6804 8888:6500
0af0:d033 16d8:700a configPack.tar.gz
0af0:d035 16d8:700b
0af0:d055 16d8:f000
找到12d1\:1001文件並打開它,以下就是它的轉換信息,我們可以直接複製粘貼到usb-modeswitch配置文件
sudo nano 12d1:1001
sudo nano /etc/usb-modeswtich.conf
# Huawei E169
TargetClass=0xff
HuaweiMode=1
將以上的信息複製到usb-modeswitch中
sudo nano /etc/usb-modeswitch.conf
然後我們輸入轉換命令,指定配置文件並創建tty設備,具體用法看help
usb_modeswitch -W -c /etc/usb_modeswitch.conf -I
轉換成功之後,我們會在/dev看見多了幾個tty,接下來我們看那個tty能用
pi@nameserver114:/dev$ sudo wvdialconf
Editing `/etc/wvdial.conf'.
Scanning your serial ports for a modem.
ttyUSB0<*1>: ATQ0 V1 E1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB0<*1>: Modem Identifier: ATI -- Manufacturer: huawei
ttyUSB0<*1>: Speed 9600: AT -- OK
ttyUSB0<*1>: Max speed is 9600; that should be safe.
ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 9600 baud
ttyUSB1<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
ttyUSB2<*1>: ATQ0 V1 E1 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 Z -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyUSB2<*1>: Modem Identifier: ATI -- Manufacturer: huawei
ttyUSB2<*1>: Speed 9600: AT -- OK
ttyUSB2<*1>: Max speed is 9600; that should be safe.
ttyUSB2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
Found a modem on /dev/ttyUSB0.
Modem configuration written to /etc/wvdial.conf.
ttyUSB0<Info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
ttyUSB2<Info>: Speed 9600; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
由圖可見,ttyUSB0可用,這個時候我們再進入wvdial配置文件,檢查是否選定ttyUSB0,並更改配置文件
sudo nano /etc/wvdial.conf
[Dialer Defaults]
Auto DNS = on
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","3GNET"
Modem Type = Analog Modem
ISDN = 0
New PPPD = yes
Phone = *99#
Modem = /dev/ttyUSB0
Username = any
Password = any
Baud = 9600
這裏我用的是移動卡,將phone、usrname、password設置爲移動3g相關的信息。另外的幾種情況,以下圖爲鑑
運營商(ISP) |
APN |
撥號號碼 |
帳號 |
密碼 |
中國聯通WCDMA (China Unicom) |
3GNET |
*99# |
空 |
空 |
中國電信CDMA2000 (China Telecom) EVDO網絡 |
空 |
#777 |
vnet.mobi |
|
1X網絡 |
空 |
#777 |
card (CARD) |
card(CARD) |
中國移動 TD-SCDMA (China Mobile) |
CMNET |
*98*1# |
空 |
空 |
中國移動 GPRS (China Mobile) |
CMNET |
*99***1# |
空 |
空 |
pi@nameserver114:/$ sudo wvdial
--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","3GNET"
AT+CGDCONT=1,"IP","3GNET"
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
開始撥號,如果不出意外,將會撥號成功。
嘗試ping baidu,檢查是否已經聯網成功。