USB ACM Modem Help

Robert D. Nashner yellowdog-newbie@lists.terrasoftsolutions.com
Wed, 07 May 2003 15:36:50 -0700


       USB Modem and ACM driver Issues (need the fix or an update)

THIS IS SAME HELP REQUEST YESTERDAY WITH INTERNAL WRAPPING OFF TO TRY TO
MAKE MORE READABLE

System is a PowerMac 7500 with 604 CPU, and has had for a while now a YDL
Ver. 2.1 (kernel 2.4.10) installed dual booting with OS 8.6. USB interface
is via Keyspan #1045 PCI card; it runs the mice, an Epson C60, and Zoom
2986L 56K modem.

For my YDL installation, The usbdevfs uses OHCI v4.0 and ACM module v0.20.
All USB devices are built-in now, not modular. Also I made 4
/dev/usb/ttyACM* nodes as the HowTo's advise. Once Linux boots, file
/proc/bus/usb/devices has the following modem information:

   T:  Bus=01 Lev=01 Prnt=01 Port=00 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=0803 ProdID=9700 Rev= 1.00
   S:  Manufacturer=Zoom Telephonics, Inc.
   S:  Product=Zoom V90 USB Faxmodem
   C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=400mA
   I:  If#= 0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
   I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
   E:  Ad=02(O) Atr=02(Bulk) MxPS=  16 Ivl=  0ms
   E:  Ad=84(I) Atr=03(Int.) MxPS=  63 Ivl=  2ms
   C:  #Ifs= 2 Cfg#= 2 Atr=a0 MxPwr=400mA
   I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none)
   E:  Ad=84(I) Atr=03(Int.) MxPS=  32 Ivl=128ms
   I:  If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=01 Driver=(none)
   E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
   E:  Ad=86(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms

Then after boot-up: the ACM driver installation message in file
/var/log/messages is as follows:

   Apr 24 21:17:15 localhost kernel: usb.c: registered new driver acm
   Apr 24 21:17:15 localhost kernel: acm.c: v0.20:USB Abstract Control
   Model driver for USB modems and ISDN adapters
   
After examining source acm.c I know from the log message that the ACM driver
got registered; its acm_init() routine printed the above message. But the
modem's usb/devices data shows as the current (c:*)configuration, the 1st
one with the wrong vendor classes instead of the 2nd with standard looking
comm and data interfaces.

The acm's acm_probe() routine loops through all the configurations till it
finds the right one. It looks OK, like it should have found the 2nd C: line
of this modem if called with right device (dev) structure containing good
modem data as seen in usb/devices. The 2986L is in the ACM compatability
lists. The acm prober has a printk() call which when a compatable modem
device is found, displays something like this in the messages log:

   localhost kernel: usb.c: ttyACM0: USB ACM device
    
But this is never written; instead the message logged in log/dmesg is:

   usb.c: USB device 2 (vend/prod 0x803/0x9700) is not claimed by any active
driver

for the modem interfaces, and similarly, all interface drivers for the modem
show up in usb/devices as (none) instaed of acm. Two possibilities seem most
likely now; either the acm prober never runs - doesn't get called by the
file system, or some usb_device structure is passed with device info. from
usb/devices other than for the modem. The other drivers blp, hub, & hid  get
probed and seem to work as expected.

I didn't see this issue discussed in the newbie messages archive.

The acm prober also has a configuration number probing debug message (not
enabled now) which otherwise could tell me if acm_probe() even ran. Before
take the trouble to recompile with USB modules, insert more debug messages
in the prober to examine I: and E lines, etc. I am asking, is there an
driver update or more likely, what YDL Version fixes this?.  I will probably
upgrade it all to 3.0 eventually; but now I would be satisfied with the
earliest version known to solve this problem, or whatever takes the least
time to get what I have to work and go on line.

Thanks for and additional information or advice
RDN