ubantu下手动配置脚本实现3G模块上网

WCDMA

本节使用的是 huawei em770w 模块,使用中国联通 WCDMA。

pppd 脚本

pppd 脚本默认放在/etc/ppp/peers/ 目录下,比如我们使用 wcdma 这个名字为这个脚本的

文件名
使用命令
    #pppd call wcdma
这样就启动了 pppd 程序

pppd 程序的作用就是建立协议,生成网络接口 ppp0(如果第一个).下面是一个 pppd call 脚本
的例子:

#/etc/ppp/peers/wcdma
#This is pppd script, used Huawei EM770W(Union)
/dev/ttyUSB0
115200
crtscts
modem
debug
nodetach
usepeerdns
defaultroute
user "3gnet"
0.0.0.0:0.0.0.0
connect ‘/usr/sbin/chat -s -v -f /etc/ppp/wcdma-connect-chat‘

有关 pppd 更多的意义请直接使用 linux 帮助 man pppd

下面是一些重要参数的解释
参数 意义
/dev/ttyUSB0 接口
115200         接口波特率
crtscts           接口带硬件流控
modem          这个参数使得 pppd 进程将等待模块发回的 CD (Carrier Detect)信号,与
local               真好相反
debug             输出调试信息
nodetach        不后台运行,默认是后台运行的
usepeerdns    使用 dns
defaultroute    本地和远端的 ip 都设为 0 使得接入的 isp 分配本地的 ip 地址
user “3gnet”    用户名
connect ‘...’     调用连接 chat 脚本

chat 脚本

  chat 脚本是真正 AT 指令的发送和接收脚本,下面是一个 chat 脚本

#/etc/ppp/wcdma-connect-chat
TIMEOUT 5
ABORT "DELAYED"
ABORT "BUSY"
ABORT "ERROR"
ABORT "NO DIALTONE"
ABORT "NO CARRIER"
#"AT
#‘OK-+++\c-OK‘ ATH0
TIMEOUT 5
ECHO OFF
‘‘ AT
OK AT+CGDCONT=1,"IP","3gnet",,0,0
OK ATDT*99#
CONNECT ‘‘

#pppd call wcdma

  如果想在终端看到信息就在pppd 脚本中选择nodetach,否则pppd将在后台运行,终端不显示任何信息,这样可通过查看/var/log/ppp-connect-errors 记录,了解程序运行的过程。$ tail  -100 /var/log/ppp-connect-errors

如果没有错误将出现

timeout set to 5 seconds
abort on (DELAYED)
abort on (BUSY)
abort on (ERROR)
abort on (NO DIALTONE)
abort on (NO CARRIER)
timeout set to 5 seconds
send (^MAT^M)
expect (OK)
A^M^M
OK
-- got it
send (AT+CGDCONT=1,"IP","3gnet",,0,0^M)
expect (OK)
^M
AT+CGDCONT=1,"IP","3gnet",,0,0^M^M
OK
-- got it
send (ATDT*99#^M)
expect (CONNECT)
^M
ATDT*99#^M^M
CONNECT
-- got it
send (^M)
Serial connection established.
using channel 9
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xf5d87df8> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x20 <asyncmap 0x0> <auth chap MD5> <magic 0x172fd2b> <pcomp>
<accomp>]
No auth is possible
sent [LCP ConfRej id=0x20 <auth chap MD5>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xf5d87df8> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x21 <asyncmap 0x0> <magic 0x172fd2b> <pcomp> <accomp>]
sent [LCP ConfAck id=0x21 <asyncmap 0x0> <magic 0x172fd2b> <pcomp> <accomp>]
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 [LCP DiscReq id=0x22 magic=0x172fd2b]
rcvd [LCP ProtRej id=0x23 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]
Protocol-Reject for ‘Compression Control Protocol‘ (0x80fd) received
rcvd [IPCP ConfNak id=0x1 <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14> <ms-wins
10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 10.11.12.13>
<ms-dns3 10.11.12.14>]
rcvd [IPCP ConfNak id=0x2 <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14> <ms-wins
10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x3 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 10.11.12.13>
<ms-dns3 10.11.12.14>]
rcvd [IPCP ConfReq id=0x10]
sent [IPCP ConfNak id=0x10 <addr 0.0.0.0>]
rcvd [IPCP ConfRej id=0x3 <compress VJ 0f 01>]
sent [IPCP ConfReq id=0x4 <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns3 10.11.12.14>]
rcvd [IPCP ConfReq id=0x11]
sent [IPCP ConfAck id=0x11]
rcvd [IPCP ConfNak id=0x4 <addr 172.20.255.208> <ms-dns1 202.99.160.68> <ms-dns3
202.99.166.4>]
sent [IPCP ConfReq id=0x5 <addr 172.20.255.208> <ms-dns1 202.99.160.68> <ms-dns3
202.99.166.4>]
rcvd [IPCP ConfAck id=0x5 <addr 172.20.255.208> <ms-dns1 202.99.160.68> <ms-dns3
202.99.166.4>]
Could not determine remote IP address: defaulting to 10.64.64.64
not replacing existing default route via 192.168.8.254
local IP address 172.20.255.208
remote IP address 10.64.64.64
primary DNS address 202.99.160.68
secondary DNS address 202.99.166.4

