USB acm modem help

Robert D. Nashner yellowdog-newbie@lists.terrasoftsolutions.com
Tue, 06 May 2003 23:36:59 -0700


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

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: is 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