ZTE AC582上网卡Linux下拨号之 所感--文档





中兴通讯MC8630模块linux环境使用手册

(电信数据卡终端版本)







版 本V1.0








中兴通讯股份有限公司




版权声明

Copyright© 2008 by ZTE Corporation

本用户手册之版权属于中兴通讯股份有限公司所有,并依法受《中华人民共和国著作权法》及有关法律的保护。

未经中兴通讯股份有限公司许可,任何人不得摘录、复制、发行、汇编或者以各种方式(电子版、印刷品等)向公众传播本手册的任何内容。对于有损版权人利益的行为,公司将依法追究侵权人的责任。

本公司保留在不预先通知的情况下,对此手册中描述的产品进行修改和改进的权利;同时保留随时修订或收回本手册的权利。

本用户手册中如有文字不明之处,请您及时向本公司或者代理商、销售商咨询。



20082月第4.9-TY



中兴通讯拥有雄厚的技术实力,可为1x/evdogsm/gprs/wcdma等通讯模块客户提供全方位的技术支持,支持内容包括:

1、提供完善的技术资料;

2、提供可用于研发、测试、生产、售后等环节的开发板;

3、提供原理图、PCB、测试方案等评审和技术会诊;

4、提供测试环境。


中兴通讯为客户提供现场、电话、网站、即时通讯、E-MAIL等多种支持方式。


中兴通讯模块网站module.ztemt.com.cn,提供相关的行业信息和模块相关技术资料。授权的模块客户可以在网站下载模块最新的相关技术资料。如果您有更多的需求,可发送邮件至module@zte.com.cn。您还可以拨打技术支持热线:0755-86379174


前言

概述

本文档适用的产品是MC8630模块。本文档通过对MC8630模块的linux使用环境所遇到的问题进行了说明,用以指导用户对该模块进行在linux下的使用,包括驱动设计,拨号上网,以及其他一些问题,

阅读对象

本文档主要适用于以下工程师:

  • 系统设计工程师

  • 软件工程师

  • 测试工程师


内容简介

本文档包含5个部分,内容如下:

章节

内容

1MC8630概述

MC8630Evdo模块简单介绍,MC8630支持的linux类型和版本

2MC8630Linux驱动

主要介绍MC8630linux驱动编译,配置方面问题

3MC8630Linux下使用AT指令

MC8630Linux下如何使用AT指令

4MC8630Linux下拨号问题

介绍linux下拨号常见问题

5MC8630常见问题说明

主要介绍MC8630使用中常见问题



文档版本 V1.0(2009-02-26)

第一次正式发布。

目录


MC8630概述

1xEV-DO是一种针对分组数据业务进行优化的、高频谱利用率的CDMA无线通信技术,可在1.25MHz带宽内提供峰值速率达3.1Mbps的高速数据传输服务,随着中国3G网络的发展,越来越多的高速数据应用需求由此而产生,MC8630就是一款支持1x/EVDORev-A的模块终端,可支持话音,短信,高速数据,支持的速率,下载3.1Mbps,上传1.8Mbps,模块应用领域很广泛,可用在电信运营商,交通领域,金融领域,电力领域,科教文卫领域,公用领域等,主要的应用包括数据卡,无线路由器,视频监控,无线POS机,手机,车载终端定位,无线数传终端等

模块是一种半成品的产品,一般都要基于模块进行二次开发,二次开发的平台,主要应用领域是在嵌入式领域,包括linuxwince,以及其他手机操作系统,而linux是应用最为广泛的操作系统,MC8630完全支持多种类型的linux系统

目前MC8630支持的linux内核包括2.6.18,2.6.21,2.6.27,2.6.29等,2.4内核的linux不支持,支持的linux系统类型包括fedora,ubuntu,redhat等,我们会提供以上内核的linux参考驱动


MC8630 linxu驱动

编译驱动需要注意的问题

  1. 首先在编译驱动前,确认编译驱动和编译内核的编译环境相同,也就是需要相同版本号的交叉编译工具,比如arm-linux-gcc,arm-linux-ld,这样编译出来的驱动才能跟内核配合起来,一起工作,有些客户内核是别人开发的,如果要用我们提供的驱动,就需要建立跟内核一样的环境,然后编译驱动,驱动才可以正常使用;

  2. 编译驱动时的准备工作,Makefile文件配置,包括,内核源码目录,驱动源码,使用的编译工具,都需要配置,如下


下载内核源码,置于一编译目录,目录可自己选择,一般可放置/usr/src/linux

