1. 程式人生 > >ME3760_v2驅動移植方式,中興4G網絡卡移植

ME3760_v2驅動移植方式,中興4G網絡卡移植

USB串列埠驅動新增

配置核心將USB driver for GSM and CDMA modems選上

Cd kernel

Make menuconfig

Devicedrivers->usb surpport->usb serial converter support

選中如下元件

USB driver forGSM and CDMA modems

選中儲存後即可編譯核心

增加4G裝置驅動

修改option.c檔案新增裝置資訊

程式碼修改路徑:

drivers\usb\serial\option.c

找到option_ids[] 結構體表

新增ZTE產品資訊

    { USB_DEVICE(0x19d2, 0x0199) },

編譯

USB串列埠過濾ndis介面

由於usb串列埠跟ndis都屬於非cdc裝置,需要防止ndis口被usb串列埠驅動載入ndis驅動無法順利完成載入

1.在drivers\usb\serial\usb_serial.c檔案中usb_serial_probe函式中新增

if ((le16_to_cpu(dev->descriptor.idVendor)== 0x19d2)&&

        (le16_to_cpu(dev->descriptor.idProduct)== 0x0199)){

        if(1 ==interface->cur_altsetting->desc.bInterfaceNumber){

               return -ENODEV;

        }

}

由於ndis以庫的形式提供,主要包括兩個檔案:cdc_encap.ko和cdc_ether.ko

2.修改drivers\net中

cdc_ether.c

3.修改Makefile 新增obj-m +=cdc_encap.o

 4.將提供的cdc_encap.c和cdc_encap.h拷貝到該目錄下

配置核心usbnet驅動方式如下

  Cdkernel

Make menuconfig

Devicedriver->Network device surpport->usb Network Adapters

選中如下元件:

<M>Mutil-purpose USB Networking Framework

選中儲存後退出編譯

ndis驅動載入

編譯後生成的usbnet.ko連同ndis驅動一起加入系統啟動項中載入,載入順序為

Insmod usbnet.ko

Insmodcdc_encap.ko

Insmodcdc_ether.ko

帶裝置列舉完成後,正常載入系統的log中可以檢視是否能正常載入成功

ndis驅動介面的使用

驅動編譯完成,在嵌入式系統中的terminal中輸入 cat /proc/devices

可以檢視到eth1裝置

然後通過ifconfig-a 查到其網路介面eth1

1         4G模組建立連線AT命令指令

AT口傳送指令流程

AT

AT+CFUN = 1;//模組功能全開啟,模組每次開機都要設定AT+CFUN = 1,如果覺得麻煩可以設定AT+ZSET = “LTE_INFO”,8掉電後,這個AT+CFUN = 1就儲存為預設模組了

AT+CPIN? //返回READY,說明卡在位

AT+CEREG = 1,//啟用網路註冊的主動上報結果碼+CEREG:<stat> 如果STAT的是1或者5表示註冊上4G網路

/*AT+CREG? 查詢2G AT+CGREG 查詢3G AT+CEREG?查詢4G 返回第二個引數為1/5表示註冊上*/

AT+CGDCONT=1,”IP”,”APN” //設定PDP環境

AT+CGACT=1,1

AT+ZGACT=1,1//只有CEREG註冊有效後,這個指令傳送才能正常返回

網路連線資料傳送接受

//AT+ZGACT=0,1//關閉網路

靜態手動設定eth1 IP閘道器 DNS