18c2ecf20Sopenharmony_ci======================
28c2ecf20Sopenharmony_ciLinux ACM driver v0.16
38c2ecf20Sopenharmony_ci======================
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ciCopyright (c) 1999 Vojtech Pavlik <vojtech@suse.cz>
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciSponsored by SuSE
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci0. Disclaimer
108c2ecf20Sopenharmony_ci~~~~~~~~~~~~~
118c2ecf20Sopenharmony_ciThis program is free software; you can redistribute it and/or modify it
128c2ecf20Sopenharmony_ciunder the terms of the GNU General Public License as published by the Free
138c2ecf20Sopenharmony_ciSoftware Foundation; either version 2 of the License, or (at your option)
148c2ecf20Sopenharmony_ciany later version.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciThis program is distributed in the hope that it will be useful, but
178c2ecf20Sopenharmony_ciWITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
188c2ecf20Sopenharmony_cior FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
198c2ecf20Sopenharmony_cimore details.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciYou should have received a copy of the GNU General Public License along
228c2ecf20Sopenharmony_ciwith this program; if not, write to the Free Software Foundation, Inc., 59
238c2ecf20Sopenharmony_ciTemple Place, Suite 330, Boston, MA 02111-1307 USA
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciShould you need to contact me, the author, you can do so either by e-mail -
268c2ecf20Sopenharmony_cimail your message to <vojtech@suse.cz>, or by paper mail: Vojtech Pavlik,
278c2ecf20Sopenharmony_ciUcitelska 1576, Prague 8, 182 00 Czech Republic
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ciFor your convenience, the GNU General Public License version 2 is included
308c2ecf20Sopenharmony_ciin the package: See the file COPYING.
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci1. Usage
338c2ecf20Sopenharmony_ci~~~~~~~~
348c2ecf20Sopenharmony_ciThe drivers/usb/class/cdc-acm.c drivers works with USB modems and USB ISDN terminal
358c2ecf20Sopenharmony_ciadapters that conform to the Universal Serial Bus Communication Device Class
368c2ecf20Sopenharmony_ciAbstract Control Model (USB CDC ACM) specification.
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ciMany modems do, here is a list of those I know of:
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci	- 3Com OfficeConnect 56k
418c2ecf20Sopenharmony_ci	- 3Com Voice FaxModem Pro
428c2ecf20Sopenharmony_ci	- 3Com Sportster
438c2ecf20Sopenharmony_ci	- MultiTech MultiModem 56k
448c2ecf20Sopenharmony_ci	- Zoom 2986L FaxModem
458c2ecf20Sopenharmony_ci	- Compaq 56k FaxModem
468c2ecf20Sopenharmony_ci	- ELSA Microlink 56k
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciI know of one ISDN TA that does work with the acm driver:
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci	- 3Com USR ISDN Pro TA
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ciSome cell phones also connect via USB. I know the following phones work:
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci	- SonyEricsson K800i
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciUnfortunately many modems and most ISDN TAs use proprietary interfaces and
578c2ecf20Sopenharmony_cithus won't work with this drivers. Check for ACM compliance before buying.
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciTo use the modems you need these modules loaded::
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci	usbcore.ko
628c2ecf20Sopenharmony_ci	uhci-hcd.ko ohci-hcd.ko or ehci-hcd.ko
638c2ecf20Sopenharmony_ci	cdc-acm.ko
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciAfter that, the modem[s] should be accessible. You should be able to use
668c2ecf20Sopenharmony_ciminicom, ppp and mgetty with them.
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci2. Verifying that it works
698c2ecf20Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ciThe first step would be to check /sys/kernel/debug/usb/devices, it should look
728c2ecf20Sopenharmony_cilike this::
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci  T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
758c2ecf20Sopenharmony_ci  B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
768c2ecf20Sopenharmony_ci  D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
778c2ecf20Sopenharmony_ci  P:  Vendor=0000 ProdID=0000 Rev= 0.00
788c2ecf20Sopenharmony_ci  S:  Product=USB UHCI Root Hub
798c2ecf20Sopenharmony_ci  S:  SerialNumber=6800
808c2ecf20Sopenharmony_ci  C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
818c2ecf20Sopenharmony_ci  I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
828c2ecf20Sopenharmony_ci  E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
838c2ecf20Sopenharmony_ci  T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
848c2ecf20Sopenharmony_ci  D:  Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  2
858c2ecf20Sopenharmony_ci  P:  Vendor=04c1 ProdID=008f Rev= 2.07
868c2ecf20Sopenharmony_ci  S:  Manufacturer=3Com Inc.
878c2ecf20Sopenharmony_ci  S:  Product=3Com U.S. Robotics Pro ISDN TA
888c2ecf20Sopenharmony_ci  S:  SerialNumber=UFT53A49BVT7
898c2ecf20Sopenharmony_ci  C:  #Ifs= 1 Cfg#= 1 Atr=60 MxPwr=  0mA
908c2ecf20Sopenharmony_ci  I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=acm
918c2ecf20Sopenharmony_ci  E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
928c2ecf20Sopenharmony_ci  E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
938c2ecf20Sopenharmony_ci  E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
948c2ecf20Sopenharmony_ci  C:* #Ifs= 2 Cfg#= 2 Atr=60 MxPwr=  0mA
958c2ecf20Sopenharmony_ci  I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
968c2ecf20Sopenharmony_ci  E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
978c2ecf20Sopenharmony_ci  I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm
988c2ecf20Sopenharmony_ci  E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
998c2ecf20Sopenharmony_ci  E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ciThe presence of these three lines (and the Cls= 'comm' and 'data' classes)
1028c2ecf20Sopenharmony_ciis important, it means it's an ACM device. The Driver=acm means the acm
1038c2ecf20Sopenharmony_cidriver is used for the device. If you see only Cls=ff(vend.) then you're out
1048c2ecf20Sopenharmony_ciof luck, you have a device with vendor specific-interface::
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci  D:  Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  2
1078c2ecf20Sopenharmony_ci  I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
1088c2ecf20Sopenharmony_ci  I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ciIn the system log you should see::
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ci  usb.c: USB new device connect, assigned device number 2
1138c2ecf20Sopenharmony_ci  usb.c: kmalloc IF c7691fa0, numif 1
1148c2ecf20Sopenharmony_ci  usb.c: kmalloc IF c7b5f3e0, numif 2
1158c2ecf20Sopenharmony_ci  usb.c: skipped 4 class/vendor specific interface descriptors
1168c2ecf20Sopenharmony_ci  usb.c: new device strings: Mfr=1, Product=2, SerialNumber=3
1178c2ecf20Sopenharmony_ci  usb.c: USB device number 2 default language ID 0x409
1188c2ecf20Sopenharmony_ci  Manufacturer: 3Com Inc.
1198c2ecf20Sopenharmony_ci  Product: 3Com U.S. Robotics Pro ISDN TA
1208c2ecf20Sopenharmony_ci  SerialNumber: UFT53A49BVT7
1218c2ecf20Sopenharmony_ci  acm.c: probing config 1
1228c2ecf20Sopenharmony_ci  acm.c: probing config 2
1238c2ecf20Sopenharmony_ci  ttyACM0: USB ACM device
1248c2ecf20Sopenharmony_ci  acm.c: acm_control_msg: rq: 0x22 val: 0x0 len: 0x0 result: 0
1258c2ecf20Sopenharmony_ci  acm.c: acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: 7
1268c2ecf20Sopenharmony_ci  usb.c: acm driver claimed interface c7b5f3e0
1278c2ecf20Sopenharmony_ci  usb.c: acm driver claimed interface c7b5f3f8
1288c2ecf20Sopenharmony_ci  usb.c: acm driver claimed interface c7691fa0
1298c2ecf20Sopenharmony_ci
1308c2ecf20Sopenharmony_ciIf all this seems to be OK, fire up minicom and set it to talk to the ttyACM
1318c2ecf20Sopenharmony_cidevice and try typing 'at'. If it responds with 'OK', then everything is
1328c2ecf20Sopenharmony_ciworking.
133