From: jdaniels on
Hi all,

Sorry for the lengthy email, but I am having trouble getting a USB
modem to work, or even to install correctly, with RedHat Enterprise
Linux

I have the following setup:

- RedHat ES 4 Update 3 (Kernel version 2.6.9-34smp)
- Zoom 56K Model 2986 USB Modem
- cdc_adm v0.23

I am attempting to use this modem to dial out. However I cannot seem to
get the OS to apply the right driver (the CDC ACM driver, by all
accounts) to it.

The file that made me come to this conclusion is
"/proc/bus/usb/devices":

T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.9-34.ELsmp ohci_hcd
S: Product=OHCI Host Controller
S: SerialNumber=0000:01:00.1
C:* #Ifs= 1 Cfg#= 1 Atr=e0 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= 2 Ivl=255ms

T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 3
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.9-34.ELsmp ohci_hcd
S: Product=OHCI Host Controller
S: SerialNumber=0000:01:00.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 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= 2 Ivl=255ms

T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0572 ProdID=1280 Rev= 1.00
S: Manufacturer=Conexant Systems, Inc.
S: Product=USB ACF Modem
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=260mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 1 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=(none)
E: Ad=82(I) Atr=03(Int.) MxPS= 64 Ivl=1ms

My understanding (based on the devices file and
http://www.theory.physics.ubc.ca/usb-acm.txt and acm.txt on my
filesystem) is that (a) this modem supports the ACM driver (unless
there is a world of difference between the 2986 and the 2986L) and (b)
the driver associated with the modem should be listed in the devices
file as Driver=(acm) or Driver=(cdc_acm). As you can see, with me, it's
"none". So I figure that the driver has not been mapped in some way to
this device, or the device has not been mapped to a device name, such
as /dev/usb/ttyACM0.

My "dmesg" output contains the following extract (which tells me I have
the driver I need):

usbcore: registered new driver cdc_acm
drivers/usb/class/cdc-acm.c: v0.23:USB Abstract Control Model driver
for USB modems and ISDN adapters

The CDC_ACM modules is loaded - the output of "lsmod" is as follows:

Module Size Used by
ipt_REJECT 10561 0
iptable_filter 6721 0
ip_tables 21441 2 ipt_REJECT,iptable_filter
dlm 113732 3
cman 122976 8 dlm
md5 8001 1
ipv6 240225 55
cdc_acm 16865 0
dm_mirror 28449 0
dm_mod 59973 1 dm_mirror
button 10449 0
battery 12869 0
ac 8773 0
ohci_hcd 23889 0
hw_random 9557 0
via_rhine 24521 0
mii 9153 1 via_rhine
tg3 95173 0
bonding 60520 0
floppy 58065 0
ext3 118729 3
jbd 59481 1 ext3
qla6312 119168 0
qla2400 197632 0
qla2300 128512 0
qla2xxx 304024 4 qla6312,qla2400,qla2300
qla2xxx_conf 305924 1
cciss 57989 4
sd_mod 20545 2
scsi_mod 116941 3 qla2xxx,cciss,sd_mod

The driver is available for use by the modem, as the output to
"usbmodules" shows here:



I tried creating character devices as follows:

mknod /dev/usb/ttyACM0 c 166 0
mknod /dev/usb/ttyACM1 c 166 1
mknod /dev/usb/ttyACM2 c 166 2
mknod /dev/usb/ttyACM3 c 166 3

I am not sure how much difference this made, so in addition I am unsure
of how to even refer to the device, to obtain info via "udevinfo", for
example, let alone dialling out :)

If anyone has any pointers, that would be greatly appreciated.

Many thanks,
Jon Daniels

From: Lasse Jensen on
jdaniels wrote:

> If anyone has any pointers, that would be greatly appreciated.

You probably have to edit the source and add your modems vendor and device
ID, then rebuild and reinstall the modules.

--
Lasse Jensen [fafler at g mail dot com]
Linux, the choice of a GNU generation.