您的位置:首页 > 运维架构 > Linux

3G模块(U6300)linux下拨号上网

2016-03-09 15:30 567 查看
U6300支持linux、Android系列嵌入式系统。作为linux内核系统,系统均会自带驱动usbserial,就没有提供专门的U6300V的USB驱动,都是加载系统的usbserial以实现对U6300V模块USB的加载,关键是找到usbserial.ko这个驱动文件在系统中的目录,将PID和VID加载系统。

U6300V模块默认的VID和PID是:VID_1C9E&PID_9603。

1. Linux系统加载U6300V的USB驱动过程

首先需要确认usbserial.ko这个驱动文件在当前应用端的Linux操作系统中。Linux 2.4.x和linux2.6.x系统均有usbserial.ko,Ubuntu部分版本没有usbserial.ko驱动文件,需要重新编译生成usbserial.ko驱动。

以PC下linux2.6.x加载过程为例,加载驱动步骤:

1) 硬件连接正常,模块可开机;

2) 加载系统的USB文件系统,使用如下指令:

#mount -t usbfs none /proc/bus/usb

3) 查看系统当前USB设备状态,使用如下指令:

#cat /proc/bus/us/devices





如果U6300V已经开机,USB准备好,将会看到Vendor=1c90 ProdID=9603 Rev=0.00这个返回,表明已识别了U6300V的USB端口。

U6300V的3个串口也已经识别,如蓝色字体标识(顺序按端口号升序为Diag,AT,Modem)。

4) 安装U6300V的USB驱动

#modprobe usbserial vendor=0x1c93 product=0x9603

5) 再查看系统当前USB设备状态

#cat /proc/bus/usb/devices

返回如下结果:



表明U6300V的USB驱动已经安装成功,请留意每个串口usbserial_generic状态,不同于未加载(none)。

6) 查看USB的端口,使用的指令是:

#cd /dev

#ls ttyUSB*

如果端口已经识别,将会返回显示ttyUSB0~ttyUSB2三个设备。

注:U6300V三个串口中AT(ttyUSB1),Modem(ttyUSB2)可以发AT命令,Diag(ttyUSB0)不能发AT指令。

Diag:Diagnostic interface诊断、诊断程序。

AT:Application interface

2. Linux系统下AT交互

Minicom配置端口/dev/ttyUSB1.

输入AT指令(打开回显):

ATE

系统正常,返回结果:

OK

输入指令(查询版本信息):

AT+LCTSW

返回U6300V的Firmware版本信息:

SoftwareVersion:LWA0003.2.3_MG31

InnerVersion:LWA003_240085_6.0.4W1011_EFS1.0

OK

输入如下指令(查询信号):

AT+CSQ

将会得到如下信号强度和误码率信息:

+CSQ:20,74

OK

输入如下指令(注册状态):

AT+CREG?

将会得到如下注册信息:

+CREG:0,1

OK

输入如下指令(网络运营商信息):

AT+COPS?

将会得到如下运营商信息(不同运营商返回字段不同。以中国联通USIMka为例):

+COPS:0,0”CHN-CUGSM”,2

OK

3. Linux系统U6300V拨号上网过程

1) 重复USB加载过程和AT交互流程。确保U6300V正确注册到网络,信号强度CSQ返回的第一个参数在13以上;

2) 确保linux系统带有pppd应用程序,如果系统没有pppd,请安装kppp,里面带有pppd应用程序;

3) 建立拨号配置文件/etc/ppp/chat/gprs-connect-chat----脚本内容可不同

在其中加入如下配置:

TIMEOUT 15

ABORT “DELAYED”

ABORT “BUSY”

ABORT “ERROR”

ABORT “NO DIALTONE”

TIMEOUT 40

“ \rAT

OK ATS0=0

OK ATE0V1

OK AT+CGDCONT=1,”IP”,”3GNET”

OK ATDT*99***1#

CONNECT “

注:插入不同运营商的卡,AT+CGDCONT=1,”IP”,”3GNET”最后一个参数不同,请咨询当地的运营商获取APN。

4) 修改pppd的配置文件/etc/ppp/options (可省略)

找到auth字样的行然后将其改成#auth,这样在拨号过程中就不会提示需要身份验证;

5) 建立拨号配置文件/etc/ppp/peer/gprs-----脚本内容可不同

在其中加入配置如下(必须指定Modem口是ttyUSB2):

#Usage:root>pppd call gprs

/dev/ttyUSB2

9600

crtscts

modem

#noauth

debug

nodetach

#hide-password

usepeerdns

noipdefault

defaultroute

user “3gnet”

0.0.0.0:0.0.0.0

ipcp-accept-local

ipcp-accept-remote

#lcp-echo-failure 12

#lcp-echo-interval 3

#noccp

#novj

#novjccomp

#persist

connect ‘/usr/sbin/chat –s –v –f /etc/ppp/chat/gprs-connect-chat’

6) 拨号上网,使用如下指令:

#pppd call gprs

#ifconfig

如果出现如下回显,多出一个ppp0网口,说明拨号已经成功:



7) 测试连接Internet

#ping 119.75.217.56

测试是否ping通baidu的IP地址。如果ping不通,需要给本机加条路由,使用如下指令:

#route add default gw 10.64.64.64

注:10.64.64.64:运营商的ip地址,即上述红色字体部分。

如果IP地址能ping通,而ping域名不通,需要添加DNS到/etc/resolv.conf。

8) linux断开网路(必须kill当前的pppd,才能进行下一次pppd),需要kill pppd进程(这个过程需要一段时间,中间可能无响应),使用如下指令:

#killall pppd

注:切换波特率的指令是:

AT+IPR=<value>

<value>:

300,600,1200,2400,4800,9600,19200,38400,57600,115200,230400

注意:默认的波特率是115200,且Data Bits=8,Parity=None,Stop Bits=1,Flow Control=None.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: