cdc-wdm裝置的用法與3G、LTE的討論分享 - Linux

Lydia avatar
By Lydia
at 2013-09-06T00:06

Table of Contents

各位大大好

小的過去有花了一點時間 在摸索3G dongle
大多是華為(HUAWEI)跟中興(ZTE)的USB 3G dongle
當然還有他們幫忙掛牌的什麼VODAFONE之類

主要driver都是usb-serial、cdc-acm、cdc-ecm
前兩者走pppd撥號上網,第三者走eth介面用dhcp拿IP address(要自己配也ok)
這3種其實算比較老的技術了,可能網路上亂翻都可以找得到相關教學

不過比較有趣的是
網路上大多提的是使用套件(甚至是GUI超人性化套件)
來幫忙建起已連線且可用的3G技術interface

而我大多是在純指令模式,沒透過3G工具的前題下
自己手動給AT CMD,然後手動叫pppd或叫dhcp來完成連線上網
所以如果板友也很感興趣,我很樂意可以一起討論相關經驗

這篇主要是想尋找板友,關於LTE dongle的板友
隨著LTE越來越發達,也漸漸接觸到LTE dongle
可惜台灣並沒有這個環境,所以也很難在台灣看到人討論
受限於tty裝備的因素,越來越多廠商開發出eth介面的3G dongle或LTE dongle
傳統eth大多走cdc-ecm就ok
接著我比較沒接觸過的driver也包括hso、cdc-ncm、qmi_wwan、mbim
前兩者可能也算比較老了
但是後兩者就比較新且有潛力,可以在連線速度上得到更大的提升
目前我正在接觸qmi_wwan的dongle
他主要是同時包括了cdc-wdm與cdc-ecm兩個driver
用cdc-wdm來下CMD,然後用cdc-ecm來上網
現階段是可以透過libqmi這個套件,直接在PC上成功驅動qmi_wwan來上網

但我實在不想透過libqmi的幫忙
所以必須想辦法,自己手動透過cdc-wdm來跟dongle溝通
但我根本找不到辦法跟cdc-wdm
別說是不了解他溝通的語法(應該不是AT CMD)
甚至是不知道該透過什麼方式丟東西給他,以及從他那裡撈到東西
哪怕是亂丟,然後他回給我error都好

不知道對於qmi_wwan下的cdc-wdm,有沒有大大知道該怎溝通的?
我google了老半天,都沒找到可以幫助到我的資料 orz...
我想 目前分兩階段
1.怎跟cdc-wdm溝通(開檔、讀檔,像tty裝置可以echo跟cat)
2.使用qmi_wwan的語法來跟dongle溝通
真的很希望可以遇到大大能分享些什麼 或指引些方向

真的萬分感謝

--
有種熟悉總在你心裡深處、眼光餘角出現
越是追求越是千里尋不著
日覆一日,漸漸的也就淡忘
實際卻如影隨行、無聲無息的埋藏在潛意識裡‧‧‧
也許夜深人靜時又會不經意的輕敲你心房

--
Tags: Linux

All Comments

