试验环境:Linux marsboard 3.4.90 #9 SMP PREEMPT Thu Mar 3 18:28:43 CST 2016 armv7l armv7l armv7l GNU/Linux (注:A20核心板)

通讯模块,加载成ttyUSB*设备;

目标:使用通讯模块进行3G4G拨号连接互联网

方法:使用pppd和ppp程序,进行拨号连接

前提:安装了ppp、pppd两个程序

摘要:涉及的文件ppp的chat-script拨号脚本(针对不通通讯设备情况需要有所调整,此处不考虑这些情况,大部分都可以使用)、

步骤:

1、创建ppp程序的拨号脚本,内容如下:(有两个,一个是针对移动、联通和电信4G的,一个是只针对电信3G的)

# 针对移动、联通和电信4G的,文件名chat-script

#!/bin/sh

exec chat -v \

TIMEOUT 5 \

ABORT "BUSY" \

ABORT "ERROR" \

ABORT "NO CARRIER" \

'' \rAT \

OK 'AT+CGDCONT=1,"IP","CMNET"' \

OK 'ATDT*99#' \

CONNECT '' \

-----------------不同脚本分割,请存在不通文件中-----------------------------------------

# 针对电信3G的,文件名chat-script-ct3g

#!/bin/sh

exec chat -v \

TIMEOUT 5 \

ABORT "BUSY" \

ABORT "ERROR" \

ABORT "NO CARRIER" \

'' \rAT \

OK 'AT+CGDCONT=1,"IP","CMNET"' \

OK 'ATDT#777' \

CONNECT '' \

2、创建两个拨号脚本,ppp-on用于拨号连接 ppp-off用户断开连接

# 文件 ppp-on

#! /bin/sh

# $1 串口号 $2波特率 $3chat脚本

pppd modem -d -detach lock $1 $2 kdebug 4 file /etc/ppp/options crtscts noipdefault netmask 255.255.255.0 defaultroute connect $3

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

# 文件 ppp-off

#!/bin/sh

######################################################################

#

# Determine the device to be terminated.

#

if [ "$1" = "" ]; then

DEVICE=ppp0

else

DEVICE=$1

fi

######################################################################

#

# If the ppp0 pid file is present then the program is running. Stop it.

if [ -r /var/run/$DEVICE.pid ]; then

kill -INT `cat /var/run/$DEVICE.pid`

#

# If the kill did not work then there is no process running for this

# pid. It may also mean that the lock file will be left. You may wish

# to delete the lock file at the same time.

if [ ! "$?" = "0" ]; then

rm -f /var/run/$DEVICE.pid

echo "ERROR: Removed stale pid file"

exit 1

fi

#

# Success. Let pppd clean up its own junk.

echo "PPP link to $DEVICE terminated."

exit 0

fi

#

# The ppp process is not running for ppp0

echo "ERROR: PPP link is not active on $DEVICE"

exit 1

3、使用方法

将以上的四个脚本文件赋予执行权限,并使用root权限执行

./ppp-of /dev/ttyUSB1 115200  chat-script(具体路径)

使用ifconfig查看拨号的结果

4、附上一个自己写的脚本,其中调用的以上的拨号脚本

#! /bin/sh

WR="/home/marsboard/pppd-net"

# $1 串口号 $2波特率 $3chat脚本 $4 ppp-on日志

${WR}/ppp-on $1 $2 ${WR}/$3 > ${WR}/$4 &

sleep 8

# 从ppp-on日志中获取拨号信息

INTERFACENAME="Using interface"

ADDRESSIPNAME="local IP address"

GATEWAYNAME="remote IP address "

INTERFACE=`grep "$INTERFACENAME" ${WR}/$4|awk '{print $3}'`

ADDRESSIP=`grep "$ADDRESSIPNAME" ${WR}/$4|awk '{print $4}'`

GATEWAYIP=`grep "$GATEWAYNAME" ${WR}/$4|awk '{print $4}'`

# 判断拨号是否成功

for n in `seq 3`

do

ping -c 1 ${ADDRESSIP} -I ${INTERFACE} >/dev/null 2>&1

if [ $? -eq 0 ]

then

echo "ppp Successed!!"

echo "${INTERFACE}, ${ADDRESSIP}, ${GATEWAYIP}"

return

fi

done

echo "ppp Failed!!"

window7 3G/4G拨号操作

Win7系统Modem拨号操作指导:https://wenku.baidu.com/view/bb855b1dc77da26925c5b0e1.html 拨号上网设置APN,拨号号码,帐号和密码:ht ...

