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

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溝通
真的很希望可以遇到大大能分享些什麼 或指引些方向

真的萬分感謝

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

--

All Comments

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