Huawei E180 3G模块驱动应用
(2011-12-12 15:48:30) 转载▼ 标签: 杂谈 分类: 嵌入式技术 一、环境 3G modem: Huawei E180(W
(2011-12-12 15:48:30)
转载▼
一、环境
| 3G modem: | Huawei E180(WCDMA) |
| 3G SIM Card: | China Unicom 3G Card(WO) |
| CPU/Board | FSL P1022DS RevC board |
| Linux: | Linux-2.6.35 |
二、步骤
| 1. | 向linux内核中添加3G模块的驱动(USB转串口的驱动)和PPP协议的支持 |
| 2. | 下载ppp-2.4.5源码并进行交叉编译(toolchian:powerpc-linux-)。 将拨号上网所需的两个应用程序pppd和chat拷贝到开发板/usr/sbin文件夹下。 将改好的脚本文件ppp-on,ppp-on-dialer存放在/etc/ppp目录下。 将含有域名解析服务器地址的文件resolv.conf拷贝到/etc目录下。 |
| 3. | 进入 /etc/ppp 目录 ,执行 ./ppp-on。 进行网络测试 |
三、具体工作
1. 向linux内核添加3G模块的驱动(USB转串口的驱动)
由于Linux-2.6.35内核支持“USBdriver for GSM and CDMA modems”,所以只需内核配置即可:
Device Drivers --->
<*>
USBSerial Converter support
--->
<*>
USBdriver for GSM and CDMA modems
内核启动后,在P1022DSUSB HOST1口插上3G模块,打印信息如下:
| usb 1-1: new high speed USB device using fsl-ehci and address3 usb 1-1: New USB device found, idVendor=12d1,idProduct=1001 usb 1-1: New USB device strings: Mfr=3, Product=2,SerialNumber=0 usb 1-1: Product: HUAWEI Mobile usb 1-1: Manufacturer: HUAWEI Technology option 1-1:1.0: GSM modem (1-port) converter detected usb 1-1: GSM modem (1-port) converter now attached tottyUSB0 option 1-1:1.1: GSM modem (1-port) converter detected usb 1-1: GSM modem (1-port) converter now attached tottyUSB1 option 1-1:1.2: GSM modem (1-port) converter detected usb 1-1: GSM modem (1-port) converter now attached tottyUSB2 scsi7 : usb-storage 1-1:1.3 scsi8 : usb-storage 1-1:1.4 scsi 7:0:0:0: CD-ROM HUAWEI MassStorage 2.31 PQ: 0 ANSI: 2 sr0: scsi-1 drive Uniform CD-ROM driver Revision: 3.20 sr 7:0:0:0: Attached scsi generic sg1 type 5 scsi 8:0:0:0: Direct-Access HUAWEI SDStorage 2.31 PQ: 0 ANSI: 2 sd 8:0:0:0: Attached scsi generic sg2 type 0 sd 8:0:0:0: [sdb] Attached SCSI removabledisk |
查看设备节点ls/dev/tty*, 会发现USB生成三个串口设备:/dev/ttyUSB0,/dev/ttyUSB1, /dev/ttyUSB2 ,这说明3G模块驱动已经正确添加到内核当中,与3G模块交互主要用的设备节点是/dev/ttyUSB0。
2. 向Linux内核中添加PPP协议的支持
Device Drivers ---> Net Device support
选中以下项:
| <*> PPP (point-to-point protocol) support [*] PPP multilink support (EXPERIMENTAL) <*> PPP support for async serial ports <*> PPP support for sync tty ports <*> PPP Deflate compression <*> PPP BSD-Compress compression |
内核运行后,会在/dev/目录下产生ppp设备节点
| ls /dev/ppp -l crw-rw---- 1 root root 108, 0Jan 1 00:00/dev/ppp |
3. 交叉编译拨号上网需要的拨号工具pppd和chat
下载 ppp-2.4.5 源码包 , 交叉编译生成拨号所需的 pppd 和 chat 这两个程序 , 解压源代码包 , 进入目录 , 进行交叉编译 , 这里所用的板子的交叉编译器是 powerpc-linux- | #cd ppp-2.4.5 #./configure #make CC= /opt/freescale/usr/local/gcc-4.5.55-eglibc-2.11.55/powerpc-linux-gnu/bin/powerpc-linux-gnu-gcc |
拨号所用到的程序就是 ppp-2.4.5/pppd/ 下的 pppd, 和 ppp-2.4.5/chat/ 下的 chat 程序。 将交叉编译出来的这两个应用程序 拷贝到开发板/usr/sbin文件夹下,更改其属性为可执行文件。
4. 配置拨号脚本文件
拨号上网需要的两个配置文件ppp-on,ppp-on-dialer (存放位置/etc/ppp)。
1) ppp-on配置文件的内容
| # These are the parameters. Change as needed. TELEPHONE=*99# # The telephone number for the connection ACCOUNT= # The account name for logon (as in 'George Burns') PASSWORD= # The password for this account (and 'Gracie Allen') LOCAL_IP=0.0.0.0 # Local IP address ifknown. Dynamic = 0.0.0.0 REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally0.0.0.0 NETMASK=255.255.255.0 #The proper netmask if needed DIALER_SCRIPT=/etc/ppp/ppp-on-dialer exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyUSB0 115200\ asyncmap 20A0000 escape FF kdebug 4 $LOCAL_IP:$REMOTE_IP\ noipdefault netmask $NETMASK defaultroute connect$DIALER_SCRIPT |
2) ppp-on-dialer配置文件的内容:
| #!/bin/sh exec chat -v \ TIMEOUT 5 \ ABORT "BUSY" \ ABORT "ERROR" \ ABORT "NOCARRIER" \ '' \rAT \ OK 'AT+CGDCONT=1,"IP","3GNET"' \ OK 'ATDT*99#' \ CONNECT '' \ |
3) 设置正确的域名解析服务器地址
联通北京地区3G域名解析服务器地址是202.106.195.68和202.106.46.151,将他们加入开发板文件/etc/resolv.conf中:
| nameserver 202.106.195.68 nameserver 202.106.46.151 |
5. 应用测试
1) 连接好Huawei E180 3Gmodem
2)进入/etc/ppp目录,执行./ppp-on
3) 执行ifconfig可以看到下列信息
| ppp0 Link encap:Point-to-Point Protocol inet addr:172.17.163.57 P-t-P:10.64.64.64 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:158 (158.0 b) TX bytes:209 (209.0b) |
从而可以知道本地IP地址是172.17.163.57。
4) 可以ping外网地址,如百度
ping 61.135.169.105
ping www.baidu.com
5)也可以从外网上下载任何资源,如下载u-boot源码
wgetftp://ftp.denx.de/pub/u-boot/u-boot-1.3.4.tar.bz2
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!