在嵌入式Linux下GPRS上网方案[zt]

硬/软件环境

基于S3C2410的嵌入式系统,COM1连接PC,COM2连接SIM300 GPRS模块。该系统运行在Linux 2.6.14操作系统下,使用ppp套件通过SIM300进行PPP拨号。

让Linux内核支持PPP

进入Linux内核目录,执行#make menuconfigNetwork Device Support à       PPP (point-to-point protocol) support       [*]   PPP multilink support       PPP support for async serial ports       PPP support for sync tty ports       SLIP (serial line) support       [*]   CSLIP compressed headers

ppp套件安装

Ø         下载ppp: ×最新版本为2.4.4Ø         将ppp-2.4.4.tar.gz解压至目录×这里默认ppp源码目录为$(PPP)              #tar zxvf ppp-2.4.4.tar.gzØ         然后交叉编译ppp:              #cd $(PPP)#./configure#make CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc ×这里指定交叉编译器Ø         将ppp套件安装至嵌入式系统中:×这里默认可执行文件在嵌入式系统下的目录为$(EMB_BIN)#cp $(PPP)/chat/chat $(EMB_BIN)#cp $(PPP)/pppd/pppd $(EMB_BIN)#cp $(PPP)/pppdump/pppdump $(EMB_BIN)#cp $(PPP)/pppstats/pppstats $(EMB_BIN)              ×这里默认嵌入式系统的etc目录为$(EMB_ETC)              #mkdir $(EMB_ETC)/ppp              #cp $(PPP)/etc.ppp/* $(EMB_ETC)/ppp

ppp套件配置

$(EMB_BIN)/dial-on.sh (GPRS启动脚本)

#!/bin/sh #define dial_on functiondial_on(){       #test if pppd is running       pppd_stat=`ifconfig|grep ppp|wc -l|cut -b 7-7`       if [ $pppd_stat -gt 0 ]       then              echo "ppp connection's already started."       else              #close ethernet interface              ifconfig eth0 down                            #ppp start              pppd modem /dev/ttyS1 57600 nocrtscts lock connect "chat -v -f /etc/ppp/gprs-connect" user "" noauth debug defaultroute              # pppd配置说明:              # ttyS1:连接GPRS模块SIM300的串口              # 57600:GPRS的拨号速率              # nocrtscts:无流控              # lock:锁定设备              # connect “chat –v –f /etc/ppp/gprs-connect”:GPRS连接脚本文件              # user “”:用户名,这里是无              # noauth:无需认证              # debug:输出调试信息              # defaultroute:此拨号连接作为默认路由              echo "ppp is starting..."       fi} #dial on gprsdial_on #wait for ppp's initsleep 5 pppd_stat=`ifconfig|grep ppp|wc -l|cut -b 7-7`if [ $pppd_stat -eq 0 ]then       echo "trying 2nd time to call ppp"       dial_on              sleep 5fi pppd_stat=`ifconfig|grep ppp|wc -l|cut -b 7-7`if [ $pppd_stat -eq 0 ]then       echo "pppd error!"       echo "please check pppd's config files"fi #open ethernet interfaceifconfig eth0 up #end

$(EMB_BIN)/dial-off.sh (关闭GPRS连接脚本)

#!/bin/sh #get pppd's pidpid=`pidof pppd` #if pppd process is runningif [ -n $pid ]then       #kill pppd       kill $pid              #open the ethernet interface        ifconfig eth0 up              echo "ppp connection is closed."else       echo "ppp connection isn't existed."fi #end

$(EMB_ETC)/ppp/gprs-connect (GPRS连接配置文件)

#GPRS连接超时设置TIMEOUT      60#若MODEM遇到BUSY、ERROR、NO CARRIER等信息时,停止拨号ABORT   "BUSY"ABORT   "ERROR"ABORT   "NO CARRIER"#外送“AT”指令'' AT#当得到“OK”回应时,外送AT+CGDCONT=1,"IP","CMNET"命令"OK" "AT+CGDCONT=1,\042IP\042,\042CMNET\042"#当得到“OK”回应时,外送ATDT*99***1#命令"OK" "ATDT*99***1#"#当得到“CONNECT”回应时,拨号结束,程序退出"CONNECT"

$(EMB_ETC)/ppp/pap-secrets (GPRS认证配置文件)

# Secrets for authentication using PAP# client    server     secret                    IP addresses''      *     ''      *

说明

(1)       还需要在$(EMB_ETC)/ppp目录下创建指向$(EMB_ETC)/resolv.conf的链接,用于指定PPP连接的DNS。(2)       在ppp连接时,需要关闭eth连接。在脚本中已经设置好了,首先关闭eth连接,然后进行ppp连接,在ppp连接完成时,再开启eth连接。(3)       最好在系统中开启syslogd进程,这样在/var/log/messages文件中会记录GPRS进行拨号的DEBUG信息,便于调试。(4)       运行拨号脚本后,可以使用#ifconfig查看PPP连接信息。

©著作权归作者所有:来自51CTO博客作者3444542的原创作品,如需转载,请注明出处,否则将追究法律责任

