linux下GPRS模块ppp拨号上网



交叉编译器: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

复制代码
 1 # Usage: root>pppd call gprs
 2 
 3 #set seriral
 4 /dev/ttyS1
 5 
 6 # set baudrate
 7 115200
 8 
 9 # set flowdate
10 nocrtscts
11 
12 connect '/usr/sbin/chat -v -f /etc/ppp/gprs-connect-chat'
13 
14 #set debug ,send message to /var/log/messages
15 debug
16 
17 #To keep pppd on the terminal
18 nodetach
19 
20 #hide-password
21 
22 # Accept the peer's idea of our local IP address
23 ipcp-accept-local
24 # Accept the peer's idea of its (remote) IP address
25 ipcp-accept-remote
26 
27 #dial up connetion as the default route
28 defaultroute
29 
30 usepeerdns
复制代码

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

复制代码
 1 #Copyright (c) 2016 guanlei 995318056@qq.com
 2 # This is second part of the ppp dial script. It will perform the connection
 3 #
 4     ABORT           'BUSY'
 5     ABORT           'NO ANSWER'
 6     ABORT           'NO CARRIER'
 7     ABORT           'NO DIALTONE'
 8     ABORT           'ERROR'
 9     ABORT           '\nRING\r\n\r\nRING\r'
10     TIMEOUT         20
11 ''               \rAT
12 #set  apn
13 OK              AT+CGDCONT=1,"IP","cmnet"
14 # ............
15      OK              ATDT*99***1#    //这里要改成相应的运行商的设置
16      SAY             " + requesting data connection\n"
17      CONNECT         ''
18      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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高级I/O(七)--readv和writev函数

From: http://blog.chinaunix.net/uid-26822401-id-3158225.html readv和write函数让我们在单个函数调用里从多个不连续的缓冲里读入或写出。这些操作被称为分散读&#xff08;scatter read&#xff09;和集合写&#xff08;gather write&#xff09;。 #include <sys/uio…

Linux下如何定位Java进程CPU利用率过高原因

首先通过Top命令查看占用CPU较高的进程PID&#xff0c;执行Top之后按1可以查看每个核占用比例 1 top这里由于我是用的虚拟机&#xff0c;即使我的Java进程占用CPU很高也只是占的虚拟机的&#xff0c;而对整个机器的CPU来说占的并不高。这里我们找到了pid7957 然后我们在根据pi…

【iOS开发】企业版证书($299)In-House方式发布指南

一、明确几个概念 1、企业版IDP&#xff1a;即iOS Development Enterprise Program。注意是$299&#xff0f;Year那种&#xff0c;并不是$99/Year的那种。 2、In House&#xff1a;是只企业内部发布&#xff0c;仅限企业内部人员使用。 二、In-House方式特点 1、不能发布到Appl…

RMSE、MAPE、准确率、召回率、F1、ROC、AUC总结

RMSE(root mean square error)均方根误差 单纯统计误差的值。 MAPE(mean absolute percentage error) 平均百分比误差 存在一个和原始数据相比较的过程。 准确率&#xff08;precision&#xff09;P&#xff1a; PTP/(TPFP) TP(true positive) FP(false positive) P是代表预…

hdu 5317 RGCDQ (2015多校第三场第2题)素数打表+前缀和相减求后缀(DP)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid5317 题意&#xff1a;F(x) 表示x的不同质因子的个数结果是求L&#xff0c;R区间中最大的gcd( F(i) , F(j) )&#xff0c;i、j在L&#xff0c;R区间内。 思路&#xff1a;因为2<L < R<1000000&#xf…

MATLAB 中RMSE和MAPE的计算方法

RMSE&#xff1a;均方根误差 matlab计算方法&#xff1a; rmse sqrt(mean((YPred-Obverval).^2)); MAPE&#xff1a;平均百分比误差 matlab计算方法&#xff1a; meap mean(abs((observed - predicted)./observed))*100;

shell 基本知识

shell--脚本基础知识 ****shell 脚本基础知识**** 一、基本脚本编译 知识内容&#xff1a; # 构建脚本 # 将命令串联起来 # 存储变量 # 数学计算 # 重定向输出 # 检查代码shell不像高级语言需要编译后执行&#xff0c;而是直接处理每一条命令&#xff0c;可以将多条命令连接起来…

让LwIP拥有PING其他设备的能力

LwIP是个很不错的协议栈&#xff0c;但是由于其体积过于小巧&#xff0c;使其只能支持ICMP的ECHO类型。 因为在“icmp.c”中的“void icmp_input(struct pbuf *p, struct netif *inp)”函数里有个很长的switch case语句&#xff08;大约80行的位置&#xff09;。 而这个语句只…

H.264详解

