準備一個3G modem
首先,你需要找一個2G或3G的USB modem。這個在淘寶上花200左右就能買到。我手邊用的是Huawei E1750 WCDMA的modem。
一般modem會自帶Windows的撥號上網程序,用oFono就可以在Linux下撥號上網了。
GPRS上網
1. 啓動ofono
sudo src/ofonod –nd ‘*’
2. 把貓插入USB口,ofono會自動檢測到modem
ofonod[2667]: src/modem.c:ofono_modem_create() name: (null), type: huawei
ofonod[2667]: src/modem.c:set_modem_property() modem 0x9f82b40 property Path
ofonod[2667]: src/modem.c:set_modem_property() modem 0x9f82b40 property Registered
ofonod[2667]: plugins/udev.c:add_modem() /devices/pci0000:00/0000:00:1d.7/usb2/2-2/2-2:1.0/ttyUSB0/tty/ttyUSB0 (huawei)
ofonod[2667]: plugins/udev.c:add_huawei() modem 0x9f82b40
ofonod[2667]: src/modem.c:get_modem_property() modem 0x9f82b40 property ModemRegistered
ofonod[2667]: src/modem.c:get_modem_property() modem 0x9f82b40 property PcuiRegistered
ofonod[2667]: src/modem.c:set_modem_property() modem 0x9f82b40 property Modem
ofonod[2667]: src/modem.c:set_modem_property() modem 0x9f82b40 property ModemRegistered
ofonod[2667]: src/modem.c:get_modem_property() modem 0x9f82b40 property Path
ofonod[2667]: plugins/udev.c:add_modem() /devices/pci0000:00/0000:00:1d.7/usb2/2-2/2-2:1.1/ttyUSB1/tty/ttyUSB1 (huawei)
ofonod[2667]: plugins/udev.c:add_huawei() modem 0x9f82b40
ofonod[2667]: src/modem.c:get_modem_property() modem 0x9f82b40 property ModemRegistered
ofonod[2667]: src/modem.c:get_modem_property() modem 0x9f82b40 property PcuiRegistered
ofonod[2667]: src/modem.c:get_modem_property() modem 0x9f82b40 property Path
ofonod[2667]: plugins/udev.c:add_modem() /devices/pci0000:00/0000:00:1d.7/usb2/2-2/2-2:1.2/ttyUSB2/tty/ttyUSB2 (huawei)
ofonod[2667]: plugins/udev.c:add_huawei() modem 0x9f82b40
ofonod[2667]: src/modem.c:get_modem_property() modem 0x9f82b40 property ModemRegistered
ofonod[2667]: src/modem.c:get_modem_property() modem 0x9f82b40 property PcuiRegistered
ofonod[2667]: src/modem.c:set_modem_property() modem 0x9f82b40 property Pcui
ofonod[2667]: src/modem.c:set_modem_property() modem 0x9f82b40 property PcuiRegistered
ofonod[2667]: plugins/huawei.c:huawei_probe() 0x9f82b40
3. ofono/test/list-modems
xxx@xxx:~/ofono/test$ ./list-modems
[ /huawei0 ]
Interfaces =
Powered = 0
Features =
Online = 0
4. ./enable-modem /huawei0; ./online-modem /huawei0。從oFono的console你能看到很多log,ofono會初始化modem的各個部分。接下來,讓我們看看GPRS部分吧。
5. 你需要先建一個GPRS context, 並設置APN網關。因爲我用的是聯通的SIM卡,APN是uninet,如果是移動的話,APN用cmnet或者cmwap。
xxx@xxx:~/ofono/test$ ./create-context uninet
Setting APN of /huawei0/context1 to uninet
6. ./list-contexts
xxx@xxx:~/ofono/test$ ./list-contexts
[ /huawei0 ]
[ /huawei0/context1 ]
Username =
Protocol = ip
Name = Internet
Settings = { }
Active = 0
AccessPointName = uninet
Password =
Type = internet
7. ./activate-context. 這是oFono console會有這樣的output:
ofonod[2830]: Modem:> AT+CGDCONT=1,"IP","uninet"/r
ofonod[2830]: Modem:< /r/nOK/r/n
ofonod[2830]: Modem:> AT+CGDATA="PPP",1/r
ofonod[2830]: Modem:< /r/nCONNECT/r/n
Entering new phase: 1
Entering new phase: 2
Entering new phase: 3
Received IPCP NAK
Setting suggested dns1
Setting suggested dns2
Setting suggested nbns1
Setting suggested nbns2
Received IPCP NAK
Setting suggested ip addr
Setting suggested dns1
Setting suggested dns2
Entering new phase: 4
8. ./list-contexts會顯示已經建立了ppp0 interface。配置好路由後就可以上網了。
xxx@xxx:~/ofono/test$ ./list-contexts
[ /huawei0 ]
[ /huawei0/context1 ]
Username =
Protocol = ip
Name = Internet
Settings = { Interface=ppp0 Netmask=255.255.255.255 Method=static DomainNameServers=221.12.1.227,221.12.33.227, Address=172.18.172.196 }
Active = 1
AccessPointName = uninet
Password =
Type = internet
9. 編輯/etc/resolv.conf, 加入DNS服務器地址
nameserver 221.12.1.227
nameserver 221.12.33.227
10. 配置網絡
xxx@xxx:/home/xxx/ofono# sudo ifconfig ppp0 172.18.172.196 netmask 255.255.255.255
xxx@xxx:/home/xxx/ofono# sudo ifconfig ppp0 up
xxx@xxx:/home/xxx/ofono# sudo ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:872 errors:0 dropped:0 overruns:0 frame:0
TX packets:872 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:59538 (59.5 KB) TX bytes:59538 (59.5 KB)
ppp0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:172.18.172.196 P-t-P:172.18.172.196 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:177 (177.0 B) TX bytes:2380 (2.3 KB)
xxx@xxx:/home/xxx/ofono# ping www.google.com
PING www-g-com-chn.l.google.com (66.249.89.104) 56(84) bytes of data.
64 bytes from nrt04s01-in-f104.1e100.net (66.249.89.104): icmp_seq=1 ttl=51 time=207 ms
64 bytes from nrt04s01-in-f104.1e100.net (66.249.89.104): icmp_seq=2 ttl=51 time=186 ms
^C
--- www-g-com-chn.l.google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 186.073/196.811/207.549/10.738 ms
恭喜,你可以通過3G卡上網了!;-)