英创Linux工控主板支持3G网卡

 2014-5-15         

  英创公司提供的众多无线通讯方案(包括基于GPRS网络的TCP/UDP通讯、SMS、基于GPRS的支持断点继传的FTP文件传输等)被我们的很多客户成功的运用到了自己的项目中。随着3G(3rd-generation,第三代移动通讯技术)运用的普及,英创公司的工控主板同样对3G无线通讯做了完备的支持。本文就以目前很常用的华为3G网卡770W和E261为例,介绍英创嵌入式Linux工控主板EM335x登录中国联通WCDMA网络的具体方法。

 

  华为770W和E261网卡通过USB接口和主板连接,英创公司主板的Linux内核中已经添加了3G模块的驱动(USB转串口的驱动)和ppp协议的支持。内核中的3G模块的驱动是以模块(usbserial.ko)的形式提供,usbserial.ko是一个通用的驱动,已经集成了一部分常用网卡的驱动,比如华为770W的网卡驱动。还有一部分网卡,内核模块中并没有集成它的驱动,需要借助辅助工具来进行驱动加载,比如华为E261。在内核中已经集成驱动的网卡只需要加载驱动模块,然后拨号,即可连接上网,拨号使用的文件在/etc/ppp/peers/目录下,英创公司已经编写好了GPRS网络,WCDMA网络,CDMA网络的拨号文件,GPRS拨号在英创的GPRS模块中已经被很多客户使用,使用3G网络时客户只需要选用对应的拨号文件即可,本文使用的是联通WCDMA网络,所以使用/etc/ppp/peers/目录下的wcdma-connect-script文件。若客户有其他特殊的要求,可以根据英创公司提供的这三个拨号文件进行修改,满足自己的需要。

 

  华为770W网卡使用步骤如下:

  1、上电启动英创公司的Linux主板,插入3G网卡。在没有加载驱动的时候,会被识别成CDROM或者USB移动存储设备。

 

  2、加载驱动模块:
  insmod /lib/modules/3.12.0/usbserial.ko vendor=0x12d1 product=0x1404

  vendor和product是网卡工作在Modem模式时的ID。这里输入的是华为770W网卡的ID,vendor=0x12d1代表华为公司,product=0x1404代表产品。加载成功后,终端会打印出转换信息,网卡变转化为Modem模式,在/dev下显示节点ttyUSB0、ttyUSB1、ttyUSB2、ttyUSB3、ttyUSB4。

 

  3、拨号:
  pppd call wcdma-connect-script

  使用WCDMA网络的拨号文件wcdma-connect-script进行拨号,完成以后,可以使用ifconfig命令查询,如果成功联网,会有ppp0的网络信息。如图所示:

 

 

  但是还有一部分比较新的网卡的驱动没有集成在usbserial.ko中,这是只是加载了usbserial.ko模块还不能够识别这个网卡,需要使用另一款辅助工具:usb_modeswitch,英创公司已经将这个工具移植到嵌入式环境中,华为E261网卡的使用就需要使用到usb_modeswitch,因为usberial.ko中并没有它的驱动,使用步骤如下:

 

  1、上电启动英创公司的Linux主板,插入3G网卡。在没有加载驱动的时候,同样会被识别成CDROM或者USB移动存储设备。

 

  2、加载驱动模块:
  insmod /lib/modules/3.12.0/usbserial.ko vendor=0x12d1 product=0x1436

  这里输入的是华为E261网卡的ID,同样vendor=0x12d1代表华为公司,product=0x1436代表产品。加载驱动后,系统并没有识别出网卡。

 

  3、使用usb_modeswitch工具:
  在nandflash中创建一个3g目录,将英创公司移植的usb_modeswitch工具和配置文件12d1_1446复制到3g目录下,执行命令:
  cd /mnt/nandflash/3g
  ./usb_modeswitch -c 12d1_1446

 

  12d1_1446是usb_modeswitch的配置文件,编辑如下:
  # Huawei, newer modems

  DefaultVendor=0x12d1
  DefaultProduct= 0x1446

  TargetVendor=0x12d1
  TargetProductList='1001,1406,140b,140c,1412,141b,1432,1433,1436,14ac,1506,150c,1511'
  MessageContent='55534243123456780000000000000011062000000101000100000000000000'

 

  配置文件中DefaultVendor和DefaultProduc是没有加载驱动前,系统将网卡识别成CDROM或者USB移动存储设备时显示的ID,0x12d1是指华为公司,0x1446指的是USB移动存储设备,因为没有加载驱动时,系统将网卡识别为移动存储设备,所以DefaultProduc写上移动存储设备的ID。TargetVendor和TargetProductList是上网卡工作在Modem模式时的ID,同样0x12d1是指华为公司,0x1446指的是E261这款网卡。若客户需要使用不同公司,不同型号的3G网卡,需要将这个配置文件中的内容修改为对应3G网卡的配置。

 

  通过使用usb_modeswitch工具,系统成功的将网卡转换为Modem模式,查看/dev目录下,会显示节点ttyUSB0、ttyUSB1、ttyUSB2、ttyUSB3、ttyUSB4。

 

  4、拨号:

  执行命令:pppd call wcdma-connect-script

  使用WCDMA网络的拨号文件wcdma-connect-script进行拨号,完成以后,可以使用ifconfig命令查询,如果成功联网,会有ppp0的网络信息。如图所示:

 

 

  至此,华为770W和E261网卡通过EM335x已经成功登录联通3G网络,可以通过ping外网网址来测试是否正确连接网络。