设为首页 加入收藏

TOP

嵌入式Linux下3G无线上网卡的驱动【DM365+EC189】
2014-11-24 08:22:45 来源: 作者: 【 】 浏览:0
Tags:嵌入式 Linux 无线 上网卡 驱动 DM365 EC189

环境:


硬件:合众达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模式


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


注意:如果为其他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里的库头文件拷到交叉编译器的includelib目录下,或者直接在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。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ARM-Linux下的GPIO中断程序 下一篇u-boot-2009.11在mini2440上面的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)
·MySQL 数据类型:从 (2025-12-26 18:20:03)
·Linux Shell脚本教程 (2025-12-26 17:51:10)
·Qt教程,Qt5编程入门 (2025-12-26 17:51:07)