From: http://netliuwei.blog.163.com/blog/static/93642191201111721931583/ H.264 H.264&#xff0c;同时也是MPEG-4第十部分&#xff0c;是由ITU-T视频编码专家组&#xff08;VCEG&#xff09;和ISO/IEC动态图像专家组&#xff08;MPEG&#xff09;联合组成的联合视频组&…

VSCode中配置prettier和ESLint

文章目录 了解ESLint和Prettier的作用prettier配置ESLint配置常见问答ESLint 和Prettier 有什么区别&#xff1f;为什么我应该同时使用ESLint 和Prettier&#xff1f;在使用ESLint 和Prettier 时&#xff0c;有可能出现它们之间的规则冲突吗&#xff1f;我已经在项目中使用了ES…

Lwip使用经验

LWIP使用经验 一 LWIP内存管理 数据包管理 设置内存大小 宏编译开关 二 LWIP启动时序 三 LWIP运行逻辑 接收数据包 SequentialAPI函数调用 四 TCPIP核心知识点 滑动窗口 三次握手 断开连接 TCP状态转换 同时打开 同时关闭 五正确使用LWIP 六 LWIP常见问题 网卡驱动程序 内存…

Keil5 编译生成bin二进制文件的设置方法

勾选&#xff1a;After Build/Rebuild Run #1 代码&#xff1a;fromelf --bin .\output\node.axf --output .\output\NoiseApp.bin 解释&#xff1a; .\ 指当前工程文件.uvprojx所在的目录.\output\node.axf 表示给定axf所在的位置.\output\NoiseApp.bin 表示bin文件输出的…

在word中插入代码段的方法[转]

废话不多说&#xff0c;下面说明实现步骤 步骤一 1.打开这个代码高亮工具网站&#xff1a;http://www.planetb.ca/syntax-highlight-word 2.在代码框中粘贴代码&#xff0c;选择语言&#xff0c;点击Show Highlighted 3.复制生成的代码段 步骤二 4.在 Microsoft Word…

开源好用的思维导图软件XMind

作为一款免费开源的思维导图制作编辑软件&#xff0c;灵活的运用思维导图会让你在学习和工作上帮助甚大。 接下来我们除了介绍思维导图之外&#xff0c;还给大家介绍一款免费的思维导图制作软件 XMind&#xff0c;它能支持 Windows、Mac、Linux 主流操作系统&#xff0c;而且还…

STM32到GD32移植攻略

1、 系统 1) 晶振起振区别 描述&#xff1a;启动时间&#xff0c;GD32 与STM32 启动时间都是2ms&#xff0c;实际上GD 的执行效率快&#xff0c;所以ST 的HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)是2ms&#xff0c;但是这个宏定义值在GD 上时间就更加短了&#xff0c;所以要加大…

Emmet:HTML/CSS代码快速编写神器

本文来源&#xff1a;http://www.iteye.com/news/27580 &#xff0c;还可参考&#xff1a;http://www.w3cplus.com/tools/emmet-cheat-sheet.htmlEmmet的前身是大名鼎鼎的Zen coding&#xff0c;如果你从事Web前端开发的话&#xff0c;对该插件一定不会陌生。它使用仿CSS选择…

HardFault_Handler问题查找方法

STM32出现HardFault_Handler故障的原因主要有两个方面&#xff1a; 1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码&#xff0c;遇到了需要慢慢排查。 2、堆栈溢出。增加堆栈的大小。 出现问题时排查的方法&#xff1a; 发生异常之后可首先查看LR寄存器中的值&…

《深入理解Linux内核》笔记5:内存管理

本文介绍内核如何给自己分配物理内存并管理。对应《深入》第8章。 在《深入》第2章“内存寻址”&#xff08;或者是我博客中的这篇文章&#xff0c;点这里&#xff09;中&#xff0c;已经介绍了内核如何给自己分配1G的线性地址的。但是物理内存的分配及管理恐怕更复杂而且更有必…

Objective-C设计模式——单例Singleton(对象创建)

单例 和其它语言的单例产不多&#xff0c;可以说是最简单的一种设计模式了。但是有几个点需要注意下&#xff0c;单例就是一个类只有一个实例。 所以我们要想办法阻止该类产生别的实例&#xff0c;一般语言中都会将构造函数写为private。但是OC中的函数并没有限定符&#xff0c…

基于SSM在线协同过滤汽车推荐销售系统

SSM毕设分享 基于SSM在线协同过滤汽车推荐销售系统 1 项目简介 Hi&#xff0c;各位同学好&#xff0c;这里是郑师兄&#xff01; 今天向大家分享一个毕业设计项目作品【】 师兄根据实现的难度和等级对项目进行评分(最低0分&#xff0c;满分5分) 难度系数&#xff1a;3分 工作…