华为3G模块拨号上网

一 开发环境简介

内核版本 3.19.5、3.15(这2个我都试过)

编译环境  Ubuntu 12.04

3g模块      华为MU709s

SIM卡        联通

二 主要步骤

向linux内核中添加3G模块驱动(USB转串口的option驱动)和ppp网络协议的支持

交叉编译ppp-2.4.2源代码

将拨号上网所需的两个应用程序pppd和chat拷贝到开发板/usr/sbin文件夹下,

编写ppp拨号脚本wcdma、wcdma-chat-connect、wcdma-chat-disconnect并存放在/etc/ppp/peers目录下。将DNS写入到/etc/resolv.conf文件中

执行“pppd call wcdma”命令进行拨号

三 配置3G模块驱动和ppp网络协议栈

可参考资源文档,华为模块Linux内核驱动集成指导-(V100R001_V2.0, Chinese) .pdf

也可按照以下步骤操作

首先进入make menuconfig界面

1 配置3G模块驱动

图 1

如图1首先选择Device Drivers

图2

如图2进入USB support

图 3

进入USB support之后一直往下直到找到图3并选择USB转串口

图4

最后选择USB driver for GSM and CDMA modems到此3G卡驱动已经添加完毕

主要是添加了driver/usb/serial/option.c和driver/usb/serial/usb_wwan.c

两个文件,尽管驱动添加了,但是这仅仅只是一个usb转串口驱动,并不能作为网络设备直接使用,此时就需要ppp网络协议的支持,他将ttyUSB*等设备模拟成网络设备使用也即(/dev/ttyUSB0<---->ppp0)

2 添加ppp协议

同样也是进入make menuconfig界面

图5

首先同样也是进入驱动配置界面Device Drivers

图6

如图6选择网络设备支持

如图7选择ppp

到这一步驱动和协议就都已经配置成功了接下来就是编译下载到板子

查看开发板Dev目录

[[email protected] ~]# ls /dev/ttyUSB

ttyUSB0  ttyUSB1  ttyUSB2  ttyUSB3

四 编写ppp拨号脚本

由于该拨号脚本需要使用chat,pppd,等命令,所以需要下载ppp-2.4.4

下载成功之后首先便是编译

1 编译 ppp-2.4.4

一般都很好编过,只是可能会依赖libpcap-1.6.2.tar.gz  这个库,zlib 库。编译过程中如果出现 关于libcrypt.so这样的错误,就把你的编译工具目录下的/usr/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib/libcrypt.so 这个库复制到 /usr/local/lib/ 下即可。

编译成功后将编译生成的chat,pppd,等命令拷贝到板子文件系统的/usr/sbin目录下边去

2 编写拨号脚本

在板子文件系统/etc/ppp/peers目录下边创建三个文件如下

wcdma,chat-wcdma-connect,chat-wcdma-disconnect

wcdma配置文件内容

debug

nodetach

/dev/ttyUSB0

115200

usepeerdns

noauth

noipdefault

novj

novjccomp

noccp

defaultroute

ipcp-accept-local

ipcp-accept-remote

connect ‘/usr/sbin/chat -s -v -f /etc/ppp/peers/chat-wcdma-connect‘

disconnect ‘/usr/sbin/chat -s -v -f/etc/ppp/peers/chat-wcdma-disconnect‘

wcdma-chat-connect配置文件内容

TIMEOUT 5

ABORT ‘NO CARRIER‘

ABORT ‘ERROR‘

ABORT ‘NODIALTONE‘

ABORT ‘BUSY‘

ABORT ‘NO ANSWER‘

‘‘  \rAT

OK  \rATZ

OK \rAT+CGDCONT=1,"IP","3GNET",,0,0

OK-AT-OK ATDT*99#

CONNECT \d\c

wcdma-chat-disconnect配置文件内容

ABORT"ERROR"

ABORT "NODIALTONE"

SAY"\nSending break to the modem\n"

‘‘ "\K"

‘‘"+++ATH"

SAY"\nGoodbay\n"

创建好拨号脚本之后就是正式拨号了

pppd call wcdma&

加上&符号主要是因为拨号成功后,程序会一直执行不退出,所以采用后台运行的方式执行,pppd call wcdma是作用是建立协议,并生成网络接口ppp0。也可以修改WCDMA脚本#nodetach,再执行命令pppd call wcdma就可以在后台运行了。

如果出现以下现象:

表示拨号成功。

3、测试网络连通情况

Ping -I ppp0 www.baidu.com -c 5 -i 1   出现超时

Route查看路由表

默认网关是eth0,删除默认网关route del deflaut 。添加ppp0为默认网关 route add default dev ppp0。手工添加DNS echo "nameserver 123.123.123.124" > /etc/resolv.conf

Ping -I ppp0 www.baidu.com -c 5 -s 1

网络通信正常

五 、实现自动拨号

主要写了2个脚本文件,一个是配置脚本init.sh,内容如下:

echo "nameserver 123.123.123.124" > /etc/resolv.conf

route del default

route add default dev ppp0

ifconfig eth0 down

ifconfig eth0 hw ether 00:12:34:56:78:90