嵌入式linux gprs,在嵌入式Linux下GPRS上网方案[zt]相关推荐

  1. gsm基于linux程序,基于嵌入式Linux下GSM模块的短信收发系统设计

    摘要:移动通信中的短消息业务以其方便.可靠和价廉得到了广泛应用,本文在嵌入式Linux系统中,通过西门子MC35模块,实现了短信收发系统,该系统采用PDU短信模式,能支持中文短信.程序设计采用异步事件 ...

  2. linux下的嵌入式开发技能(嵌入式工程师必备)

    嵌入式Linux开发从下到上分为:嵌入式硬件开发.嵌入式驱动开发.嵌入式系统开发.嵌入式软件开发. 一.嵌入式硬件开发:熟悉电路等知识,非常熟悉各种常用元器件,掌握模拟电路和数字电路设计的开发能力.熟 ...

  3. linux下GPRS模块的应用程序

    ---------------------------------------------------------------------------------------------------- ...

  4. linux 下GPRS模块使用sim900打电话发短信

    ---------------------------------------------  主机操作系统:Centos 6.7 开发板平台: FL2440  Linux内核版本: linux-3.0 ...

  5. 嵌入式linux在windows,在Windows下启动Linux-嵌入式系统-与非网

    在Windows me下: 首先: 启动Windows me,假定光驱为g:,Linux安装在/dev/hda3,将Linux安装光盘放入光驱,在窗口DOS提示符下运行以下几条命令(注意内核文件vml ...

  6. 嵌入式系统开发学习步骤(Linux高级编程学习顺序)

    2019独角兽企业重金招聘Python工程师标准>>> 嵌入式系统开发学习步骤(Linux高级编程学习顺序) 1.Linux 基础 安装Linux操作系统 Linux文件系统 Lin ...

  7. linux gprs连接服务器,Linux和GPRS的数据通讯系统应用介绍

    0 引 言本文引用地址:http://www.eepw.com.cn/article/154771.htm 随着我国电网的不断扩大,输电线路越来越多.越来越复杂,给线路运检人员日常维护和检修造成了一定 ...

  8. 嵌入式linux编程,嵌入式Linux学习笔记 - 嵌入式Linux基础知识和开发环境的构建_Linux编程_Linux公社-Linux系统门户网站...

    注:所有内容基于友善之臂Mini2440开发板 一.嵌入式Linux开发环境的构建 嵌入式开发一般分为三个步骤: 1.编译bootloader,烧到开发板 2.编译嵌入式Linux内核,烧到开发板 3 ...

  9. Linux 之八 完整嵌入式 Linux 环境、(交叉)编译工具链、CPU 体系架构、嵌入式系统构建工具

      最近,工作重心要从裸机开发转移到嵌入式 Linux 系统开发,由于之前对嵌入式 Linux 环境并不是很了解,因此,第一步就是需要了解如何搭建一个完整的嵌入式 Linux 环境.现在将学习心得记录 ...

最新文章

  1. 公司内部将多国语言key转换成中文javaScript
  2. Face Alignment at 3000 FPS via Regressing Local Binary Features(CVPR2014)读后感(first pass)
  3. html框架集 target
  4. 如何利用BAPI SD_SALESDOCUMENT_CHANGE修改Sales Order的字段
  5. 2021年宣城市高考成绩查询,宣城高考成绩查询入口
  6. 关于mysql的论文,大家给点建议
  7. arm linux 中文输入法,ARM 安装中文输入法
  8. android串口wifi模块,一文深度了解串口WiFi模块的应用场景
  9. 微信公众号实现消息模板的推送
  10. a 标签 jq js 打开新页面跳转
  11. 【数据攻略】 假设检验 | 统计功效 | 最小样本量
  12. ajax批量上传数据,Ajax上传数据和上传文件(三种方式)
  13. 上网认证页面html,如何设置网页认证上网
  14. Java中使用Protocol Buffer
  15. 6岁女孩出口之乎者也 用《论语》典故批评妈妈
  16. A*算法求解迷宫问题(算法讲解与证明、python实现与可视化)
  17. Pycharm中,pyqt5.11.1的Qt assistant显示
  18. Socket编程面试问题
  19. 软件生命周期管理系统ALM配置说明(二)
  20. 高中计算机类教师资格证,高中教师资格证计算机专业考什么

热门文章

  1. linux下qt打印功能如何实现,QT实现操控打印机打印图片
  2. OV7670摄像头的相关参数及时序分析
  3. 分布式数据库架构及企业实践(基于Mycat中间件)——1
  4. printf 日常使用指南
  5. 自媒体运营工具有哪些?分享自媒体必备的几款运营工具!
  6. MIPI C-PHY/D-PHY/ UFS/ SDIO/eMMC/DP/eDP/DDR5/LPDDR5/I3C/PCIE/Automotive Ethernet/Serdes......测试方案
  7. 为什么win7 flash player安装不了怎么办
  8. 论文阅读,GAN 生成对抗网络 2014 Goodfellow原文阅读笔记
  9. 关闭Java11中即将移除Nashorn引擎的警告Warning: Nashorn engine is planned to be removed from a future JDK release
  10. 银河计算机网络,python学习笔记