3G模块在ARM开发板上实现ppp拨号上网
- 格式:doc
- 大小:408.50 KB
- 文档页数:14
3G模块在ARM开发板上实现ppp 拨号上网3G模块驱动运用开发总结一:开发环境简述内容说明3G模块华为EM770W(WCDMA)3G SIM卡中国联通3G卡(WO)嵌入式开发板友善之臂Mini2440核心CPU S3C2440嵌入式linux版本Linux-2.6.32.2主机开发环境VMWARE下安装的Red Hat5.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执行“pppd call wcdma”命令进行拨号,进行网络测试。
三:开发工作主要内容下面对开发工作进行进一步细化:1向linux内核添加3G模块的驱动(USB转串口的驱动)和ppp协议的支持,交叉编译并下载内核到开发板。
2交叉编译比好工作源代码ppp-2.4.4,得到pppd和chat3配置拨号的脚本文件4测试网络连接情况四:各项工作集体说明1.向linux内核添加3G模块的驱动(USB转串口的驱动)和ppp协议的支持,交叉编译并下载内核到开发板。
由于linux-2.6.32.2内核支持“USB driver for GSM and CDMA modems”,所以不需要修改代码,只修改内核配置即可。
编译前期做如下准备:(1)清除临时文件、中间文件和配置文件进入内核文件目录,执行命令:make distclean图1 执行make distclean命令(2)使用内核/arch/arm/configs目录下的mini2440-defconfig文件作为配置文件,将其拷贝为内核目录下的.config文件。
图2 将mini2440-defconfig作为配置文件(3)在终端输入:make menuconfig ARCH=arm,出现内核配置界面后选择:Device Drivers---→USB support---→<*>USB SerialConverter support--→[*]USB Generic Serial Driver<*>USB driver for GSM and CDMA modems具体步骤如下几幅图所示:图3 按“Enter”进入“Device Drivers”目录图4按“Enter”进入“USB support”目录图5 按“Enter”进入“USB SerialConverter support”目录图6 按“Y”将“USB Generic Serial Driver”编译进内核图7 按“Y”将“USB driver for GSM and CDMA modems”编译进内核到此3G模块驱动添加完成,下面进行ppp协议支持的添加(下面所示的几个选项必选)。
Device Drivers--→Network device support---→<*> PPP (point-to-point protocol support[*] PPP multilink support (EXPERIMENTAL<*> PPP suppo rt for async serial ports<*> PPP suppo rt for sync tty ports<*> PPP Deflat e compression<*> PPP BSD-C ompress compression具体步骤如下几图所示:图8 按“Enter”进入“Device Drivers”目录图9 按“Enter”进入“Network device support”目录图10选择ppp协议支持(之前所提的必选,这里全部选上)编译进内核完成这些步骤之后,可以进行内核的交叉编译,退出makemenuconfig,输入make zImage ARCH=armCROSS_COMPILE=arm-linux-,编译生成的内核映像文件位于当前内核源代码文件的/arch/arm/boot目录下,将生成的内核映像文件下载到板子上。
内核启动后,会在/dev目录下生成ppp设备节点。
如:ls /dev/ppp -lcrw-rw---- 1 root root 108,0 Jan 1 00:00 /dev/ppp内核启动后,在开发板USB HOST 口插上3G模块的USB线,会有打印信息输出:usb 1-2: new high speed USB device using atmel-ehci and address 4usb 1-2: configuration #1 chosen from 1 choiceoption 1-2:1.0: GSM modem (1-port converter detectedusb 1-2: GSM modem (1-port converter now attached to ttyUSB0option 1-2:1.1: GSM modem (1-port converter detectedusb 1-2: GSM modem (1-port converter now attached to ttyUSB1option 1-2:1.2: GSM modem (1-port converter detectedusb 1-2: GSM modem (1-port converter now attached to ttyUSB2查看设备节点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#make CC= 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# This is pppd script for China liantong # Usage: root>pppd call cdmahide-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-remotelocallockdumpnodetachuser "card"password "card"crtsctsremotename 3gpppipparam 3gpppusepeerdns2)wcdma-chat-connect配置文件内容ABORT "BUSY"ABORT "NO CARRIER"ABORT "NO DIALTONE"ABORT "ERROR"ABORT "NO ANSWER"TIMEOUT 120"" ATOK \rATZOK \rAT+CGDCONT=1,"IP","3gnet",,0,0OK-AT-OK ATDT*99#CONNECT \d\c3)wcdma-chat-disconnect配置文件内容ABORT "ERROR"ABORT "NO DIALTONE"SAY "\NSending break to the modem\n" ""\k"""+++ATH"SAY "\nGood bay\n"4)应用测试:(1)连接好硬件设备。
(2)执行pppd call wcdma,出现:图11 执行“pppd call wcdma”(3)通过PC机(XP操作系统)远程登录到开发板,执行ifconfig:图12 执行“ifconfig”若出现如上所示的类似信息,说明拨号成功。
打开开发板/etc目录下的resolv.c onf文件,将分配得到的两个DNS服务器地址:10.11.12.13和10.11.12.14添加到此文件中。
vi /etc/resolc.conf,加入内容:nameserver 10.11.12.13nameserver 10.11.12.14(4)ping外网测试输入命令:ping –I ppp0 210.32.200.129图13 ping IP地址输入命令:Ping –I ppp0 图14 ping网址(5)telnet测试输入命令:telnet 图15 telnet测试注意:在做的时候将ARM板子上的网线拔掉!。