Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1988432
  • 博文数量: 27
  • 博客积分: 10027
  • 博客等级: 上将
  • 技术积分: 1865
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-19 09:10
文章分类

全部博文(27)

文章存档

2010年(2)

2009年(3)

2008年(22)

分类: LINUX

2008-03-25 15:26:04

    前一阶段探讨了根文件系统,有了些认识和体会。现在可以把利用GPRS模块拨号上网的功能添加进来了。首先要在Linux上调试通过pppd。主要就是三个脚本:ppp-on,ppp-off, ppp-on-dialer。需要注意的问题有:
 
    ·首先要把eth0关闭。否则即使获取ip成功,也无法发送数据。
    ·在Linux下,必须采用pap,且设定好用户名。这个用户名是一个假定的用户名了,不用密码。在Windows下则不需要用户名。
 

[root@listentec ~]#cat /etc/ppp/pap-secrets
foo * "" *

 
    host上测试通过,下面就可以交叉编译pppd,移植到arm板上了。
 
    pppd的编译还是有些奇怪的问题。我在CentOS上编译pppd-2.4.3,总是出现问题,主要就是牵扯到libpcap库。记得以前编译成功过,并没有采用该库。那时是在RH9上,所以到RH9上,编译就没有问题了。用arm-linux-readelf查看,也不需要libpcap库的支持。
 

    OS: RedHat 9.0
    CROSS Compiler: cross-3.3.2或者cross-3.4.1
    pppd: pppd-2.4.3

 
    过程:
 
    (1)./configure
    (2)make CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc
 
    交叉编译完成后,strip一下。得到的pppd约231K,chat约19K。下载到target board上面,测试通过。这里有一个问题就是,不需要在/etc/resolv.conf中添加DNS服务器,默认会在你建立的/etc/ppp/文件夹下自动建立一个resolv.conf。
 

[root@listentec ~]#tree /etc/ppp
/etc/ppp
|-- pap-secrets
|-- ppp-off
|-- ppp-on
|-- ppp-on-dialer
`-- resolv.conf

0 directories, 5 files

 
    利用echo测试程序,发现利用gprs发送数据没有问题。但是ping域名还是不通。另外有一个问题就是,ping测试时,time delay因为网络不同差异也比较大,有些时候可能会到18s左右。无线网络质量对数据发送的影响会非常大。
 

[root@listentec ~]#ifconfig eth0 down
[root@listentec ~]#/etc/ppp/ppp-on &
[root@listentec ~]#Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/ttyS2
Warning - secret file /etc/ppp/pap-secrets has world and/or group access
sent [LCP ConfReq id=0x1 <asyncmap 0x20a0000> <magic 0xc328b095> <pcomp> <accomp>]
rcvd [LCP ConfRej id=0x1 <pcomp> <accomp>]
sent [LCP ConfReq id=0x2 <asyncmap 0x20a0000> <magic 0xc328b095>]
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth pap> <magic 0xb7a54d00>]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth pap> <magic 0xb7a54d00>]
rcvd [LCP ConfAck id=0x2 <asyncmap 0x20a0000> <magic 0xc328b095>]
Warning - secret file /etc/ppp/pap-secrets has world and/or group access
sent [PAP AuthReq id=0x1 user="foo" password=<hidden>]
rcvd [PAP AuthAck id=0x1 "Welcome!"]
Remote message:
PAP authentication succeeded
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 10.79.158.165>]
sent [IPCP ConfAck id=0x1 <addr 10.79.158.165>]
rcvd [LCP ProtRej id=0x1 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]
rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfNak id=0x2 <addr 10.79.78.138> <ms-dns1 211.136.20.203> <ms-dns3 202.96.69.38>]
sent [IPCP ConfReq id=0x3 <addr 10.79.78.138> <ms-dns1 211.136.20.203> <ms-dns3 202.96.69.38>]
rcvd [IPCP ConfAck id=0x3 <addr 10.79.78.138> <ms-dns1 211.136.20.203> <ms-dns3 202.96.69.38>]
local IP address 10.79.78.138
remote IP address 10.79.158.165
primary DNS address 211.136.20.203
secondary DNS address 202.96.69.38

[root@listentec ~]#ifconfig
lo Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:89 errors:0 dropped:0 overruns:0 frame:0
          TX packets:89 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4809 (4.6 KiB) TX bytes:4809 (4.6 KiB)

ppp0 Link encap:Point-to-Point Protocol
          inet addr:10.79.78.138 P-t-P:10.79.158.165 Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:64 (64.0 B) TX bytes:97 (97.0 B)

 
    显示信息如上所示。
阅读(4276) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

wuhua09042009-09-29 10:53:45

wuhua0904@126.com

wuhua09042009-09-29 10:53:19

能不能,给我发一份已经编好的pppd和chat 还有那几个配置脚本,我编出来的不是很稳定,经常会失败