[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Communicating with USB Modem



I have a Debian Lenny system and I've plugged in a USB 56K modem.  (I know that's as outdated as a Model T, but I need it for business.)  When I type "cat /proc/bus/usb/devices" I get this:

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 8
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 2.06
S:  Manufacturer=Linux 2.6.26-2-686 ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=0000:00:1d.7
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=   4 Ivl=256ms

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.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0001 Rev= 2.06
S:  Manufacturer=Linux 2.6.26-2-686 uhci_hcd
S:  Product=UHCI Host Controller
S:  SerialNumber=0000:00:1d.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=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=047e ProdID=2892 Rev= 2.00
S:  Manufacturer=Agere Systems
S:  Product=Agere USB2.0 V.92 SoftModem
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=82(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=02(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
I:  If#= 0 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=82(I) Atr=01(Isoc) MxPS=  32 Ivl=1ms
E:  Ad=02(O) Atr=01(Isoc) MxPS=  32 Ivl=1ms
I:  If#= 0 Alt= 2 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=16ms

From what I can find, that means the actual device file for this modem should be at /dev/bus/usb/001/002, but I know I could be wrong on that.

I'm trying to communicate with this modem.  I've used Minicom, with the device I mentioned above.  There are no /dev/ttyACM0 devices, as sometimes happens with a modem.  I've tried all /dev/ttySx, where x is from 0 to 4, with no results.  The problem with Minicom is that it can take time and a lot of frustrating keypresses to try one device after another.  Also, I'm not sure the serial port speed settings are at all appropriate in Minicom for USB modems.

I was also trying a Perl program that would simply fork, have the parent open the device for reading and listen, then the child would open the same device for writing and send "ATZ" through to the device, then I could watch for a response -- but then when I tried it on a system with a serial port where I knew the device was /dev/ttyS0, it didn't work, so maybe there's a problem with the program.  (I don't want to post a full Perl program here, since this isn't a Perl board that focuses on debugging Perl.)

This is a test situation, so I can't be sure the modem works with Linux, but I would think if it's external and USB, it would have to accept serial commands sent over the USB port.  I could be wrong on this, of course.

So here's the questions:

1) What device should I be able to write to and read from to connect to this modem?

2) Any suggestions on how to write to and read from the device?  (Write to it in Perl or use echo in bash -- but then how do I read to see results?)

3) Any other ideas or suggestions on how to control and use this modem in Linux (without going into C or C++)?


Thanks for any help on this!



Hal

Reply to: