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

Re: Which external modem should I get <- Any old serial type will work



Jim Rix wrote:
> I would welcome suggestions on which external v.90 modem
> I should obtain that is Linux compatible.

Any _serial_ (NOT USB!) external v.90 modem should work.

Unlike internal "software modems", an external serial modem uses the
UART (universal asynchronous receiver/transmitter) of the serial
port itself -- usually a NS16550-compatible in most mainboad
chipsets these days.  The UART is _key_ to driving the modem, and
UARTs are well-defined and standard programming interfaces for
asynchronous communications (like a modem).  Again, with an
external, serial modem, you have a _real_serial_port_ with a
_real_hardware_UART_ so there are 0 issues (unless the modem is not
Hayes AT-command set compatible, but I have yet to see one sold with
the AT command set these days -- and, in the worst case, you have to
read the manual for the commands).

For internal modems, the modem itself has to provide the UART (since
it has to be a serial port itself).  Since hardware UARTs add a few
extra pennies to the cost of the modem, these "software modems"
leave them out.  As such, there is no "standard way" to drive the
"serial port" (which may be 100% software).  And there is no
"standard" for software-based modem APIs -- at least not for the
ISA/PCI cards.  To date, only IBM has a GPL software modem driver
with PCTel and other vendors making proprietary, kernel-specific
modules (which can be a pain if you use a different kernel than the
distro default).

With USB modems, you still have a software-based solution.  *BUT*
there is a "standard to the madness," although it is up to the
vendor to support it.  The standard is the Communication Device
Class (CDC) specification with the, more importantly, Abstract
Control Model (ACM) sub-class.  ACM-enabled USB modems provide a
UART-like API to the OS and, therefore, work with Linux.  If you are
going to go USB, be sure to get a ACM-enabled modem and use a
USB-enabled kernel (e.g., RedHat 2.2.16-8 or later with the USB 2.2
backport, or any kernel 2.4 release which includes native/extensive
USB support).

Again, if you get an old _serial_ external v.90 modem, you should
have 0 issues under Linux.  You can find them for <$50 on PriceWatch
(http://www.pricewatch.com).

-- TheBS

P.S.  Unfortunately, most USB modems are *NOT* ACM-enabled.  I was
*UN*successful in getting a Best Data USB Modem to work with either
kernel 2.2 or 2.4 because it was not ACM-enabled.

-- 
Bryan "TheBS" Smith         chat:thebs413 @AOL/MSN/Yahoo
Engineer                       mailto:b.j.smith@ieee.org
********************************************************
"Linux will do for applications what the Internet did to
 networks" -- Sam Palmisano, IBM Chief Operating Officer