天天看點

ME909 ECM撥号上網總結

我用的是linux 3.2.0的核心,核心支援ECM驅動,me909直接就可以驅動起來,為了多一種選擇,我把ttyUSB0~ttyUSB4都驅動起來了。過程參考《華為子產品Linux核心驅動內建指導-(V100R001_V2.0,Chinese).pdf》,這個文檔講的很清楚,一步一眇,很容易就把華為的各種子產品驅動起來了。

https://download.csdn.net/download/wandersky0822/11457391  ME909的USB 描述符官方文檔

[   31.825347] usb 1-1: new high-speed USB device number 2 using musb-hdrc

[   31.966918] usb 1-1: New USB device found, idVendor=12d1, idProduct=15c1

[   31.974060] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[   31.981689] usb 1-1: Product: HUAWEI Mobile V7R11

[   31.986724] usb 1-1: Manufacturer: Huawei Technologies Co., Ltd.

[   31.993103] usb 1-1: SerialNumber: 0123456789ABCDEF

[   32.016326] cdc_ether 1-1:2.0: usb0: register 'cdc_ether' at usb-musb-hdrc.1-1, CDC Ethernet Device, 02:1e:10:1f:00:00

[   32.045013] option 1-1:2.2: GSM modem (1-port) converter detected

[   32.066101] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0

[   32.082122] option 1-1:2.3: GSM modem (1-port) converter detected

[   32.102905] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1

[   32.118896] option 1-1:2.4: GSM modem (1-port) converter detected

[   32.139709] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2

[   32.155639] option 1-1:2.5: GSM modem (1-port) converter detected

[   32.176086] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3

[   32.191864] option 1-1:2.6: GSM modem (1-port) converter detected

[   32.212249] usb 1-1: GSM modem (1-port) converter now attached to ttyUSB4

增加: 首先需要ifconfig usb0 up,先使能usb0網卡。

在指令行視窗輸入

echo "AT^NDISDUP=1,1">/dev/ttyUSB0

發完這條指令後,估計應該等一兩分鐘才會連上移動網絡,可以通過

echo "AT^NDISSTATQRY?">/dev/ttyUSB0

來檢視連接配接情況,如果連接配接上了,輸入下面指令

cat /dev/ttyUSB0

就會看到如下資訊,(IPV4連接配接狀态,IPV6斷開狀态)

^NDISSTATQRY: 1,,,"IPV4",0,0,,"IPV6"

這時就可以使用udhcpc指令來自動獲得IP位址

~ # udhcpc -i usb0

程式運作正常,列印如下:

udhcpc (v1.20.0) started

Setting IP address 0.0.0.0 on usb0

Sending discover...

Sending select for 10.61.28.33...

Lease of 10.61.28.33 obtained, lease time 518400

Setting IP address 10.61.28.33 on usb0

Deleting routers

route: SIOCDELRT: No such process

Adding router 10.61.28.34

Recreating /etc/resolv.conf

 Adding DNS server 183.230.126.225

 Adding DNS server 183.230.126.224

此時可以通過DHCP指令來檢視ip位址。

echo "AT^DHCP?">/dev/ttyUSB0

檢視傳回值cat /dev/ttyUSB0

AT^DHCP?

^DHCP: 211C3D0A,FCFFFFFF,221C3D0A,221C3D0A,E17EE6B7,E07EE6B7,150000000,150000000

OK

說明已經獲得到IP位址了,此時你就可以盡情的在終端中ping外網了。

注,在我調試的過程中,我發現一個神奇的位址,華為4G子產品的USB接口描述符居然會根據接入系統的不同,識别不不同的接口描述符,因為之前我已經把ME909在STM32F437上調試通過了,是以沒有在意這個事情,果然我在linux識别出的接口不一樣,也不知道華為使用了什麼技術,他怎麼會判斷USB接口的是什麼作業系統,  我的STM32  USB HOST他又會歸到哪一類裡呢?

後記:最近比較火的EC20,驅動與華為的不太一樣,我沒有測試,隻是根據網上查到的一些資料做了分析,EC20好像也支援ECM模式,通過此指令就可以切換工作模式,

echo -e “AT+QCFG=“usbnet”,1\r\n” > /dev/ttyUSB2指令,裝置傳回OK

但是我在《Quectel_EC20_R2.1_AT_Commands_Manual_V1.0》沒有找到類似AT+QCFG=“usbnet”這樣的指令,是以 我還是感覺EC20是通過gobinet驅動比較正常一些,gobi是高通的技術,可以看出EC20采用的高通的方案。甚至有些移遠的子產品VID就是05C6,就是高通,是以如果用EC20的話還是老老實實的搞手冊把GOBINET添加進核心比較好,說不定操作起來還更容易些,

以 上隻是我的猜測,沒有實際操作!!