用oFono來GPRS上網

準備一個3G modem

首先,你需要找一個2G或3G的USB modem。這個在淘寶上花200左右就能買到。我手邊用的是Huawei E1750 WCDMA的modem。

E172

一般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:&lt; /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卡上網了!;-)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章