3G模块驱动运用开发总结一:开发环境简述内容说明3G模块华为EM770W(WCDMA)3GSIM卡中国联通3G卡(WO)嵌入式开发板友善之臂Mini2440核心CPUS3C2440嵌入式linux版本Linux-2.6.32.2主机开发环境VMWARE下安装的RedHat5.0二:主要步骤1向linux内核中添加3G模块的驱动(USB转串口的驱动)和ppp协议的支持,重新编译下载内核。2对ppp-2.4.4源代码进行交叉编译。将拨号上网所需的两个应用程序pppd和chat拷贝到开发板/usr/sbin文件夹下,将改好的脚本文件wcdma、wcdma-chat-connect、wcdma-chat-disconnect存放在/etc/ppp/peers目录下。将含有域名解析服务器地址的文件resolv.conf拷贝到/etc目录下。3执行“pppdcallwcdma”命令进行拨号,进行网络测试。三:开发工作主要内容下面对开发工作进行进一步细化:1向linux内核添加3G模块的驱动(USB转串口的驱动)和ppp协议的支持,交叉编译并下载内核到开发板。2交叉编译比好工作源代码ppp-2.4.4,得到pppd和chat3配置拨号的脚本文件4测试网络连接情况四:各项工作集体说明1.向linux内核添加3G模块的驱动(USB转串口的驱动)和ppp协议的支持,交叉编译并下载内核到开发板。由于linux-2.6.32.2内核支持“USBdriverforGSMandCDMAmodems”,所以不需要修改代码,只修改内核配置即可。编译前期做如下准备:(1)清除临时文件、中间文件和配置文件进入内核文件目录,执行命令:makedistclean图1执行makedistclean命令(2)使用内核/arch/arm/configs目录下的mini2440-defconfig文件作为配置文件,将其拷贝为内核目录下的.config文件。图2将mini2440-defconfig作为配置文件(3)在终端输入:makemenuconfigARCH=arm,出现内核配置界面后选择:DeviceDrivers---→USBsupport---→*USBSerialConvertersupport--→[*]USBGenericSerialDriver*USBdriverforGSMandCDMAmodems具体步骤如下几幅图所示:图3按“Enter”进入“DeviceDrivers”目录图4按“Enter”进入“USBsupport”目录图5按“Enter”进入“USBSerialConvertersupport”目录图6按“Y”将“USBGenericSerialDriver”编译进内核图7按“Y”将“USBdriverforGSMandCDMAmodems”编译进内核到此3G模块驱动添加完成,下面进行ppp协议支持的添加(下面所示的几个选项必选)。DeviceDrivers--→Networkdevicesupport---→*PPP(point-to-pointprotocol)support[*]PPPmultilinksupport(EXPERIMENTAL)*PPPsupportforasyncserialports*PPPsupportforsyncttyports*PPPDeflatecompression*PPPBSD-Compresscompression具体步骤如下几图所示:图8按“Enter”进入“DeviceDrivers”目录图9按“Enter”进入“Networkdevicesupport”目录图10选择ppp协议支持(之前所提的必选,这里全部选上)编译进内核完成这些步骤之后,可以进行内核的交叉编译,退出makemenuconfig,输入makezImageARCH=armCROSS_COMPILE=arm-linux-,编译生成的内核映像文件位于当前内核源代码文件的/arch/arm/boot目录下,将生成的内核映像文件下载到板子上。内核启动后,会在/dev目录下生成ppp设备节点。如:ls/dev/ppp-lcrw-rw----1rootroot108,0Jan100:00/dev/ppp内核启动后,在开发板USBHOST口插上3G模块的USB线,会有打印信息输出:usb1-2:newhighspeedUSBdeviceusingatmel-ehciandaddress4usb1-2:configuration#1chosenfrom1choiceoption1-2:1.0:GSMmodem(1-port)converterdetectedusb1-2:GSMmodem(1-port)converternowattachedtottyUSB0option1-2:1.1:GSMmodem(1-port)converterdetectedusb1-2:GSMmodem(1-port)converternowattachedtottyUSB1option1-2:1.2:GSMmodem(1-port)converterdetectedusb1-2:GSMmodem(1-port)converternowattachedtottyUSB2查看设备节点ls/dev/ttyUSB*,会发现USB虚拟成三串口,在文件系统节点如下/dev/ttyUSB0,/dev/ttyUSB1,/dev/ttyUSB2,这说明3G模块驱动已经正确添加到内核当中。我们跟3G模块交互主要用的设备节点是/dev/ttyUSB0。2.交叉编译好工作源代码ppp-2.4.4,得到pppd和chat解压源代码包,进入目录,进行交叉编译,这里所用的板子的交叉编译器是:#cd/home/ppp-2.4.4#./configure#makeCC=arm-linux-gcc拨号所用到的程序就是ppp-2.4.4/pppd下的pppd和ppp-2.4.4/chat下的chat可执行程序,将交叉编译出来的这两个应用程序拷贝到开发板/usr/sbin目录下,更改其属性为可执行文件。3.配置拨号的脚文件拨号上网需要的配置文件有3个:wcdma,wcdma-chat-connect,wcdma-chat-disconnect(存放位置/etc/ppp/peers)。1)wcdma配置文件内容#/etc/ppp/peers/cdma#ThisispppdscriptforChinaliantong#Usage:rootpppdcallcdmahide-passwordnoauthconnect'/usr/sbin/chat-s-v-f/etc/ppp/peers/wcdma-chat-connect'disconnect'/usr/sbin/chat-s-v-f/etc/ppp/peers/wcdma-chat-disconnect'debug/dev/ttyUSB0115200defaultroutenoipdefaultnovjnovjccompnoccpipcp-accept-localipcp-accept-remotelocallockdumpnodetachusercardpasswordcardcrtsctsremotename3gpppipparam3gpppusepeerdns2)wcdma-chat-connect配置文件内容ABORTBUSYABORTNOCARRIERABORTNODIALTONEABORTERRORABORTNOANSWERTIMEOUT120ATOK\rATZOK\rAT+CGDCONT=1,IP,3gnet,,0,0OK-AT-OKATDT*99#CONNECT\d\c3)wcdma-chat-disconnect配置文件内容ABORTERRORABORTNODIALTONESAY\NSendingbreaktothemodem\n\k+++ATHSAY\nGoodbay\n4)应用测试:(1)连接好硬件设备。(2)执行pppdcallwcdma,出现:图11执行“pppdcallwcdma”(3)通过PC机(XP操作系统)远程登录到开发板,执行ifconfig:图12执行“ifconfig”若出现如上所示的类似信息,说明拨号成功。打开开发板/etc目录下的resolv.conf文件,将分配得到的两个DNS服务器地址:10.11.12.13和10.11.12.14添加到此文件中。vi/etc/resolc.conf,加入内容:nameserver10.11.12.13nameserver10.11.12.14(4)ping外网测试输入命令:ping–Ippp0210.32.200.129图13pingIP地址输入命令:Ping–Ippp0网址(5)telnet测试输入命令:telnetbbs.newsmth.net图15telnet测试注意:在做的时候将ARM板子上的网线拔掉!