模組型號:中興mc2716
核心版本:linux-2.6.36
載入過程如下:
1、模組id號新增
進入核心**「/linux-2.6.36/driver/usb/serial」目錄,開啟「option.c」檔案,檢視是否已經定義了此模組產品的裝置id
資訊,並且這些資訊是否已經新增到「 static struct usb_device_id option_ids」結構體中。
如果**中沒有模組產品裝置id
資訊,則在**中增加模組產品裝置
id資訊的定義,並新增到「static struct usb_device_id option_ids」結構體中。如以下**紅色字型:
option.c檔案
產品裝置id
資訊的定義:
/* qcmd products */
#define qcmd_vendor_id 0x1c9e
#define qcmd_product_u6300v 0x9603
#define qcmd_product_u6300 0x9000
/* zte products */
#define zte_vendor_id 0x19d2
#define zte_product_mf628 0x0015
#define zte_product_cdma_tech 0xfffe
#define zte_product_mf210 0x0117 //20110127 add
#define zte_product_mc2716 0xffed //20110516 add
把產品型號新增到「static struct usb_device_id option_ids
」結構體中:
static struct usb_device_id option_ids = ,
,, //20110127
, //20110516
,//2011021
,//20110215
/* terminating entry */
2、新增
usb驅動
回到根目錄/linux-2.6.36/下,執行「make menuconfig」命令,修改核心編譯配置,進入以下配置選單配置相關選項:
進入選單 device drivers --->
usb support --->
usb serial converter support --->
圖3.3 usb
驅動配置選單圖
選上「usb driver for gsm and cdma modems
」和「usb generic serial driver
」兩個配置選項。
圖3.4 usb
驅動選項圖
目錄下會看到生成的
/ttyusb0~/ttyusb3的4
個裝置節點。
3、優化模組
usb驅動
把中興提供的zte.ev.c
和zte_ev.h
拷到核心目錄
/dirvers/usb/serial
下,修改該目錄下
generi.c
檔案,在
int usb_serial_generic_open
函式中新增執行
zte_ev_usb_serial_init
()函式。在
usb_serial_generic_close
函式中新增執行
zte_ev_usb_serial_exit
()函式。修改該目錄下的
makefile
檔案,把
zte_et.o
新增進去編譯。
4、應用程式的使用 (1
)各usb
埠的作用
ttyusb0用於
moderm
ttyusb1用於發
at指令
ttyusb2用於
vousb
ttyusb3用於
debug (2
)pppd的撥號指令碼檔案中使用
ttyusb0
進行撥號。
5、使用
pppd
撥號中遇到的問題 (1
)找不到usb介面
現象:拔號時找不到ttyusb0
,裝置重啟。
解決方法:拔號前執行mdev
命令重新生成裝置節點。
實現:在初始化gpio
之後新增
mdev -s
命令。
(2)多次拔號不成功
現象:mc2716
模組拔號成功後再次拔號發
at指令時回應的是亂碼。
解決方法:每次重新拔號前給模組發ath
指令結束通話,然後再開始拔號。因為拔號開啟的是
/ttyusb0
,發+ath
回不到命令端、指令無效,所以需開啟
ttyusb1
給模組發
ath指令結束通話**。
實現:在根檔案系統/etc/ppp
目錄下新增結束通話**的指令碼配置檔案
disgprschat
。給模組復位時新增斷開
pppd
連線的處理,執行
pppd
程序:pppd /dev/ttyusb1 115200 connect 'chat -f /etc/ppp/gprs-disconnect-chat' user pppuser。
(3)出現找不到裝置現象
現象:at
無回應,提示無裝置,但
/dev
目錄有下有
ttyusb0
,出現這種情況以後,重拔多次都不成功,無法恢復。現象如下圖所示:
解決方法:測試過程中發現出現以上問題後,執行mdev -s
命令提示以下資訊:
圖3.5
裝置錯誤資訊圖
在模組復位處理中新增對/sys/class/tty/ttyusb0/device
目錄下的檔案判斷,如果該目錄下的檔案不存在則對裝置發重啟命令。
WinCE下3G模組的除錯
這兩天在wince6.0上除錯了下3g模組,華為的em730,它支援gprs和wcdma。雖然沒有涉及到驅動的移植 沒有源 但除錯過程還是幾經周折,記下來以便後用。em730是mini pci介面的,也支援usb。於是先請硬體工程師幫忙飛了一堆線,在pc上測試了一下,工作完全正常,證明模組本身沒有問...
WinCE下3G模組的除錯
這兩天在wince6.0上除錯了下3g模組,華為的em730,它支援gprs和wcdma。雖然沒有涉及到驅動的移植 沒有源 但除錯過程還是幾經周折,記下來以便後用。em730是mini pci介面的,也支援usb。於是先請硬體工程師幫忙飛了一堆線,在pc上測試了一下,工作完全正常,證明模組本身沒有問...
Linux下3G的應用
弄了幾天的3g和簡訊,簡單記錄一下。用的3g模組是華為的e1750 wcdma無線資料終端。在linux下,插入3g模組,系統會自動識別為ttyusb0,ttyusb1,ttyusb2,其中ttyusb1不知道有什麼用處,不可讀寫,而其他兩個介面都是可讀寫的,ttyusb0用作3g無線上網的介面,在...