3G上网卡1--工具及使用学习笔记

使用3G上网卡(或称为3G modem)

1.选型:

选择linux上支持的3G上网卡
更多型号可参考: usb_modeswitch的device_reference.txt


2 使用步骤(以windows为例)
a. 接上发现移动硬盘,ZTEMODEM里面有安装程序AutoRun.exe和驱动程序


b. 安装完后,移动硬盘消失;
c. 发现新硬件,自动安装好驱动程序后,发现2个串口(一个用于发AT命令,可通过COM 8发短信,另一个是诊断端口,通过COM6诊断3G上网卡)和一个modem


d. 运行程序即可拨号上网


zeroCD: 3G上网卡自带程序,接到PC后先作为移动硬盘使用,安装程序后切换为modem


对于Linux使用过程:
a. 接上后切换mode: usb_modeswitch
b. 安装驱动程序: linux内核自带, 会出现3个ttyUSB0,1,2(其中一个用于mode,另外两个其中一个用于收发AT命令,另外一个用于诊断)
c. 拨号上网:pppd


3 交叉编译应用程序并测试
(1)配置内核(内核目录下键入make menuconfig)

-> Device Drivers(把PPP相关驱动选上编译进内核)
  -> Network device support
      <*>   PPP (point-to-point protocol) support                                
     <*>     PPP BSD-Compress compression                                  
              <*>     PPP Deflate compression                                               
              [*]     PPP filtering                                                     
              <*>     PPP MPPE compression (encryption) (EXPERIMENTAL)                  
              [*]     PPP multilink support (EXPERIMENTAL)                              
              <*>     PPP over Ethernet (EXPERIMENTAL)                                  
              <*>     PPP support for async serial ports                                
              <*>     PPP support for sync tty ports   
-> Device Drivers(由于我们出现的是ttyUSB0,1,2,所以要配置USB,输入M配置称模块)
  -> USB support
     <M>   USB Serial Converter support  
         <M>   USB driver for GSM and CDMA modems(在网上搜索3G上网卡要用到的文件是option.c,对应的配置项是CONFIG_USB_SERIAL_OPTION,需要在内核中搜索并配置编译成模块,看提示信息prompt部分)


如果比较难看出来的话,可以先去看源代码



打开Makefile,搜索里面的usbserial,需要配置项CONFIG_USB_SERIAL



如果知道某个文件,如usb-serial.c,需要使用它,可以把同目录下的Makefile打开,查看usb-serial.o对应哪一个配置项。在make menuconfig搜索这个配置项


make uImage && make modules//编译内核并编译所有的模块驱动


应用程序源码:(usb_modeswitch
http://www.draisberghof.de/usb_modeswitch/
http://www.libusb.org/
ftp://ftp.samba.org/pub/ppp/


(2)交叉编译:

libusb:   usb_modeswitch:(依赖于libusb库)
./configure --host=arm-linux --prefix=$PWD/tmp//--host=arm-linux 运行环境
--prefix=$(pwd)/_install 安装目录,$PWD表示当前目录

make 
make install
把头文件和库复制进交叉工具链里(在temp目录下)
sudo  cp libusb.h /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
sudo cp * -rfd /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib (*表示所有文件,d表示原来是链接文件吧它作为链接文件拷贝进去)


把库复制到根文件系统的lib目录下

sudo cp *so* -d /work/nfs_root/fs_mini_mdev_new/lib/


usb_modeswitch:(依赖于libusb库)
修改Makefile
CC          = arm-linux-gcc  //修改编译器
LIBS        = -lusb-1.0 //-l用于指定依赖的库,这里是usb-1.0


make DESTDIR=$PWD/tmp //指定安装路径
make DESTDIR=$PWD/tmp  install


cd tmp
sudo cp * -rfd /work/nfs_root/fs_mini_mdev_new


usb-modeswitch-data-20131113:(3G上网相关的配置文件 usr/share/usb_modeswitch)
make DESTDIR=$PWD/tmp install
cd tmp
sudo cp * -rfd /work/nfs_root/fs_mini_mdev_new


pppd:(ppp-2.4.5.tar.gz)
修改这6个文件, "$(INSTALL) -s"改为"$(INSTALL) "(也就是去掉-s)

chat/Makefile.linux
pppd/plugins/radius/Makefile.linux
pppd/plugins/rp-pppoe/Makefile.linux
pppd/Makefile.linux
pppdump/Makefile.linux
pppstats/Makefile.linux


./configure --host=arm-linux --prefix=$PWD/tmp //配置运行环境和当前安装目录
make CC=arm-linux-gcc  //指定编译器(默认使用是PC机里面的编译器)
make CC=arm-linux-gcc install
cd tmp
sudo cp * -rfd /work/nfs_root/fs_mini_mdev_new


使用:
A. 以mf637为例
参考 HI3515海思开发板移植3G模块笔记 - 倔强的晓奇 - 博客频道 - CSDN.NET.htm
http://blog.csdn.net/alangdangjia/article/details/9413009
a. 用新内核启动开发板
   复制驱动: sudo cp drivers/usb/serial/*.ko /work/nfs_root/fs_mini_mdev_new//*.ko代表全部的驱动程序
b. 接上3G上网卡,用lsusb查看VID/PID

VID(Vendor ID,供应商识别码)和PID(Product ID,产品识别码)
lsusb
Bus 001 Device 002: ID 19d2:2000


c. 使用usb_modeswitch切换工作模式   
它需要一个配置文件,使用上面得到的VIP/PID在device_reference.txt里找到一段配置值
写入一个文件mf637.cfg(这里cfg是配置文件后缀)
把它放到开发板的/etc目录
usb_modeswitch -c /etc/mf637.cfg

执行后查看,发现PID发生变化,因为之前那个是默认的PID,

而现在切换后的PID

d. 安装驱动程序
insmod usbserial.ko
insmod usb_wwan.ko 
insmod option.ko

查看设备节点


e. 用pppd拨号
对于mf637:
修改/etc/ppp/peers/wcdma-dailer配置文件(拷贝到文件系统), 使用/dev/ttyUSB2(如果第0个串口不行,改成第1或第2个串口,共3个串口)
pppd call wcdma-dailer & //调用联通3G的模块的命令,&表示在后台运行


cp /etc/ppp/resolv.conf /etc/resolv.conf  //DNS写在/etc/ppp/resolv.conf里面
ping news.qq.com //ping网址


B. 以EW65为例
在device_refeence.txt里选取一段存为ew65.cfg


板上接入EW65后执行:usb_modeswitch -c /etc/ew65.cfg
修改/etc/ppp/peers/wcdma-dailer, 使用/dev/ttyUSB0
pppd call wcdma-dailer &
cp /etc/ppp/resolv.conf /etc/resolv.conf
ping news.qq.com


你可能感兴趣的:(3G上网卡1--工具及使用学习笔记)