注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

守望

路越远,心越近。有多远,走多远!

 
 
 

日志

 
 

嵌入式Linux下3G无线上网卡的驱动【DM365+EC189】【转】  

2011-11-12 21:46:32|  分类: Linux系统 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
环境:
硬件:合众达DVS365开发板,芯片DaVinci DM365.电信华为EC189的3G无线上网卡。
软件:TI定制的嵌入式arm-linux,内核版本2.6.18.

简介:
由于3G无线上网卡工作模式相同,故其移植也大多雷同,故本次开发同样适用于其
他嵌入式开发板,如DM6446,ARM等等。同样,也适用于其他联通、移动或电信的
3G上网卡,尤其是华为的上网卡,如最常用的华为E160, E160G, E169, E180, 
E230, E270(+), E280, E630, E870, E1550, E1612, E1662, E1690, E1692, 
、E1750, E1752, EC168C, K3765, K4505, K4605, MTE WM610, R201, K4605, 
K3765, K4505。中兴的ZTE MF620,MF622等等。

其他支持的上网卡型号参见:http://www.draisberghof.de/usb_modeswitch/

建议:现在PC机上安装usb_modeswitch和libusb,首先确保PC上的linux能够顺利
拨号,再将其移植到开发板上。

内核:
需要有以下模块:option usbserial usbstorage
主要是要在编译内核的时候选中
Device Drivers
=====USB Support
======USB Serial Converter Support
=========USB Serial Converter Support(选中)
=========USB Generic Serial Driver
否则软件pppd执行的时候可能会失败。
#make modules                       //编译外挂模块
#make modules_install            //安装模块
模块编译完后应将其复制到开发板上,并执行以下命令,否则会报找不到modules.dep
#/sbin/depmod –a                    //创建模块的链接
软件3个:libusb、usb_modeswitch、pppd(含chat)和1个数据包(纯文本):usb-modeswitch-data
libusb源码下载:http://sourceforge.net/projects/libusb/files/libusb-1.0/
usb_modeswitcch下载:http://www.draisberghof.de/usb_modeswitch/
usb-modeswitch-data:http://www.draisberghof.de/usb_modeswitch/   这个数据包包含了
usb_modeswitch所有支持的3G上网卡的配置文件,对于本次开发,取出其中文件名为12d1:1446
的文本文件即可。

基本步骤:
1.在开发板上USB口插入3G上网卡,注意DVS365开发板要短接J1 2和3管脚才启用USB host模式,
  否则USB不供电。
2.在开发板上输入lsusb会出现以下结果,说明开发板与3G上网卡硬件物理上连接成功,
  记下12d1:1446这个数字,后边用。
  antique@dm365:~# lsusb
  Bus 004 Device 002: ID 12d1:1446 HUAWEI XXXX(省略若干)
3.在主机上交叉编译usb_modeswitch,因为其要使用libusb,故也要交叉编译libusb。(见后文)
4.将主机交叉编译产生的usb_modeswitch单文件、lib文件夹、12d1:1446文件复制到开发
  板/home目录下上。
5.执行usb_modeswitch将3G上网卡U盘模式转换为modem模式
  antique@dm365:/home#:./usb_modeswitch -c 12d1\:1446
  屏幕会显示一堆模式转换信息,之后会显示成功
6.检查是否转换成功,执行lsusb,发现1446变为1001,表示转换成功。
  antique@dm365:/home# lsusb
  Bus 004 Device 002: ID 12d1:1001 HUAWEI XXXX(省略若干)
7.硬件问题都解决了,开始拨号吧:(电信的拨号脚本,联通、移动的应该会变化,请google)
  antique@dm365:/home# pppd connect 'chat -v  "" "AT" "OK" "ATZ" "OK" "ATDT#777 CONNECT"' 
  user card password card /dev/ttyUSB0 115200 nodetach noauth nocrtscts modem noipdefault 
  debug usepeerdns defaultroute ipcp-accept-local noccp 
  屏幕会显示拨号信息,成功获取到的IP和DNS
8.另外启动一个shell,执行
  antique@dm365:/# route del default
  antique@dm365:/#route add default dev ppp0
  尝试ping 8.8.8.8,应该就通了。
  注意:如果为其他3G上网卡,只需要将相应的配置文件复制到板子上。如本例为12d1:1446.

基本步骤第3步交叉编译过程:
A.交叉编译Libusb
解压并进入libusb目录,建立子目录install用于存放最后生存的库文件与头文件。
[root@libusb-0.1.12]# mkdir install
配置并生成Makefile文件
[root@libusb-0.1.12]# ./configure --build=i686-linux --host=arm-linux 
  --prefix=/home/libusb-0.1.12/install
[root@libusb-0.1.12]# make
[root@libusb-0.1.12]# make install
此时install目录下应有LIB了

B.交叉编译usb_modeswitch
1.修改Makefile文件      CC = arm_v5t_le-gcc
2.将libusb里的库头文件拷到交叉编译器的include和lib目录下,或者直接在Makefile
  文件里直接加上编译选项指令库的路径即可如下:$(PROG):&(OBJS)
      &(CC) –o $(PROG) &(OBJS) &(CFLAGS) –I /home/libusb-0.1.12/install/
      include –L /home/libusb-0.1.12/install/lib
3.make
此时应产生usb_modeswitch单文件了
将Lib和usb_modeswitch按照基本步骤第四步复制到开发板上。
OVER。


  评论这张
 
阅读(1438)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017