makemenuconfig//配置内核选项

makemodules_prepare//为编译驱动模块做准备

修改makefile文件

KERNELDIR= usr/src/linux-2.6.18/ //内核源码目录

makeCC=arm-linux-gcc LD=arm-linux-ld //使用编译工具

make

编译之后,生成ztemt.ko

Insmodztemt.ko之后,会生成设备节点在/dev/ttyUSB0-ttyUSB3,如下图




常见驱动问题及解决办法



MC8630Linux下使用AT指令

如果在linux下执行AT指令,需要串口工具支持,一般的linux系统中会有串口工具minicom,但在嵌入式系统中有可能被裁减掉,需要移植,或者自己编写的处理AT指令的程序,也就是读写AT指令的程序,以下为minicom使用

Minicom配置,ctrl-A,按键Z

按键‘O’serial port setup

配置完成,执行AT指令

MC8630Linux下的拨号问题

PClinux下面,一般都有默认配置好的拨号界面或者系统自带的拨号工具,而一般的模块用于嵌入式linux的开发,在内核支持PPP情况下,需要移植拨号工具,目前能够支持的拨号工具有两种,一种是wvdial,一种是chat,都需要先移植这两个软件,在嵌入式下,wvdial的移植难度较大,需要的库文件较多,而chat相对简单,但是配置正好相反,wvdial配置只需要一个文件,而chat则需要四个


Wvdial拨号

使用起来较为方便,只需要配置一个文件wvdial.conf,具体配置如下


[DialerEVDO]

Modem= /dev/ttyUSB0 //设置modem口设备节点

Init2= ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 //modem初始化指令

ModemType = Analog Modem

Phone=#777//拨号号码

#ISDN= 0

Username=card//帐号

Init1=ATZ

Password=card //密码

Baud=460800

PPPPPath= /usr/sbin/pppd

NewPPPD= 1

StupidMode = 1 //掉线之后,自动重拨

Tonline= 0


wvdial拨号格式:wvdialEVDO

拨号之后,如下图所示,获取到IP地址,以及DNS地址,可直接使用网络

Chat拨号

移植较为简单,一般默认的系统会带chat工具,需要四个配置文件,包括

pap_secrets,chap_secrets(帐号密码配置)peers-evdo(拨号脚本),chat-evdochat配置)


peers-evdo

拨号modem配置文件

#/etc/ppp/peers/evdo //文件存放路径

#this is ppp script for use china telcom's CDMA data service

ttyUSB0

115200

nocrtscts

connect'/usr/sbin/chat -v -f /etc/ppp/chat/evdo'

auth-chap//noauth 根据选择的鉴权方式,到chap-secrets或者pap-secrets中提取密码

debug

nodetach

ipcp-accept-local

ipcp-accept-remote

defaultroute

usercard


chat-evdo

chat拨号脚本设置,以及错误处理脚本

#chat-evdo

#/etc/ppp/chat/evdo //文件存放路径

#this is the chat script for china telcom

ABORT"NO CARRIER"

ABORT"NO DIALTONE"

ABORT"ERROR"

ABORT"NO ANSWER"

ABORT"BUSY"

TIMEOUT120 //一般注意超时时间不要设置太短

""at

OKatdt#777 //拨号号码

CONNECT


Pap-secrets

文件中设置PAP鉴权需要的用户名和密码,认证服务器,可以设置多个帐号及认证的服务器

#/etc/ppp/pap-secrets

#Secrets for authentication using PAP


#client server secret IP addresses

card * card

ctnet@mycdma.cn * vnet.mobi


chap-secrets

文件中设置chap鉴权中使用的用户名密码,认证服务器,DNS地址

#/etc/ppp/chap-secrets

#Secrets for authentication using CHAP

#client server secret IP addresses

card * card


chat拨号格式:pppdcall evdo


拨号常见问题

问:模块在Linux下的拨号问题

答:Linux拨号需要Linux内核支持PPP(尤其在编译内核的时候,注意PPP的选项,比如PPP头压缩等),

另外,拨号需要Linux的拨号工具支持,比如wvdial,KPPP,,我们提供wvdial的拨号配置文件,文件中包含拨号的端口(modem)modem的初始化选项,拨号的帐号,密码,以及其他一些选项,root身份执行wvdial即可,比如在unbuntu下,执行 sudowvdial即可拨号

KPPP是一种界面拨号工具,用起来更加方便,用户可以自行配置,windows类似


