162306a36Sopenharmony_ci======================
262306a36Sopenharmony_ciLinux ACM driver v0.16
362306a36Sopenharmony_ci======================
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciCopyright (c) 1999 Vojtech Pavlik <vojtech@suse.cz>
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciSponsored by SuSE
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci0. Disclaimer
1062306a36Sopenharmony_ci~~~~~~~~~~~~~
1162306a36Sopenharmony_ciThis program is free software; you can redistribute it and/or modify it
1262306a36Sopenharmony_ciunder the terms of the GNU General Public License as published by the Free
1362306a36Sopenharmony_ciSoftware Foundation; either version 2 of the License, or (at your option)
1462306a36Sopenharmony_ciany later version.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciThis program is distributed in the hope that it will be useful, but
1762306a36Sopenharmony_ciWITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
1862306a36Sopenharmony_cior FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
1962306a36Sopenharmony_cimore details.
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciYou should have received a copy of the GNU General Public License along
2262306a36Sopenharmony_ciwith this program; if not, write to the Free Software Foundation, Inc., 59
2362306a36Sopenharmony_ciTemple Place, Suite 330, Boston, MA 02111-1307 USA
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciShould you need to contact me, the author, you can do so either by e-mail -
2662306a36Sopenharmony_cimail your message to <vojtech@suse.cz>, or by paper mail: Vojtech Pavlik,
2762306a36Sopenharmony_ciUcitelska 1576, Prague 8, 182 00 Czech Republic
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciFor your convenience, the GNU General Public License version 2 is included
3062306a36Sopenharmony_ciin the package: See the file COPYING.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci1. Usage
3362306a36Sopenharmony_ci~~~~~~~~
3462306a36Sopenharmony_ciThe drivers/usb/class/cdc-acm.c drivers works with USB modems and USB ISDN terminal
3562306a36Sopenharmony_ciadapters that conform to the Universal Serial Bus Communication Device Class
3662306a36Sopenharmony_ciAbstract Control Model (USB CDC ACM) specification.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciMany modems do, here is a list of those I know of:
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	- 3Com OfficeConnect 56k
4162306a36Sopenharmony_ci	- 3Com Voice FaxModem Pro
4262306a36Sopenharmony_ci	- 3Com Sportster
4362306a36Sopenharmony_ci	- MultiTech MultiModem 56k
4462306a36Sopenharmony_ci	- Zoom 2986L FaxModem
4562306a36Sopenharmony_ci	- Compaq 56k FaxModem
4662306a36Sopenharmony_ci	- ELSA Microlink 56k
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ciI know of one ISDN TA that does work with the acm driver:
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	- 3Com USR ISDN Pro TA
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciSome cell phones also connect via USB. I know the following phones work:
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci	- SonyEricsson K800i
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ciUnfortunately many modems and most ISDN TAs use proprietary interfaces and
5762306a36Sopenharmony_cithus won't work with this drivers. Check for ACM compliance before buying.
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciTo use the modems you need these modules loaded::
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci	usbcore.ko
6262306a36Sopenharmony_ci	uhci-hcd.ko ohci-hcd.ko or ehci-hcd.ko
6362306a36Sopenharmony_ci	cdc-acm.ko
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciAfter that, the modem[s] should be accessible. You should be able to use
6662306a36Sopenharmony_ciminicom, ppp and mgetty with them.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci2. Verifying that it works
6962306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciThe first step would be to check /sys/kernel/debug/usb/devices, it should look
7262306a36Sopenharmony_cilike this::
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci  T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
7562306a36Sopenharmony_ci  B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
7662306a36Sopenharmony_ci  D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
7762306a36Sopenharmony_ci  P:  Vendor=0000 ProdID=0000 Rev= 0.00
7862306a36Sopenharmony_ci  S:  Product=USB UHCI Root Hub
7962306a36Sopenharmony_ci  S:  SerialNumber=6800
8062306a36Sopenharmony_ci  C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
8162306a36Sopenharmony_ci  I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
8262306a36Sopenharmony_ci  E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
8362306a36Sopenharmony_ci  T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
8462306a36Sopenharmony_ci  D:  Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  2
8562306a36Sopenharmony_ci  P:  Vendor=04c1 ProdID=008f Rev= 2.07
8662306a36Sopenharmony_ci  S:  Manufacturer=3Com Inc.
8762306a36Sopenharmony_ci  S:  Product=3Com U.S. Robotics Pro ISDN TA
8862306a36Sopenharmony_ci  S:  SerialNumber=UFT53A49BVT7
8962306a36Sopenharmony_ci  C:  #Ifs= 1 Cfg#= 1 Atr=60 MxPwr=  0mA
9062306a36Sopenharmony_ci  I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=acm
9162306a36Sopenharmony_ci  E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
9262306a36Sopenharmony_ci  E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
9362306a36Sopenharmony_ci  E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
9462306a36Sopenharmony_ci  C:* #Ifs= 2 Cfg#= 2 Atr=60 MxPwr=  0mA
9562306a36Sopenharmony_ci  I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
9662306a36Sopenharmony_ci  E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=128ms
9762306a36Sopenharmony_ci  I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm
9862306a36Sopenharmony_ci  E:  Ad=85(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
9962306a36Sopenharmony_ci  E:  Ad=04(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ciThe presence of these three lines (and the Cls= 'comm' and 'data' classes)
10262306a36Sopenharmony_ciis important, it means it's an ACM device. The Driver=acm means the acm
10362306a36Sopenharmony_cidriver is used for the device. If you see only Cls=ff(vend.) then you're out
10462306a36Sopenharmony_ciof luck, you have a device with vendor specific-interface::
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci  D:  Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  2
10762306a36Sopenharmony_ci  I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm
10862306a36Sopenharmony_ci  I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ciIn the system log you should see::
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci  usb.c: USB new device connect, assigned device number 2
11362306a36Sopenharmony_ci  usb.c: kmalloc IF c7691fa0, numif 1
11462306a36Sopenharmony_ci  usb.c: kmalloc IF c7b5f3e0, numif 2
11562306a36Sopenharmony_ci  usb.c: skipped 4 class/vendor specific interface descriptors
11662306a36Sopenharmony_ci  usb.c: new device strings: Mfr=1, Product=2, SerialNumber=3
11762306a36Sopenharmony_ci  usb.c: USB device number 2 default language ID 0x409
11862306a36Sopenharmony_ci  Manufacturer: 3Com Inc.
11962306a36Sopenharmony_ci  Product: 3Com U.S. Robotics Pro ISDN TA
12062306a36Sopenharmony_ci  SerialNumber: UFT53A49BVT7
12162306a36Sopenharmony_ci  acm.c: probing config 1
12262306a36Sopenharmony_ci  acm.c: probing config 2
12362306a36Sopenharmony_ci  ttyACM0: USB ACM device
12462306a36Sopenharmony_ci  acm.c: acm_control_msg: rq: 0x22 val: 0x0 len: 0x0 result: 0
12562306a36Sopenharmony_ci  acm.c: acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: 7
12662306a36Sopenharmony_ci  usb.c: acm driver claimed interface c7b5f3e0
12762306a36Sopenharmony_ci  usb.c: acm driver claimed interface c7b5f3f8
12862306a36Sopenharmony_ci  usb.c: acm driver claimed interface c7691fa0
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ciIf all this seems to be OK, fire up minicom and set it to talk to the ttyACM
13162306a36Sopenharmony_cidevice and try typing 'at'. If it responds with 'OK', then everything is
13262306a36Sopenharmony_ciworking.
133