Bennie avatar
By Bennie
at 2013-09-10T04:38
我對driver這塊不懂,但原則上只有 character device 且接
受 text command 或 escape sequence 才能用 echo 控制,不
Joe avatar
By Joe
at 2013-09-14T11:10
符合的character device和block device是用 ioctl 去控制,
像stty其實就是把user下的命令轉成ioctl, AT command則是
Bennie avatar
By Bennie
at 2013-09-16T12:04
modem接受text command
Jake avatar
By Jake
at 2013-09-17T00:39
反覆看了好幾次 好像有比較懂了XDD 也就是說
Donna avatar
By Donna
at 2013-09-17T17:33
你回的第二段要修正一下, stty 是命令用來設定 tty 的驅動
Carol avatar
By Carol
at 2013-09-18T12:46
程式,這個驅動負責對實際終端設備(看接的是什麼,如vt100或
modem,不一定),這個驅動程式是要用ioctl去控制,而實際接的
Isabella avatar
By Isabella
at 2013-09-18T22:55
設備如 vt100是吃escape sequence(如ptt常見的控制碼就是
Kumar avatar
By Kumar
at 2013-09-21T13:17
這些終端機的legacy),如果接的是modem,它是吃AT command,
其實escape sequence也是可以看成text command的一種特例
Mason avatar
By Mason
at 2013-09-24T11:56
我用個示意圖 user <-> tty driver <-> vt100/modem
Cara avatar
By Cara
at 2013-09-28T04:53
user輸出的字都直接會到 vt100/modem, 中間的driver不能偷
吃(到是有可能偷換,例如把CR換成LF或反之),所以user只能用
Olga avatar
By Olga
at 2013-09-28T08:32
ioctl來控制driver,而vt100/modem則可以接受文字來控制
Daph Bay avatar
By Daph Bay
at 2013-09-29T01:19
legacy tty driver其實不smart,是user根據實際接什麼設備,
Hedda avatar
By Hedda
at 2013-10-01T11:15
來決定怎麼設tty driver, tty driver做的事也不多,你去看
Skylar DavisLinda avatar
By Skylar DavisLinda
at 2013-10-06T08:54
一下stty裏能設的項目就知道除了baud rate之外就是一些和
傳統終端機有關的細項(要不要echo,CR LF要不要互轉等等)
Necoo avatar
By Necoo
at 2013-10-08T16:45
如果你真的不瞭解tty driver扮演的角色,你就先把它當透明
人,等有需要再來看就好
Todd Johnson avatar
By Todd Johnson
at 2013-10-12T21:55
因為你用的是3G/LTE又走USB,相對傳統走RS-232的終端機來說
大部分tty的相關設定都不會用到
Gilbert avatar
By Gilbert
at 2013-10-15T06:17
好吧 確實是沒設到@@" 非常謝謝你耐心的解釋XD
讓我知道這之間有這麼多差異 哈哈

比對二個檔案的問題 cmp或其它方法?

Kelly avatar
By Kelly
at 2013-09-05T18:28
※ 引述《hgs1906 (受遺棄之子)》之銘言: → hgs1906:怕謝 想來想去還是不知道具體的寫法 OTZ 本來想用推文來貼以下程式, 後來想想還是回文比較快, 用 cc 編譯後就能用了。 LINES 看你想指定多少。回傳值 0 代表讀到的行數到達了 LINES, 回傳 1 則是 讀到的行數小於LI ...

比對二個檔案的問題 cmp或其它方法?

James avatar
By James
at 2013-09-05T17:12
※ 引述《hgs1906 (受遺棄之子)》之銘言: : 請問一下大家 最近為了自動化 : 所以用了jenkins自動編譯程式為java的war檔 : 之後在透過判斷新舊war檔是否差異來判斷要不要重新deploy : 原本的判斷方式為… : cmp -l a.war a.war.bak |wc -l : 透 ...

Linux和Windows哪個先?

Ida avatar
By Ida
at 2013-09-05T16:58
想買一顆新硬碟來切割成兩個硬碟 分別安裝Linux(Ubuntu)和Windows兩個系統 設成開機時可以選擇系統後進入操作的環境 但現在不知該先裝Linux還是Windows? 請問意見? -- - ...

比對二個檔案的問題 cmp或其它方法?

Emily avatar
By Emily
at 2013-09-05T16:01
請問一下大家 最近為了自動化 所以用了jenkins自動編譯程式為java的war檔 之後在透過判斷新舊war檔是否差異來判斷要不要重新deploy 原本的判斷方式為… cmp -l a.war a.war.bak |wc -l 透過cmp -l 列出所有的差異 在統計行數 只要差異的行數超過10行就重新d ...

3G DONGLE 無法cat ttyUSB裝置

Kristin avatar
By Kristin
at 2013-09-05T15:35
AT CMD的輸入方式改為 echo -e and#34;AT\rand#34; andgt; /dev/ttyUSB0 cat /dev/ttyUSB0 就可以順利cat出來了 但我實在不太懂為什麼 以前也在虛擬環境玩過 卻不需要-e然後給\r 而我試了一下 也搞不懂\r的用處 大家都說往前刪除一 ...