Linux ACM 驅動 v0.16

版權所有 (c) 1999 Vojtech Pavlik <vojtech@suse.cz>

由 SuSE 贊助

0. 免責宣告

本程式是自由軟體;您可以根據自由軟體基金會發布的 GNU 通用公共許可證的條款重新分發和/或修改它;無論是許可證的第 2 版,還是(由您選擇)任何後續版本。

釋出本程式的目的是希望它有用,但不提供任何擔保;甚至沒有對適銷性或針對特定用途的適用性的暗示擔保。有關更多詳細資訊,請參閱 GNU 通用公共許可證。

您應該已經收到一份 GNU 通用公共許可證的副本以及此程式;如果沒有,請寫信給自由軟體基金會,地址為:59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

如果您需要聯絡我,作者,您可以透過電子郵件 - 將您的訊息傳送至 <vojtech@suse.cz>,或透過紙質郵件:Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic

為了您的方便,GNU 通用公共許可證第 2 版包含在軟體包中:請參閱檔案 COPYING。

1. 用法

drivers/usb/class/cdc-acm.c 驅動程式與符合通用序列匯流排通訊裝置類抽象控制模型 (USB CDC ACM) 規範的 USB 調變解調器和 USB ISDN 終端介面卡配合使用。

許多調變解調器都支援,以下是我所知道的列表

  • 3Com OfficeConnect 56k

  • 3Com Voice FaxModem Pro

  • 3Com Sportster

  • MultiTech MultiModem 56k

  • Zoom 2986L 傳真調變解調器

  • Compaq 56k 傳真調變解調器

  • ELSA Microlink 56k

我知道有一個 ISDN TA 可以與 acm 驅動程式一起使用

  • 3Com USR ISDN Pro TA

一些手機也透過 USB 連線。 我知道以下手機可以使用

  • SonyEricsson K800i

不幸的是,許多調變解調器和大多數 ISDN TA 使用專有介面,因此無法與此驅動程式一起使用。購買前檢查 ACM 合規性。

要使用調變解調器,您需要載入以下模組

usbcore.ko
uhci-hcd.ko ohci-hcd.ko or ehci-hcd.ko
cdc-acm.ko

之後,調變解調器應該可以訪問。您應該能夠將 minicom、ppp 和 mgetty 與它們一起使用。

2. 驗證它是否工作

第一步是檢查 /sys/kernel/debug/usb/devices,它應該看起來像這樣

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 0.00
S:  Product=USB UHCI Root Hub
S:  SerialNumber=6800
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  2
P:  Vendor=04c1 ProdID=008f Rev= 2.07
S:  Manufacturer=3Com Inc.
S:  Product=3Com U.S. Robotics Pro ISDN TA
S:  SerialNumber=UFT53A49BVT7
C:  #Ifs= 1 Cfg#= 1 Atr=60 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=acm
E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
C:* #Ifs= 2 Cfg#= 2 Atr=60 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm
E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms

這三行(以及 Cls= “comm” 和 “data” 類)的存在很重要,這意味著它是一個 ACM 裝置。Driver=acm 表示 acm 驅動程式用於該裝置。如果您只看到 Cls=ff(vend.),那麼您就不走運了,您有一個具有供應商特定介面的裝置

D:  Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  2
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm

在系統日誌中,您應該看到

usb.c: USB new device connect, assigned device number 2
usb.c: kmalloc IF c7691fa0, numif 1
usb.c: kmalloc IF c7b5f3e0, numif 2
usb.c: skipped 4 class/vendor specific interface descriptors
usb.c: new device strings: Mfr=1, Product=2, SerialNumber=3
usb.c: USB device number 2 default language ID 0x409
Manufacturer: 3Com Inc.
Product: 3Com U.S. Robotics Pro ISDN TA
SerialNumber: UFT53A49BVT7
acm.c: probing config 1
acm.c: probing config 2
ttyACM0: USB ACM device
acm.c: acm_control_msg: rq: 0x22 val: 0x0 len: 0x0 result: 0
acm.c: acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: 7
usb.c: acm driver claimed interface c7b5f3e0
usb.c: acm driver claimed interface c7b5f3f8
usb.c: acm driver claimed interface c7691fa0

如果這一切看起來都沒問題,請啟動 minicom 並將其設定為與 ttyACM 裝置通訊,然後嘗試鍵入“at”。如果它響應“OK”,那麼一切正常。