嵌入式3G上网

 

一、需要的源码包:

  (1) usb库:libusb-0.1.12.tar.gz

       http://sourceforge.net/projects/libusb/files/libusb-1.0/    chinaunix

       (2) usb_modeswitch-1.1.9.tar.bz2

        http://www.draisberghof.de/usb_modeswitch/#download

  (3) usb_modeswitch-data-20110805

    http://www.draisberghof.de/usb_modeswitch/#download

  (4) ppp-2.4.5.tar.gz

二、具体操作

1、libusb库安装

  ./configure --prefix=/3G/libusb --host=arm-linux

  make

  make  install

  export PKG_CONFIG_PATH=/3G/libusb/lib/pkgconfig

2、usb_modeswitch安装

  修改Makefile

  CC = arm-linux-gcc

  - I /3G/libusb/include

  -L /3G/libusb/lib

  make all

  在当前目录下生成可执行文件usb_modeswitch

  另外还要注意一下当前目录下面的配置文件usb_modeswitch.conf

3、usb_modeswitch-data-20110805

     #cd usb_modeswitch.d

 找到以你所使用的上网卡ID命名的文件,将这个文件的内容追加到配置你的配置文件中(usb_modeswitch.conf)

      注:如何得知你所使用的上网卡的ID呢?---------->将上网卡插到PC机上的linux系统下,使用命令lsusb  

       本上网卡的ID是:    0x19d2:0x0026

  #cat 19d2:0026 >> usb_modeswitch.conf

4、交叉编译pppd

      # ./configure
     # make CC=arm-linux-gcc

     将目录下pppd chat pppdump pppstats下可执行程序pppd, chat, pppdump, pppstats拷贝到开发板/usr/sbin目录下
      mkdir /etc/ppp; mkdir /etc/ppp/peers( 参考mini6410)

5 、pppd拨号加入内核支持:
        Device Drivers -> Network 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

6、usb转串口驱动内核支持: 
      解决无线上网卡的驱动问题,主要通过两个途径,其一是修改内核源代码,让内核能够支持上网卡;其二是下载一个叫做usb-modeswitch的软件,让内核能够识别上网卡。我在网上查了一下华为EC169C上网卡的资料,声称其2.6.18以上的内核都能够支持。我的内核恰好是2.6.18,因此先走第一条路,修改内核源代码,让内核能够自动识别。先把上网卡插上PC机的USB借口,然后用lsusb命令查看,得到EC169C的USB ID为:0x12D1:0x1446。然后编辑LINUX内核目录下的drivers/usb/serial/option.c文件,里面有一个结构体数组option_ids[],这个数组就是记录内核所能识别的上网卡,将刚才得到的USB ID加到数组里面就可以了。其实这个option.c文件,就是内核里面的GSM/CDMA MODEM驱动程序。然后就是重新编译内核,注意在编译的时候要把这个驱动加进去。具体做法就是make menuconfig,运行内核图形化配置界面,在usb驱动的子菜单中,将user serial convert driver选上,并把下面的usb serial generic和option两项都选上,保存退出,就可以开始编译了

7、usb_modeswitch -c /etc/usb_modeswitch.conf

8、pppd call cdma2000

 

http://www.linuxidc.com/Linux/2011-03/33430p2.htm

http://www.linuxidc.com/Linux/2011-03/33429.htm

http://wenku.baidu.com/view/0560e3e9856a561252d36f42.html

http://bobworld.blog.163.com/blog/static/67202384201041952920665/

http://www.draisberghof.de/usb_modeswitch/#download

 

 

Linux内核支持方式:

http://www.flatws.cn/article/program/embed/2011-06-01/28648.html

dev/sr0文件(用的mdev方式生成设备文件,如果你用的是其它方式,可能设备名会不一样)

 

我现在要在一个arm板子上用wcdma的上网卡传数据,板子核心是linux 2.6.30 上网卡是zte mf190 ,查了很早的帖子都是用modeswitch来转换模式的,整了好久还没弄好,又看到一篇帖子是在linux PC上用上网卡的,说是在linux 2.6.19后就有专门转换模式的代码了,看了下之前那些用modeswitch的帖子确实版本都是2.6.19之前的

 

 

http://topic.csdn.net/u/20090511/10/f2a95a56-c010-46d1-a3be-787a02b9b2ce.html

 

This serial driver supports a wide range of USB to serial adapters. It also allows communication with the Handspring Visor. You need to turn on USB Serial Converter support, and then select whichever of the various particular drivers you need. The Generic Serial Driver can be used with a wide range of converters, by specifying the vendor and product ID codes when you load the USB serial converter module: insmod usb-serial.o vendor=0xVVVV product-0xPPPP, where you need to change the VVVV and PPPP to match your device.

The serial port driver uses a major number of 188. Up to sixteen serial ports are supported. To create the appropriate device entries, use the following commands:

mknod /dev/usb/ttyUSB0 c 188 0 mknod /dev/usb/ttyUSB1 c 188 1
 mknod /dev/usb/ttyUSB2 c 188 2
 mknod /dev/usb/ttyUSB3 c 188 3 
 mknod /dev/usb/ttyUSB4 c 188 4 
 mknod /dev/usb/ttyUSB5 c 188 5 
 mknod /dev/usb/ttyUSB6 c 188 6
 mknod /dev/usb/ttyUSB7 c 188 7
 mknod /dev/usb/ttyUSB8 c 188 8
 mknod /dev/usb/ttyUSB9 c 188 9 
 mknod /dev/usb/ttyUSB10 c 188 10
 mknod /dev/usb/ttyUSB12 c 188 12mknod /dev/usb/ttyUSB11 c 188 11
 mknod /dev/usb/ttyUSB13 c 188 13 
 mknod /dev/usb/ttyUSB14 c 188 14
 mknod /dev/usb/ttyUSB15 c 188 15
You should now be able to plug in a serial device into the adapter, and use the /dev/usb/ttyUSB0 just as if it were a normal serial port
问题:支持mdev啊?为什么还要手动创建节点呢?
 
 
 
 
 
 
 
 
 
原文出处:http://blog.sina.com.cn/s/blog_6d2a0a1a0100vsff.html
  
[root@Industech /dev]# pppd call cdma2000
Couldn't open the /dev/ppp device: No such file or directory
pppd: You need to create the /dev/ppp device node by
executing the following command as root:
        
mknod /dev/ppp c 108 0

你可能感兴趣的:(c,linux,嵌入式,makefile,compression,linux内核)