$ifconfig 可以看到多出来ppp0

如果出现

Serial connection established.
using channel 3
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB2
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x29df6e1f> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x29df6e1f> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x29df6e1f> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x29df6e1f> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x29df6e1f> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x29df6e1f> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x29df6e1f> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x29df6e1f> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x29df6e1f> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x29df6e1f> <pcomp> <accomp>]
LCP: timeout sending Config-Requests
Connection terminated.

或者

send (ATDT*99#^M)
expect (CONNECT)
^M
ATDT*99#^M^M
NO CARRIER
-- failed
Failed (NO CARRIER)

可以试试换换ttyUSB端口号,默认是虚拟出的第一个端口,ttyUSB0

时间: 2024-08-26 18:07:43

ubantu下手动配置脚本实现3G模块上网的相关文章

linux下手动配置lamp环境

前提:这是SercureCRT远程虚拟机中的ubuntu server完成的实验. 首先我们要知道lamp这个单词的构成:linux,apache,mysql,php.这篇文章就是要说明如何在linux下面完成apache,mysql,php的安装,并且让他们协同工作. 第一步:安装apache 采用ubuntu自带的软件安装方式:apt-get install apache2 安装完之后,/var/www/ 就是它的工作目录,/etc/apache2 就是它的安装路径. 进行测试 http:/

Ubuntu环境下手动配置zookeeper

配置zookeeper 注意:因为是单机伪分布式配置,故同一机器上有3个server zookeeper文件格式如下 home---zookeeper---server0---zookeeper | ------------server1---zookeeper | ------------server2---zookeeper 1. 下载zookeeper(我用的是:zookeeper-3.4.6.tar.gz) 分别解压到/home/zookeeper/server0 /home/zooke

openwrt 3g模块上网

硬件环境:     开发板为RT5053F        3G模块为中兴 MC2176 电信版 下面是操作步骤 添加VID .PID VID . PID 的获取方法是 将设备插入电脑在linux下运行lsusb命令,如图 或者是按照无线模块驱动使用手册,将产品支持的IDS全部加入option.c文件中 openwrt-1407在如下位置: build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620n/linux-3.

ubuntu下手动配置apache2.4.12

(apache2也可以使用 sudo apt-get install apache2来安装,下面来讲解下如何手动安装配置apache2) 在安装apache2之前,先要安装apache2的依赖项,apache2依赖项有:apr.apr-util.pcre并且pcre依赖perl. apache依赖包下载地址: apr: http://mirrors.cnnic.cn/apache//apr/apr-1.5.1.tar.gz apr-util: http://mirrors.cnnic.cn/ap

Ubuntu环境下手动配置Hadoop

配置Hadoop 前提时已经配置过JDK和SSH (如何配置JDK:http://www.cnblogs.com/xxx0624/p/4164744.html) (如何配置SSH:http://www.cnblogs.com/xxx0624/p/4165252.html) 1. 添加Hadoop用户 sudo addgroup hadoop sudo adduser --ingroup hadoop hadoopsudo usermod -aG admin hadoop 2. 下载Hadoop文

Ubuntu环境下手动配置HBase

配置HBase 前提: 配置Hadoop(http://www.cnblogs.com/xxx0624/p/4166095.html) 配置zoopkeeper(http://www.cnblogs.com/xxx0624/p/4168440.html) 1. 下载HBase 解压HBase tar -zxvf hbase-0.98.8-hadoop2-bin.tar.gz 然后移动到/home目录下,并重命名为hbase 2. 设置环境变量 #set hbase environment exp

Ubuntu环境下手动配置ElasticSearch

1 下载elasticsearch-1.4.2 2 修改配置(可选) 修改内存:(可选) bin/elasticsearch.in.sh中: ES_MIN_MEM ES_MAX_MEM 修改搜索引擎页面信息:(可选) config/elasticsearch.yml中: cluster.name: elasticsearch1.0 node.name: "elasticsearch1.0_Node1" index.number_of_shards: 10 . . . 3 运行 进入:h

Linux环境下手动配置sbt

一.下载sbt安装包 从sbt官网下载地址:http://www.scala-sbt.org/download.html下载安装包,以sbt-0.13.13.tgz为例. 二.安装 1.将下载的二进制包移动到/usr/local目录,解压缩文件包 tar zxvf sbt-0.13.13.tgz mv sbt-launcher-packaging-0.13.13 sbt  //重命名目录 2.创建启动sbt的脚本文件 cd /usr/local/sbt/ vi sbt 在打开的sbt文本文件中添

Ubuntu环境下手动配置tomcat

配置tomcat 前提条件:JDK已配置. (配置JDK:http://www.cnblogs.com/xxx0624/p/4164744.html) 1. 下载tomcat(http://tomcat.apache.org/download-70.cgi) 解压到某个目录(我解压到的是:/home) tar -zxvf apache-tomcat-7.0.57.tar.gz sudo mv apache-tomcat-7.0.57 /home //移动到home目录下 sudo mv apac