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