ifconfig eth0 up

另一个是自动拨号脚本pp.sh。内容如下:

dns1="61.135.169.121" #baidu

dns2="61.135.157.156" #qq

pppd call wcdma &

sleep 12

/root/init.sh

while true

do

ping -s 1 -c 5 $dns1    #|…去PING第一个DNS

if [ "$?" != "0" ]      #€|…假如PING不通

then

ping -s 1 -c 2 $dns2    #…去PING第二个DNS

if [ "$?" != "0" ]      #|…假如PING不通

then

killall pppd        #|…结束PPPD进程

pppd call wcdma &   #…再去拨号

sleep 12            #€|…等2s

else

sleep 5           ’

fi

else

sleep 120           # )

fi

done

有了这个脚本,就可以放心的上网了。

有些人还想实时获取拨号上网的信号强度。这里有2种方法。

1、通过microcom -s 115200 /dev/ttyUSB0  这种方式要用 Ctrl+x 来退出!

输入 at+csq

at+csq

+CSQ: 11,99

OK

可以看到信号强度是11。

2、还可以写个程序,通过ttyUSB2来发送 at+csq命令,注意这个命令要以\r\n结束,如下所示:

六 注释

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-19 21:48:06

华为3G模块拨号上网的相关文章

开发板 3G 网卡拨号上网

注意,其中的/dev/ttyACM0 是串口设备,后面描述. /etc/ppp/chat-wcdma #!/bin/sh # # This is part 2 of the ppp-on script. It will perform the connection # protocol for the desired connection. # exec /usr/sbin/chat -v \ ECHO ON \ ABORT 'BUSY' \ ABORT 'NO ANSWER' \ ABORT

Linux下3G脚本拨号上网(转)

Linux下3G脚本拨号上网 (2010-7-5 13:08) 既然是拨号上网,就不能不提到ppp(point-to-point protocol)协议.ppp协议提供了一种通过串行点对点联接传输数据报的方式.它由三部份组成:一种在串行封装数据报的方式,扩展联接控制协议LCP,和用来建立和配置不同网络层协议的家族网络控制协议NCP.封装方案由内核驱动代码来提供.pppd(ppp daemon)提供基本的LCP,认证支持,和建立和配置IP的网络控制协议NCP.一个ppp会话分为四个步骤:连接建立.

FL2440 3G上网卡拨号上网,并实现mdev自动挂载

___________________________________ 主机操作系统:Centos 6.5 交叉编译器环境:arm-linux-gcc-4.5.4 开发板平台: FL2440 Linux内核版本: 3.0 作者:songyong<[email protected]> ___________________________________ 一.配置内核支持3G驱动以及PPP协议 打开ppp相关配置: Device Drivers  ---> [*] Network devi

华为/中兴 3G 模块的调试

1 检查/etc/init.d/pppd『红颜色的使上电自动上网注册(如果没有红颜色的语句),请添加』 #!/bin/sh#DAEMON=/usr/sbin/pppdPIDFILE=/var/run/ppp0.pid # define the interface used for the connection#DAEMON_OPTS=ppp0DAEMON_OPTS=call wcdma case "${1}" in    start)        if [ -e $PIDFILE ]

2G、3G无线路由器拨号连接过程

无线MODEM是为数据通信的数字信号在具有有限带宽的模拟信道上进行无线传输而设计的,它一般由基带处理.调制解调.信号放大和滤波.均衡等几部分组成.无线MODEM又名"无线调制解调器",区别于传统modem之处在于调制后的信号是通过无线传输的.无线modem有2G和3G各种网络的,如GPRS.CDMA.EDGE.WCDMA.CDMA2000(EVDO).TD-SCDMA等. 无线MODEM一般常见的接口有RS232串行口.USB口和PC卡式接口.RS232串行口和USB口一般都是外置式,

在ARM-linux上实现4G模块PPP拨号上网【转】

本文转载自:http://blog.csdn.net/zqixiao_09/article/details/52540887 在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从一无所知到开发完成花了一周多.最后看到ARM板ping通www.baidu.com时甚是高兴,现将此过程整理如下.当然,除此之外要做的工作还有很多. 4G模块使用的SIMTECH 的SIM7100C,SIM7100C带有UART和USB接口,在考虑速度上我们使用USB接口和ARM进行通信.所以向Li

ARM+llinux系统移植3G拨号上网收发短信(一)【转】

本文转载自:http://blog.csdn.net/hanmengaidudu/article/details/17099737 一.      PPP移植 各项工作具体说明 向Linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板.当然如果之前已经移植好内核,那么只需要增加几个选项就可以,然后在编译内核就可以了,这个文档默认内核已经移植过,所以只讲与USB转串口驱动和PPP协议支持的几个选项. [[email protected] linux-3.

sim900GPRS模块ppp拨号上网

一:编辑Linux内核,使其支持PPP拨号上网 [[email protected] linux-3.0]$ make menuconfig Device dirver --->Network device *** CAIF transport drivers *** <*> PPP (point-to-point protocol) support [*] PPP multilink support (EXPERIMENTAL) [*] PPP filtering <*>

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.