问:模块在拨号之后,一直出现乱码,而不拨正常拨上网络的问题

答:dm8c710m(M)版本存在此问题,其他版本没有,由于模块没有上报CONNECT导致,模块升级即可解决


问:模块确认在windows下可以正常拨号,在Linux拨号出现问题

答:首先确认模块在Linux下的驱动正常,可以执行AT指令,并且有信号,其次确认拨号脚本配置正确,特别是拨号端口,帐号,密码等,再次确认内核是否支持PPP,一般问题都是由驱动问题,就是脚本配置问题,内核配置问题导致,如果遇到问题,也可以在Linux.org,其他的Linux论坛中都可以找到答案或者百度中找提示信息


问:在linux下拨号的时候,一拨就会断掉

-->Starting pppd at Fri Feb 21 07:01:32 2003
--> pid of pppd:5565
--> Disconnecting at Fri Feb 21 07:01:36 2003
-->The PPP daemon has died: Authentication error.
--> We failed toauthenticate ourselves to the peer.
--> Maybe bad account orpassword? (exit code = 19)
--> man pppd explains pppd errorcodes in more detail.
--> I guess that's it for now,exiting
--> The PPP daemon has died. (exit code = 19)

答:原因可能是编译内核时,没有选择PPP头压缩


问:发送 lcp超时

答:在pppd+chat模式下,需要四个文件,每个文件的作用不同,文件配置有问题

/etc/ppp/pap_secrets, pap 拨号帐号密码所在文件

/etc/ppp/chap-secrets, chap拨号帐号密码所在文件

/etc/ppp/chat/evdo, chat的脚本,错误处理脚本

/etc/ppp/peers/evdo 拨号的配置选项,包括拨号端口,波特率,使用何种鉴权

pppd+wvdial模式,需要wvdial.conf配置文件,里面包括端口,波特率,账号密码,modem的初始化指令

问:以下现象什么原因?

[root@localhost/]# pppd call evdo

pppd:The remote system is required to authenticate itself

pppd:but I couldn't find any suitable secret (password) for it to use todo so.

pppd:(None of the available passwords would let it use an IP address.)

答:拨号的帐号密码不对,或者鉴权方式选择不对,鉴权方式选择为noauth

问:以下现象什么原因?

Aug 7 14:35:06 davinci local2.info chat[800]: alarm

Aug 7 14:35:06 davinci local2.info chat[800]: Failed

Aug 7 14:35:06 davinci daemon.err pppd[794]: Connect script failed

Aug 7 14:35:07 davinci daemon.info pppd[794]: Exit.

答:脚本设置有问题,请按照提供的参考方式设置

MC8630常见使用问题说明

问:为什么模块不能正确识别

答:请正确安装windows的驱动和linux的驱动,并且插入驱动,模块才能正常使用,正确识别之后,会出现一个modem口和三个其他端口,如下图所示


Windows


Linux

问:模块在windows下的驱动安装问题

答:请按照驱动安装的提示,插入设备,建议不要提前插入设备,装完驱动,重起一下模块就可以正常使用了


问:为什么模块AT不通

答:MC8630提供两个端口,可以使用AT指令,分别为modem口和SERVICE口,请正确选择端口,使用AT指令,AT指令请参考提供的指令集


问:为什么模块不能拨打电话

答:请检查UIM卡是否正常插入,UIM卡是否有钱?拨打普通的电话需要UIM卡支持,紧急电话比如120119110等,不需要UIM卡,就可以拨打


:为什么电话接通后,听不到对方的声音

:模块分为两种模式,PC语音模式,耳机模式,通过at^cvoice可切换,请查看AT指令集

PC语音模式,需要从PC输出输入声音,需要通过PCUI来配合

耳机模式,需要从用户的设备上,MIC/耳机接口

在通话过程中,用户觉得音量不合适,可以通过at+clvl进行调节


问:为什么模块不能收发短信

答:请检查UIM卡是否正常,没有UIM卡的情况下,不能收发短信,收发短信的过程中,请按照电信发布的数据卡AT指令集来操作


问:为什么我连接不上EVDO1X网络?

