Linux Winmodem Support
Linmodem source code is listed below.
We've got a discussion
, an announcements-only
mailing list, and this web page. I'm working on new archives
which Google will index more happily. They have a copy of the
archives, not the live archives themselves, so currently new
articles aren't being added.
The FIRST step towards finding a Linux driver is identifying
the modem's CHIPSET. The scanModem tool will help
you. Please download and run the scanModem tool before sending any
query to email@example.com. The chipset will be recognized and
cogent updated knowledge and URLs written out. The manufacturer brand
with model number are generally NOT informative in this
regard. Modems from a single manufacturer can have different
chips. But your documentation may have this critical information, so
read it carefully. For PCI card modems, a database can be searched. A
broader database is also
available. Controller based modems utilize the "standard" serial
drivers, while the winmodems in most newer PCs and laptops require
their own drivers. General information on these issues is available
at the Linmodem-Howto.
"Only after your chipset has been identified should help be sought from the
mailing list, firstname.lastname@example.org, wherein discussions on many issues reside.
(Be sure to check the archives first.)"
Much more information or driver kits for particular chipsets can be
Id Software's John Carmack has posited that a linmodem may be able
to have lower latency than a controller-ful modem. This is an issue
of great importance to real-time gamers, as the slightest decrease in
latency translates into a higher score.
Russ Nelson writes: A lot of people claim that a Winmodem has no
place in a Linux box. I disagree. There are many applications for a
Winmodem if you stop thinking of it as a modem, and start thinking of
it as a telephone interface:
- Think telephone emulation (put the audio card into full duplex, and
talk to the linmodem with it).
- Think telephone with a backspace key (use the linmodem to dial for you).
- Think smart telephone: "That line is busy. Do you want me to retry in
- Think "voice dialling".
- Think "soft pbx". Equip
enough machines in an office for all the outside lines. Then do IP
telephone inter-office, and go to a linmodem when you need an outside
- Think answering machine.
- Think pager interface. (Your answering machine takes the call,
phones your pager company and pages you).
- Think "contact database with integral dialler, and answering
- Think "call recording with no off-hook click".
- Think message detail recorder (basically a record of all time
spent on the phone. Great for billing).
None of these require more CPU than a 386.
All winmodems are implemented via a chipset that a modem
manufacturer solders onto a board. For better or worse, they're all
incompatible with each other, just like Ethernet chipsets. Worse
(definitely for worse), some of them seem to have documentation which
is not publicly available. Some chipsets are listed below. Note that
not all chipsets are equal. Some have a DSP. Some do not and hence
require host signal processing (HSP). For the purposes listed above,
a DSP helps very little.
- Lucent (DSP)
- PC-Tel (HSP)
- US Robotics isn't offering drivers, but some speculate that they are based on (OEM versions of)
Rockwell/Conexant hsfi drivers.
- A patent on UART emulation held by PC-Tel.
- PC-Tel licensed their HSP modem to NEC, and NEC documented the
register set (3Mbyte file) on pages 519ff. Not clear how useful this is yet, but it's
- Intel (nee Ambient Technology, nee Cirrus Logic)
- Intel 537EP = Ambient MD3200
- Conexant (nee
- 3Com (nee US Robotics) (DSP)
- IBM MWave (DSP)
Well, I never thought there's be a "Vendor Support" section, but here it is.
- There's a Linuxworld story about a PCTel
linmodem driver. The driver has been released, but PCTel
does not distribute it. You can get a copy from PCCHIPS,
who puts one of PCTel's modems on their motherboard. Nick
Lopez ported the glue to a recent
version of 2.3. And there's a bunch more information
about the PCTel.
The unofficial PCTel softmodem-Linux Compatibility Database.
- There are driver compiler kits for Lucent chipset modems, serving more
recent 2.2.nn & 2.4.nn kernels, largely replacing a binary only driver
compiled under 2.2.12 sources There are updates for the 2.2 and
2.4 kernels. There's some interesting third-party
information about that modem.
- Randal H Oliveira has put together a list of Lucent RPM's:
- IBM has written a modem driver for IBM ThinkPad™ 600,
600E, and 770 models which contain the Mwave chipset under the
GPL licence. IBM also provide a driver for the TP 390X, TP570E,
600X, A2*, T2*, and X20 laptops using ThinkPad
LT MiniPCI Modem (Lucent Modems only).
- Pavel Machek and Richard have some code to try out with lucent winmodems. It will get
the phone on- and off-hook, and can do full-duplex transmission and
- Mikhail Moreyra has written a driver for the CL-MD5620DT (Ambient Tech) chipset.
It does PPP.
encodes and decodes a number of audio signals, including AFSK, and
- A DTMF encoder. Compile it (cc dtmf.c -lm -o dtmf), give
it some dtmf digits on the command line, and redirect its output to /dev/dsp.
- A paper on DTMF
detection, comparing three algorithms.
- In general, Ptolemy
looks interesting for the telecom codec driver.
- Fabrice Bellard is writing a generic
linmodem driver. It presumes that some other driver
is accessing the linmodem to retrieve samples from the
phone line. He has recently (early March) made
substantial progress -- check it out!
- The late
Tony Fischer also has a generic
modem. He has written a working fax modem software (but only for
a Silicon Graphics Indy). He has also worked on a v.34 modem. He
also has got a circuit dragram (and also PCB design) diagram of an LTU
(Line Terminating Unit). He was writing a book entitled "Soft Modems:
Structured Design and Implementation" at the time of his death. Some
people have a Linux
port of Tony's v.32bis modem.
- The Linux
Reveal VM100 Project looks interesting. The VM100 is
an interface between a phone line and a sound card.
Unfortunately, the VM100 is no longer in production. You
might still be able to find one on EBay.
- The echo canceler (hard part of v.34) seems to be solved.
- Telephone line audio interface circuits
- Intel is supporting a standard for its motherboards
It's on almost every 810 motherboard, and many 820 and
recent VIA motherboards have these AMR slots. AMR means
Audio Modem Riser. Its a special small slot, replacing one
of the PCI or ISA slot positions. It carries analogue
audio from the motherboard's AC97 codec, and some control
lines. The small card which plugs into this slot carries
only the bare line interface circuitry. Being on a
separate card, it is easy to make a variety of versions to
meet each region's local telecom standards. It should be
ideal for simple CTI and modem applications.