zoukankan      html  css  js  c++  java
  • linux 嵌入式Linux下3G无线上网卡的驱动

    软件:TI定制的嵌入式arm-linux,内核版本2.6.37.
    简介:
    由于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
    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按照基本步骤第四步复制到开发板上。
  • 相关阅读:
    Account group in ERP and its mapping relationship with CRM partner group
    错误消息Number not in interval XXX when downloading
    错误消息Form of address 0001 not designated for organization
    Algorithm类介绍(core)
    梯度下降与随机梯度下降
    反思
    绘图: matplotlib核心剖析
    ORB
    SIFT
    Harris角点
  • 原文地址:https://www.cnblogs.com/zym0805/p/2338636.html
Copyright © 2011-2022 走看看