答:可能有以下原因:

  1. 请检查UIM卡是否欠费:请拨打电信10000查询

  2. 请检查是否正确插入UIM卡:(可通过at^sysinfo指令查看UIM卡的状态2,3,0,8,1(255),如果最后一位为1的话,说明UIM卡识别正常,如果是255,则说明没有正确识别到卡)

  3. 是否正常插入模块,模块是否可以正常运行:通过运行AT指令来查询模块是否工作正常,如果有正常的回应,则说明模块工作正常

  4. 环境中是否有3G1X网络信号:可通过at+csq显示1x信号;at^hdrcsq显示EVDO信号,如果没有信号,请检查天线是否接好,(由于模块写了默认频点,所以在不插入UIM卡的情况下,也会有EVDO信号)

  5. CDMA接入号与密码设置是否正确

中国电信的EVDO网络,接入号为#777,用户名为ctnet@mycdma.cn,密码为vnet.mobi

中国电信的1X网络,接入号为#777,用户名为:card,密码为:card

目前card,card也可以上EVDO网络,但在电信内部有区分这两种帐户

  1. EVDOuim卡的鉴权:首先确认UIM卡支持EVDO,如果是老卡,需要升级,请按照各地电信的规范操作,如果是新的EVDO卡,直接就可以使用,新EVDO卡使用MD5鉴权算法或是CAVE,老卡使用CAVE算法


问:为什么模块没有EVDO信号,只有1x信号?

答:首先确认所处环境是否覆盖了EVDO网络,其次确认UIM卡是否支持UIM,然后确认模块的模式是否为1xonly?(通过AT指令at^prefmode来查看,

如果为2,表示为1xonly

如果为4,表示为EVDO模式

如果为8,表示为混合模式,在混合模式下,支持EVDO1x两种模式,自适应于两种模式,进行数据业务时,优先选择EVDO模式)

默认选择为混合模式,建议用户不要修改


:为什么在没有UIM卡的情况下,有信号,在插入UIM卡之后,反而没信号了呢?

:UIM卡没有被正确识别或者UIM卡的初始化有问题,可通过指令at^sysinfo来查看,如果最后一位为255,则表示UIM卡没有正确识别,如果为1,则表示识别正常,

如果出现不能识别的情况,请检查UIM卡插座,或者用另一设备来进行对比UIM卡是否正常,在没插卡的情况下,由于设置了默认频点,所以会有信号


问:关于模块升级的问题

答:请参照模块的升级文档操作,升级之后,导入模块部分工作参数,确保部分参数的准确,具体请参照升级文档


MC8630Linux环境使用问题说明

问:Linux环境主要注意那些问题

答:Linux的内核版本,模块的Linux驱动,Linux环境下串口操作,Linux环境下的拨号上网


问:模块适用于那些Linux环境

答:目前在Fedora,Ubuntu,Redhat等不同的Linux下下都可以使用,不同的平台下,操作可能稍微不同


问:insmod驱动后没有设备名出现

答:insmodztemt.ko,

lsmod|grep ztemt 查看驱动的加载情况


问:编译驱动时的问题,编译之后无法使用

答:在驱动的makefile文件中选择KERNELDIR为内核源码所在目录,编译驱动时的源码内核要与目标环境内核相同,编译内核的编译器要与编译驱动模块的编译器相同


问:模块现在支持那些版本内核

答:基本上所有版本的linux内核都支持,2.6.18,2.6.21,2.6.27,2.6.29等,除了2.4内核



问:模块驱动问题

答:目前提供2.6.18及以上内核的驱动,Linux系统默认的USB驱动也可以用,低内核版本的驱动,需要用户按照参考驱动或默认的USB驱动,自行修改


问:模块在Linux的识别问题

答:模块在Linux下,正常识别后会出现四个端口,分别为ttyUSB0,ttyUSB1,ttyUSB2,ttyUSB3,其中ttyUSB0为模块的modem口,ttyUSB1为模块的service口,这两个端口,可以使用AT指令


问:模块在Linux环境下使用AT指令的问题

答:可以使用Linux下面的串口工具,比如Minicom,如果要使用Minicom,则需要安装此工具




问题:插入设备后,可以识别出来是串口设备,但是没有找到对应的驱动来驱动设备,也就是表现为没有设备节点,

答案:解决办法:在启动时候加入menu.lst中加入usbserialvendor=0x19d2, product=0xfffe,或者modeprobeusbserial vendor=0x19d2 product=0xfffe


问题:在linux下使用MC8630的时候,发现速率受限

答案:如果采用linux默认的usbserial驱动,MC8630也可以正常使用,只是usbserial针对低速设备,使用的缓冲区很小,速率可能会受限,速率不能超过62KB,需要修改缓冲区大小,使用本司提供驱动不存在此问题,客户出现过此问题,下载速率只能达到480kbps






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值