在Linux中运行Nancy应用程序

最近在研究如何将.NET应用程序移植到非Windows操作系统中运行,逐渐会写一些文章出来.目前还没有太深的研究,所以这些文章大多主要是记录我的一些实验. 这篇文章记录了我如何利用NancyFx编写一 ...

使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序

在 Linux 上开发 C/C++ 程序,或许你会直接(本机或远端)登入 Linux,打开编辑器写完代码后,就用 gcc/g++ 来编译,遇到要除错(debug)的时候,则会选择使用 gdb 来进行除 ...

不错的linux下通用的java程序启动脚本

不错的linux下通用的java程序启动脚本(转载) 虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的 ...

不同linux系统添加开机启动程序的命令

see http://phpcj.org/blog/%E4%B8%8D%E5%90%8Clinux%E7%B3%BB%E7%BB%9F%E6%B7%BB%E5%8A%A0%E5%BC%80%E6%9C ...

Linux如何实现开机启动程序详解

我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. 加载内核LILO 启动之 ...

使用linux perf工具生成java程序火焰图

pre.cjk { font-family: "Nimbus Mono L", monospace } p { margin-bottom: 0.1in; line-height: ...

linux安装nodejs运行vue程序

linux安装nodejs运行vue程序 1.与node官网下载安装包 https://nodejs.org/zh-cn/download/ 6.上传到服务器,并解压 tar -xvf node-v1 ...

Linux下EC20实现ppp拨号(转)

源: Linux下EC20实现ppp拨号 参考: 4g模块EC20+android6.0系统移植 OK6410开发板调试EC20通信模块 海思3531添加移远EC20 4g模块 将移远通信的EC20驱 ...

随机推荐

持续集成(Continuous integration)

docker +jenkins + gitosc 到gitosc上,复制地址:https://git.oschina.net/99fu/CI.git 进入到 /home/fu   git clone ...

Dom4j把xml转换成Map(非固定格式)

将xml转换成Map,能够应对不用结构的xml,而不是只针对固定格式的xml.转换规则:1.主要是Map与List的互相嵌套2.同名称的节点会被装进List 示例: import java.util. ...

linux下使用forever进行管理

何为forever:forever可以看做是一个nodejs的守护进程,能够启动,停止,重启我们的app应用.官方的说明是说:A simple CLI tool for ensuring that a ...

IT第二十一天 - Collections、ArrayList集合、LinkedList集合、Set集合、HashMap集合、集合的操作注意【修20130828】

NIIT第二十一天 上午 集合 1. 集合Collection存储数据的形式是单个存储的,而Map存储是按照键值对来存储的,键值对:即键+值同时存储的,类似align="center&quo ...

Spring Timer实现

定时器:继承java.util.TimerTask类实现run方法 package com.zbb.framework.util.timer; import java.util.TimerTask; ...

如何用Fritzing实现元器件自定义接线图

在用Micropython开发板完成小实验时,很多朋友反应对照接线图实际接线有时会有一些困扰.今天给大家介绍一款画图软件Fritzing   看看是怎么自定义制作接线图的. 前提条件 1.准备好元器件 ...

python文件转exe

.py文件转exe文件 1.软件说明: 用python写一个视频处理软件,用到的库是moviepy 2.所用软件: Python 3.6.5 32位 pycharm  专门的python编辑ide,推 ...

016 在大数据中,SSH无密钥登录

一:概述 1.关于ssh ssh是一种安全协议. 会生成一对公钥和私钥. 2.问题的由来 3.解决方式 将生成的公钥发送到远程的机器上. 4.位置 主目录下的.ssh文件下. 二:在伪分布式下的操作 ...

Ruby知识总结-一般变量+操作符+if+数组和哈希

ruby入门掌握其实很简单,下面对我司主要使用的部分入门做一个简单的归纳总结: 本文的文章结构: 1.变量 2.操作符 3.if~else~end .unless 4.数组(Array) 5.哈希(H ...

R语言入门 一些基本的操作

1 R的下载.安转 R有很多的版本,支持目前主流的操作系统MAC.Linux和WINDOWS系列.因为我个人是在WINDOWS下用R的,所以在这里将只介绍WINDOWS下R的下载&安装. 下载 ...

pppd详解_Linux 使用pppd和ppp程序进行3G/4G拨号相关推荐

  1. 详解在QT中写控制台程序 实例

    详解在QT中写控制台程序 实例 在QT中写控制台程序 实例是本文介绍的内容,不多说了,先来看本文内容. AD: 本文介绍的是详解在QT中写控制台程序 实例,来看那内容.找到两种方法可以写控制台程序 第 ...

  2. pppd详解_【求解】pptpd 619错误详解

    [求解]pptpd 619错误详解 (2012-01-03 03:20:52) 标签: 杂谈 [求解]pptpd 619错误详解 本帖最后由 cltnet 于 2010-10-09 18:42 编辑 ...

  3. csh for循环_shell中的for循环用法详解_linux shell

    这篇文章主要介绍了shell中的for循环用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 for 命令: for i i ...

  4. 测试安装详解_Linux的/opt目录(测试实用篇)

    在linux环境测试时,会部署到/opt目录下,这是为何呢? 下面来详解Linux的/opt目录: -------------------------------------------------- ...

  5. python编译安装详解_linux 编译安装python3.6的教程详解

    不要下载 " XZ compressed source tarball " ,目前 python3.6 最新版压缩包名字是:Python-3.6.7.tgz. 把下载的压缩包随便放 ...

  6. cat命令详解_Linux | 账号管理及命令使用详解

    引言   在Linux系统中,我们常常会看到目录或文件的所属关系: [root@linux01 ~]# ll -d test.sh -rw-r----- 1 root root 144 11月 20 ...

  7. top命令参数详解_Linux、AIX的top命令各项指标详解(非原创侵删)

    一.Linux下监控服务器状态命令--top:各数据详解 top命令作用是实时现实服务器当前CPU.内存.负载.进程等信息 第一行 00:09:14 - 当前系统时间 1days, 13:14 - 系 ...

  8. java 注释 超链接_java_Java代码注释规范详解,代码附有注释对程序开发者来 - phpStudy...

    Java代码注释规范详解 代码附有注释对程序开发者来说非常重要,随着技术的发展,在项目开发过程中,必须要求程序员写好代码注释,这样有利于代码后续的编写和使用. 基本的要求: 1.注释形式统一 在整个应 ...

  9. md5与des算法有何不同_Python算法详解:为什么说算法是程序的灵魂?

    算法是程序的灵魂,只有掌握了算法,才能轻松地驾驭程序开发.软件开发工作不是按部就班,而是选择一种最合理的算法去实现项目功能.算法能够引导开发者在面对一个项目功能时用什么思路去实现,有了这个思路后,编程 ...

最新文章

  1. vue下轻松解决模拟微信视频缩略图拖拽→吸附窗口边界的功能
  2. 【深度学习】基于Pytorch进行深度神经网络计算(一)
  3. linux mysql libc.so_mysql-arm-linux-gcc编译报错:libc.soformatnotrecognized.
  4. C++和C#编写调用COM组件
  5. 随想录(程序语言只是SE的敲门砖)
  6. 是用于mac的linux,用于Mac OS X的Can(CUPS)ppd文件可用于Linux吗?
  7. html5复选框控制按钮状态,HTML5如何添加原生radio按钮和checkbox复选框转换为非常好看的滑动开关按钮的插件...
  8. Leading and Trailing LightOJ - 1282
  9. 稀疏矩阵相乘-Python版
  10. ManualResetEvent实现线程的暂停与恢复
  11. 共轭 、 共轭转置、共轭矩阵、酉矩阵、正定矩阵、半正定矩阵
  12. 行为识别论文笔记|ARTNet|Appearance-and-Relation Networks for Video Classification
  13. 有线路由器接无线路由器设置方法
  14. 用Matlab实现人脸 68 landmarks详细教程
  15. 关于log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.li)的问题
  16. Xrm.Page.data.entity Properties and Methods
  17. 【SAP】ABAP开发——ALV展示后字段的下划线连接
  18. 四平方和定理_简化循环
  19. 使用jQuery, CSS, JSON 和ASP.NET打造一个新闻轮换控件
  20. 原装ipad手写笔有必要买吗?第三方iPad手写笔推荐

热门文章

  1. java RSA生成公钥对象和私钥对象
  2. 消失的2000万辆小黄车去哪儿了?
  3. Culling技术的一些介绍
  4. Integration using Feynman technique
  5. SAS统计描述、作图与均值显著性检验
  6. EF + EFCore 学习
  7. 未启用对服务器的远程访问
  8. 重温FPGA开发32
  9. html实现正方体原理,CSS3 实现正方体
  10. 薪酬缩水,“裸辞”奋战25天三面美团,交叉面却被吊打,我太难了