1*ecefae6dSMauro Carvalho Chehab====================== 2*ecefae6dSMauro Carvalho ChehabLinux ACM driver v0.16 3*ecefae6dSMauro Carvalho Chehab====================== 4*ecefae6dSMauro Carvalho Chehab 5*ecefae6dSMauro Carvalho ChehabCopyright (c) 1999 Vojtech Pavlik <vojtech@suse.cz> 6*ecefae6dSMauro Carvalho Chehab 7*ecefae6dSMauro Carvalho ChehabSponsored by SuSE 8*ecefae6dSMauro Carvalho Chehab 9*ecefae6dSMauro Carvalho Chehab0. Disclaimer 10*ecefae6dSMauro Carvalho Chehab~~~~~~~~~~~~~ 11*ecefae6dSMauro Carvalho ChehabThis program is free software; you can redistribute it and/or modify it 12*ecefae6dSMauro Carvalho Chehabunder the terms of the GNU General Public License as published by the Free 13*ecefae6dSMauro Carvalho ChehabSoftware Foundation; either version 2 of the License, or (at your option) 14*ecefae6dSMauro Carvalho Chehabany later version. 15*ecefae6dSMauro Carvalho Chehab 16*ecefae6dSMauro Carvalho ChehabThis program is distributed in the hope that it will be useful, but 17*ecefae6dSMauro Carvalho ChehabWITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18*ecefae6dSMauro Carvalho Chehabor FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 19*ecefae6dSMauro Carvalho Chehabmore details. 20*ecefae6dSMauro Carvalho Chehab 21*ecefae6dSMauro Carvalho ChehabYou should have received a copy of the GNU General Public License along 22*ecefae6dSMauro Carvalho Chehabwith this program; if not, write to the Free Software Foundation, Inc., 59 23*ecefae6dSMauro Carvalho ChehabTemple Place, Suite 330, Boston, MA 02111-1307 USA 24*ecefae6dSMauro Carvalho Chehab 25*ecefae6dSMauro Carvalho ChehabShould you need to contact me, the author, you can do so either by e-mail - 26*ecefae6dSMauro Carvalho Chehabmail your message to <vojtech@suse.cz>, or by paper mail: Vojtech Pavlik, 27*ecefae6dSMauro Carvalho ChehabUcitelska 1576, Prague 8, 182 00 Czech Republic 28*ecefae6dSMauro Carvalho Chehab 29*ecefae6dSMauro Carvalho ChehabFor your convenience, the GNU General Public License version 2 is included 30*ecefae6dSMauro Carvalho Chehabin the package: See the file COPYING. 31*ecefae6dSMauro Carvalho Chehab 32*ecefae6dSMauro Carvalho Chehab1. Usage 33*ecefae6dSMauro Carvalho Chehab~~~~~~~~ 34*ecefae6dSMauro Carvalho ChehabThe drivers/usb/class/cdc-acm.c drivers works with USB modems and USB ISDN terminal 35*ecefae6dSMauro Carvalho Chehabadapters that conform to the Universal Serial Bus Communication Device Class 36*ecefae6dSMauro Carvalho ChehabAbstract Control Model (USB CDC ACM) specification. 37*ecefae6dSMauro Carvalho Chehab 38*ecefae6dSMauro Carvalho ChehabMany modems do, here is a list of those I know of: 39*ecefae6dSMauro Carvalho Chehab 40*ecefae6dSMauro Carvalho Chehab - 3Com OfficeConnect 56k 41*ecefae6dSMauro Carvalho Chehab - 3Com Voice FaxModem Pro 42*ecefae6dSMauro Carvalho Chehab - 3Com Sportster 43*ecefae6dSMauro Carvalho Chehab - MultiTech MultiModem 56k 44*ecefae6dSMauro Carvalho Chehab - Zoom 2986L FaxModem 45*ecefae6dSMauro Carvalho Chehab - Compaq 56k FaxModem 46*ecefae6dSMauro Carvalho Chehab - ELSA Microlink 56k 47*ecefae6dSMauro Carvalho Chehab 48*ecefae6dSMauro Carvalho ChehabI know of one ISDN TA that does work with the acm driver: 49*ecefae6dSMauro Carvalho Chehab 50*ecefae6dSMauro Carvalho Chehab - 3Com USR ISDN Pro TA 51*ecefae6dSMauro Carvalho Chehab 52*ecefae6dSMauro Carvalho ChehabSome cell phones also connect via USB. I know the following phones work: 53*ecefae6dSMauro Carvalho Chehab 54*ecefae6dSMauro Carvalho Chehab - SonyEricsson K800i 55*ecefae6dSMauro Carvalho Chehab 56*ecefae6dSMauro Carvalho ChehabUnfortunately many modems and most ISDN TAs use proprietary interfaces and 57*ecefae6dSMauro Carvalho Chehabthus won't work with this drivers. Check for ACM compliance before buying. 58*ecefae6dSMauro Carvalho Chehab 59*ecefae6dSMauro Carvalho ChehabTo use the modems you need these modules loaded:: 60*ecefae6dSMauro Carvalho Chehab 61*ecefae6dSMauro Carvalho Chehab usbcore.ko 62*ecefae6dSMauro Carvalho Chehab uhci-hcd.ko ohci-hcd.ko or ehci-hcd.ko 63*ecefae6dSMauro Carvalho Chehab cdc-acm.ko 64*ecefae6dSMauro Carvalho Chehab 65*ecefae6dSMauro Carvalho ChehabAfter that, the modem[s] should be accessible. You should be able to use 66*ecefae6dSMauro Carvalho Chehabminicom, ppp and mgetty with them. 67*ecefae6dSMauro Carvalho Chehab 68*ecefae6dSMauro Carvalho Chehab2. Verifying that it works 69*ecefae6dSMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 70*ecefae6dSMauro Carvalho Chehab 71*ecefae6dSMauro Carvalho ChehabThe first step would be to check /sys/kernel/debug/usb/devices, it should look 72*ecefae6dSMauro Carvalho Chehablike this:: 73*ecefae6dSMauro Carvalho Chehab 74*ecefae6dSMauro Carvalho Chehab T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 75*ecefae6dSMauro Carvalho Chehab B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 76*ecefae6dSMauro Carvalho Chehab D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 77*ecefae6dSMauro Carvalho Chehab P: Vendor=0000 ProdID=0000 Rev= 0.00 78*ecefae6dSMauro Carvalho Chehab S: Product=USB UHCI Root Hub 79*ecefae6dSMauro Carvalho Chehab S: SerialNumber=6800 80*ecefae6dSMauro Carvalho Chehab C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA 81*ecefae6dSMauro Carvalho Chehab I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub 82*ecefae6dSMauro Carvalho Chehab E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms 83*ecefae6dSMauro Carvalho Chehab T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 84*ecefae6dSMauro Carvalho Chehab D: Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs= 2 85*ecefae6dSMauro Carvalho Chehab P: Vendor=04c1 ProdID=008f Rev= 2.07 86*ecefae6dSMauro Carvalho Chehab S: Manufacturer=3Com Inc. 87*ecefae6dSMauro Carvalho Chehab S: Product=3Com U.S. Robotics Pro ISDN TA 88*ecefae6dSMauro Carvalho Chehab S: SerialNumber=UFT53A49BVT7 89*ecefae6dSMauro Carvalho Chehab C: #Ifs= 1 Cfg#= 1 Atr=60 MxPwr= 0mA 90*ecefae6dSMauro Carvalho Chehab I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=acm 91*ecefae6dSMauro Carvalho Chehab E: Ad=85(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms 92*ecefae6dSMauro Carvalho Chehab E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms 93*ecefae6dSMauro Carvalho Chehab E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms 94*ecefae6dSMauro Carvalho Chehab C:* #Ifs= 2 Cfg#= 2 Atr=60 MxPwr= 0mA 95*ecefae6dSMauro Carvalho Chehab I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm 96*ecefae6dSMauro Carvalho Chehab E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms 97*ecefae6dSMauro Carvalho Chehab I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm 98*ecefae6dSMauro Carvalho Chehab E: Ad=85(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms 99*ecefae6dSMauro Carvalho Chehab E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms 100*ecefae6dSMauro Carvalho Chehab 101*ecefae6dSMauro Carvalho ChehabThe presence of these three lines (and the Cls= 'comm' and 'data' classes) 102*ecefae6dSMauro Carvalho Chehabis important, it means it's an ACM device. The Driver=acm means the acm 103*ecefae6dSMauro Carvalho Chehabdriver is used for the device. If you see only Cls=ff(vend.) then you're out 104*ecefae6dSMauro Carvalho Chehabof luck, you have a device with vendor specific-interface:: 105*ecefae6dSMauro Carvalho Chehab 106*ecefae6dSMauro Carvalho Chehab D: Ver= 1.00 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs= 2 107*ecefae6dSMauro Carvalho Chehab I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=acm 108*ecefae6dSMauro Carvalho Chehab I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=acm 109*ecefae6dSMauro Carvalho Chehab 110*ecefae6dSMauro Carvalho ChehabIn the system log you should see:: 111*ecefae6dSMauro Carvalho Chehab 112*ecefae6dSMauro Carvalho Chehab usb.c: USB new device connect, assigned device number 2 113*ecefae6dSMauro Carvalho Chehab usb.c: kmalloc IF c7691fa0, numif 1 114*ecefae6dSMauro Carvalho Chehab usb.c: kmalloc IF c7b5f3e0, numif 2 115*ecefae6dSMauro Carvalho Chehab usb.c: skipped 4 class/vendor specific interface descriptors 116*ecefae6dSMauro Carvalho Chehab usb.c: new device strings: Mfr=1, Product=2, SerialNumber=3 117*ecefae6dSMauro Carvalho Chehab usb.c: USB device number 2 default language ID 0x409 118*ecefae6dSMauro Carvalho Chehab Manufacturer: 3Com Inc. 119*ecefae6dSMauro Carvalho Chehab Product: 3Com U.S. Robotics Pro ISDN TA 120*ecefae6dSMauro Carvalho Chehab SerialNumber: UFT53A49BVT7 121*ecefae6dSMauro Carvalho Chehab acm.c: probing config 1 122*ecefae6dSMauro Carvalho Chehab acm.c: probing config 2 123*ecefae6dSMauro Carvalho Chehab ttyACM0: USB ACM device 124*ecefae6dSMauro Carvalho Chehab acm.c: acm_control_msg: rq: 0x22 val: 0x0 len: 0x0 result: 0 125*ecefae6dSMauro Carvalho Chehab acm.c: acm_control_msg: rq: 0x20 val: 0x0 len: 0x7 result: 7 126*ecefae6dSMauro Carvalho Chehab usb.c: acm driver claimed interface c7b5f3e0 127*ecefae6dSMauro Carvalho Chehab usb.c: acm driver claimed interface c7b5f3f8 128*ecefae6dSMauro Carvalho Chehab usb.c: acm driver claimed interface c7691fa0 129*ecefae6dSMauro Carvalho Chehab 130*ecefae6dSMauro Carvalho ChehabIf all this seems to be OK, fire up minicom and set it to talk to the ttyACM 131*ecefae6dSMauro Carvalho Chehabdevice and try typing 'at'. If it responds with 'OK', then everything is 132*ecefae6dSMauro Carvalho Chehabworking. 133