? 英创Linux工控主板支持3G网卡--技术天地

英創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外網網址來測試是否正確連接網絡。