diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-04-19 04:00:00 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-04-19 04:00:00 +0000 |
commit | 46e045034336a2cc90c1798cd7cc07af744ddfd6 (patch) | |
tree | 3b9b51fc482e729f663d25333e77fbed9aaa939a /Documentation/usb/acm.txt | |
parent | 31dc59d503a02e84c4de98826452acaeb56dc15a (diff) |
Merge with Linux 2.3.99-pre4.
Diffstat (limited to 'Documentation/usb/acm.txt')
-rw-r--r-- | Documentation/usb/acm.txt | 232 |
1 files changed, 138 insertions, 94 deletions
diff --git a/Documentation/usb/acm.txt b/Documentation/usb/acm.txt index c978974f1..e4fced658 100644 --- a/Documentation/usb/acm.txt +++ b/Documentation/usb/acm.txt @@ -1,94 +1,138 @@ -The ACM driver works with modems and ISDN TAs that use the USB Abstract -Control Model standard. - -**************************** -Test it: -Watch out, the driver is not stable and tested. Sync often, make backups, -most importand: don't blame me... - -Create device files: -mknod /dev/ttyACM0 c 166 0 -mknod /dev/ttyACM1 c 166 1 -mknod /dev/ttyACM2 c 166 2 -mknod /dev/ttyACM3 c 166 3 -Compile a kernel with support for your host controller (uhci only for now!) -and support for ACM. Boot this kernel. If you connect your device to the -USB bus you should see messages like the following: - -Jul 19 20:14:29 office kernel: USB new device connect, assigned device number 1 -Jul 19 20:14:29 office kernel: Found 02:09 -Jul 19 20:14:29 office kernel: Found 04:09 -Jul 19 20:14:29 office kernel: Found 05:07 -Jul 19 20:14:29 office last message repeated 2 times -Jul 19 20:14:29 office kernel: parsed = 39 len = 67 -Jul 19 20:14:29 office kernel: Expected descriptor 04/09, got 02/09 - skipping -Jul 19 20:14:29 office kernel: 0 09 -Jul 19 20:14:29 office kernel: 1 02 -Jul 19 20:14:29 office kernel: 2 43 -Jul 19 20:14:29 office kernel: 3 00 -Jul 19 20:14:29 office kernel: 4 02 -Jul 19 20:14:29 office kernel: 5 02 -Jul 19 20:14:29 office kernel: 6 04 -Jul 19 20:14:29 office kernel: 7 60 -Jul 19 20:14:29 office kernel: 8 00 -Jul 19 20:14:29 office kernel: Found 04:09 -Jul 19 20:14:29 office kernel: Found 02:09 -Jul 19 20:14:29 office kernel: Found 04:09 -Jul 19 20:14:29 office kernel: Found 05:07 -Jul 19 20:14:29 office kernel: Found 04:09 -Jul 19 20:14:29 office kernel: Found 05:07 -Jul 19 20:14:29 office kernel: Found 05:07 -Jul 19 20:14:29 office kernel: parsed = 67 len = 0 -Jul 19 20:14:29 office kernel: getstringtable -Jul 19 20:14:29 office kernel: acm_probe -Jul 19 20:14:29 office kernel: USB ACM found - -Watch out for the line: -Jul 19 20:14:29 office kernel: USB new device connect, assigned device number 1 -and the line: -Jul 19 20:14:29 office kernel: USB ACM found -These two lines show that the device was seen by the usb host controller and -then recognized by the acm driver as a valid device. - -If you use a terminal emulation software like minicom with /dev/ttyACM0 you -should be able to send AT commands to your device and get responses. I've -been able to do zmodem downloads to another pc. However downloads from one -ISDN TA to another ISDN TA connected to the same PC didn't work. Don't -know why. Flow control is not finised after all and i'd guess there might -be problems on heavily loades PCs. I also did some tests with ppp but i'm -not finised with this. There might be a chance to get it working. However -i'd like to know if your device is recognized as an ACM device. I'm also -interested if the thing is stable or if it crashes. -(should i say how it crases?) - -You should be able to add and remove devices from the bus. The driver will -always try to fill up unused ttys. This means if you hotplug devices their -order may have changed after reboot. This is not the behaviour Linus liked -to see but it's ok for now. (I hope ;-) - -Please report your experiences to me: -fuerst@in.tum.de - -*************************** -I've tested it with: -3Com ISDN Pro TA. - -It should work with (That means i know these devices conform to ACM): -3Com Office Connect Modem -3Com Sportster USB (I think that's what it's called) - -*************************** -Many thanks to 3Com which did not only support me with hardware but also -with technical support in USB questions. They also allowed me to do tests in -their lab. Great! - -*************************** -Known bugs: -Flow control not tested (likely not to work) -Some tty function calls not implemented (putchar, etc...) -Huge amounts of debug output (compile in [*] Magic SysRq key and press ALT+PRTSCR+0 ) -Not all mem is freed at close (need terminate irq in hcd) - -*************************** -Have fun, - Armin Fuerst + Linux ACM driver v0.16 + (c) 1999 Vojtech Pavlik <vojtech@suse.cz> + Sponsored by SuSE +---------------------------------------------------------------------------- + +0. Disclaimer +~~~~~~~~~~~~~ + This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2 of the License, or (at your option) +any later version. + + This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +more details. + + You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., 59 +Temple Place, Suite 330, Boston, MA 02111-1307 USA + + Should you need to contact me, the author, you can do so either by e-mail +- mail your message to <vojtech@suse.cz>, or by paper mail: Vojtech Pavlik, +Ucitelska 1576, Prague 8, 182 00 Czech Republic + + For your convenience, the GNU General Public License version 2 is included +in the package: See the file COPYING. + +1. Usage +~~~~~~~~ + The drivers/usb/acm.c drivers works with USB modems and USB ISDN terminal +adapters that conform to the Universal Serial Bus Communication Device Class +Abstract Control Model (USB CDC ACM) specification. + + Many modems do, here is a list of those I know of: + + 3Com OfficeConnect 56k + 3Com Voice FaxModem Pro + 3Com Sportster + MultiTech MultiModem 56k + Zoom 2986L FaxModem + Compaq 56k FaxModem + ELSA Microlink 56k + + I know of one ISDN TA that does work with the acm driver: + + 3Com USR ISDN Pro TA + + Unfortunately many modems and most ISDN TAs use proprietary interfaces and +thus won't work with this drivers. Check for ACM compliance before buying. + + The driver (with devfs) creates these devices in /dev/usb/acm: + + crw-r--r-- 1 root root 166, 0 Apr 1 10:49 0 + crw-r--r-- 1 root root 166, 1 Apr 1 10:49 1 + crw-r--r-- 1 root root 166, 2 Apr 1 10:49 2 + + And so on, up to 31, with the limit being possible to change in acm.c to up +to 256, so you can use up to 256 USB modems with one computer (you'll need +three USB cards for that, though). + + If you don't use devfs, then you can create device nodes with the same +minor/major numbers anywhere you want, but either the above location or +/dev/usb/ttyACM0 is preferred. + + To use the modems you need these modules loaded: + + usbcore.o + usb-[uo]hci.o or uhci.o + acm.o + + After that, the modem[s] should be accessible. You should be able to use +minicom, ppp and mgetty with them. + +2. Verifying that it works +~~~~~~~~~~~~~~~~~~~~~~~~~~ + The first step would be to check /proc/bus/usb/devices, it should look +like this: + +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 + +The presence of these three lines (and the Cls= 'comm' and 'data' classes) +is important, it means it's an ACM device. The Driver=acm means the acm +driver is used for the device. If you see only Cls=ff(vend.) then you're out +of luck, you have a device with vendor specific-interface. + +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 + +In the system log you should see: + +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 + +If all this seems to be OK, fire up minicom and set it to talk to the ttyACM +device and try typing 'at'. If it responds with 'OK', then everything is +working. |