------------------------------------------------------------------------------------------------------------------------------

交叉编译器:arm-linux-gcc-4.5.4

Linux内核版本:Linux-3.0

主机操作系统:Centos 6.5

开发板:FL2440

GPRS:SIM900A

在开发SIM900模块之前,开发板已经加载了linux内核以及文件系统,并且开发板串口已经使能。并且一定要注意的是:要有一张没有欠费的电话卡!不要笑,这是个很严肃的问题!

------------------------------------------------------------------------------------------------------------------------------

所需源码:

ppp-2.4.4.tar.gz  http://download.chinaunix.net/download.php?id=35208&ResourceID=8334

注:个人觉得这是一个比较典型又比较简单的移植问题。

大体步骤:添加内核ppp上网的支持-->编译ppp-2.4.4生成一些可执行文件(pppd, chat, pppdump, pppstats)放到开发板的/usr/sbin/目录下-->将可执行脚本放在开发板的指定位置(/etc/ppp/peers/gprs, /etc/ppp/chat-gprs-connect),并执行pppd命令。

一、添加内核支持

Linux-3.0以上的版本中,rt3070的驱动已经加入了内核源码中去了,本篇用的是Linux-3.0的内核,只需要在内核的make menuconfig中选择ppp上网的支持就可以了。

修改如下:

Device Drivers --->
  [*] Network device support --->
    <*> PPP (point-to-point protocol) support
    [*] PPP multilink support (EXPERIMENTAL)
    <*> PPP support for async serial ports
    <*> PPP support for sync tty ports
    <*> SLIP (serial line) support
    [*] CSLIP compressed headers

二、编译ppp-2.4.4

# tar -xzf  ppp-2.4.4.tar.gz

# ./configure

# make CC=/opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc (交叉编译器)

如果编译成功,则会在pppd, chat, pppdump, pppstats下分别生成可执行程序pppd, chat, pppdump, pppstats。将其拷贝到开发板的/usr/sbin目录下。

三、开发板的配置

# vi /etc/ppp/peers/gprs

 # Usage: root>pppd call gprs

 #set seriral
/dev/ttyS1 # set baudrate # set flowdate
nocrtscts connect '/usr/sbin/chat -v -f /etc/ppp/gprs-connect-chat' #set debug ,send message to /var/log/messages
debug #To keep pppd on the terminal
nodetach #hide-password # Accept the peer's idea of our local IP address
ipcp-accept-local
# Accept the peer's idea of its (remote) IP address
ipcp-accept-remote #dial up connetion as the default route
defaultroute usepeerdns

# vi /etc/ppp/chat-gprs-connect

 #Copyright (c)  guanlei @qq.com
# This is second part of the ppp dial script. It will perform the connection
#
ABORT 'BUSY'
ABORT 'NO ANSWER'
ABORT 'NO CARRIER'
ABORT 'NO DIALTONE'
ABORT 'ERROR'
ABORT '\nRING\r\n\r\nRING\r'
TIMEOUT
'' \rAT
#set apn
OK AT+CGDCONT=,"IP","cmnet"
# ............
OK ATDT****# //这里要改成相应的运行商的设置
SAY " + requesting data connection\n"
CONNECT ''
SAY " + connected\n"

使能pppd:

# pppd call gprs &  (&表示后台运行)

配置完就可以了,现在可以测试一下上网功能了:

# ping www.baidu.com

PING www.baidu.com (103.235.46.39): 56 data bytes

64 bytes from 103.235.46.39: seq=0 ttl=48 time=555.719 ms

64 bytes from 103.235.46.39: seq=1 ttl=48 time=273.481 ms

--- www.baidu.com ping statistics ---

3 packets transmitted, 2 packets received, 33% packet loss

round-trip min/avg/max = 273.481/414.600/555.719 ms

# ifconfig

ppp0      Link encap:Point-to-Point Protocol

inet addr:10.110.1.110  P-t-P:192.200.1.21  Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

RX packets:10 errors:0 dropped:0 overruns:0 frame:0

TX packets:12 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:3

RX bytes:686 (686.0 B)  TX bytes:557 (557.0 B)

最新文章

  1. docker 配置文件引发的问题
  2. Atitit.gui api自动化调用技术原理与实践
  3. 【语言基础】c++ 基本数据类型与字节数组(string,char [] )之间的转化方法
  4. C#设计模式(13)——代理模式(Proxy Pattern)
  5. 【JS复习笔记】01 基本语法
  6. 贪心 Codeforces Round #301 (Div. 2) B. School Marks
  7. 跳出if判断
  8. [原]Unity3D深入浅出 - 认识开发环境中的Layers面板
  9. IOS GCD 的理解
  10. js转换ascii编码如中文友转换为编码友;可防止乱码
  11. php操作路径的经典方法
  12. 基于WCF的RESTFul WebAPI如何对传输内容实现压缩
  13. OpenGL学习--------颜色的选择
  14. 关于JavaScript日期类型处理的总结
  15. 实战DeviceIoControl 之一:通过API访问设备驱动程序
  16. (十八)TableView实践(多组汽车品牌展示)
  17. disconf安装问题
  18. java设计模式-----12、外观模式
  19. powerdesign、navacat、ER图、uml、类图、时序图
  20. kafka重新启动时出现:found a corrupted index file due to requirement failed问题解决方法

热门文章

  1. C# ICSharpCode.SharpZipLib.Zip 的使用
  2. [转]树莓派gpio口控制
  3. 5.flask知识点补充
  4. 2.flume架构以及核心组件
  5. 前端工程师必备PS技能
  6. AppScan8.7的两个细节亮点
  7. (二)openvpn客户端配置
  8. SyntaxError: Non-ASCII character &#39;\xe7&#39; in file 错误的解决方法
  9. EASYUI datagrid批量修改与提交
  10. 零基础如何学习 Web 安全?(转)