382 lines
19 KiB
HTML
382 lines
19 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
|
|
<TITLE> Modem-HOWTO: Introduction</TITLE>
|
|
<LINK HREF="Modem-HOWTO-2.html" REL=next>
|
|
|
|
<LINK HREF="Modem-HOWTO.html#toc1" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="Modem-HOWTO-2.html">Next</A>
|
|
Previous
|
|
<A HREF="Modem-HOWTO.html#toc1">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s1">1.</A> <A HREF="Modem-HOWTO.html#toc1">Introduction</A></H2>
|
|
|
|
<H2><A NAME="ss1.1">1.1</A> <A HREF="Modem-HOWTO.html#toc1.1">DSL, Cable, and ISDN Modems in other HOWTOs</A>
|
|
</H2>
|
|
|
|
<P> This HOWTO covers conventional analog modems for PCs on the PCI,
|
|
USB, LPC, and ISA buses. USB and ISDN coverage is weak. For other
|
|
types of modems see:</P>
|
|
<P>
|
|
<UL>
|
|
<LI> DSL-HOWTO</LI>
|
|
<LI> ADSL-Bandwidth-Management-HOWTO</LI>
|
|
<LI> Cable-Modems-HOWTO (same as Cable Modem Providers HOWTO)</LI>
|
|
<LI> SuSE ISDN Howto (not a LDP Howto)
|
|
<A HREF="http://brenner.chemietechnik.uni-dortmund.de/doc/sdb/en/html/isdn.html">http://brenner.chemietechnik.uni-dortmund.de/doc/sdb/en/html/isdn.html</A></LI>
|
|
<LI>
|
|
<A HREF="http://public.swbell.net/ISDN/overview.html">http://public.swbell.net/ISDN/overview.html</A>
|
|
tutorial on ISDN </LI>
|
|
<LI> ISDN docs in the kernel documentation subdirectory: "isdn".</LI>
|
|
<LI>
|
|
<A HREF="http://www.isdn4linux.de">http://www.isdn4linux.de</A></LI>
|
|
<LI>
|
|
<A HREF="Modem-HOWTO-25.html#other_modems">Appendix D: Other Types of Modems</A></LI>
|
|
</UL>
|
|
</P>
|
|
|
|
<H2><A NAME="ss1.2">1.2</A> <A HREF="Modem-HOWTO.html#toc1.2">Also not well covered: PCMCIA Modems, PPP</A>
|
|
</H2>
|
|
|
|
<P> For modems on the PCMCIA bus see the PCMCIA-HOWTO: PCMCIA serial
|
|
and modem devices. This HOWTO also doesn't cover the details of PPP
|
|
(used to connect to the Internet via a modem) or communication
|
|
programs. If you want to use a modem to connect to the Internet then
|
|
you need to use a program that will automatically set up PPP for you
|
|
(such as wvdial). More documentation on ppp should be found in
|
|
/usr/doc/ppp, /usr/share/doc/ppp or the like.</P>
|
|
|
|
<H2><A NAME="ss1.3">1.3</A> <A HREF="Modem-HOWTO.html#toc1.3">Copyright, Disclaimer, Trademarks, & Credits</A>
|
|
</H2>
|
|
|
|
<H3>Copyright</H3>
|
|
|
|
<P> Copyright (c) 1998-2005 by David S. Lawyer
|
|
<A HREF="mailto:dave@lafn.org">mailto:dave@lafn.org</A></P>
|
|
<P>Please freely copy and distribute (sell or give away) this document
|
|
in any format. Send any corrections and comments to the document
|
|
maintainer. You may create a derivative work and distribute it
|
|
provided that you:</P>
|
|
<P>
|
|
<OL>
|
|
<LI> If it's not a translation: Email a copy of your derivative work
|
|
(in a format LDP accepts) to the author(s) and maintainer (could be
|
|
the same person). If you don't get a response then email the LDP
|
|
(Linux Documentation Project): submit@en.tldp.org.</LI>
|
|
<LI>License the derivative work in the spirit of this license or use
|
|
GPL. Include a copyright notice and at least a pointer to the
|
|
license used.</LI>
|
|
<LI>Give due credit to previous authors and major contributors.</LI>
|
|
</OL>
|
|
</P>
|
|
<P>If you're considering making a derived work other than a
|
|
translation, it's requested that you discuss your plans with the
|
|
current maintainer.</P>
|
|
|
|
<H3>Disclaimer</H3>
|
|
|
|
<P> While I haven't intentionally tried to mislead you, there are
|
|
likely a number of errors in this document. Please let me know about
|
|
them. Since this is free documentation, it should be obvious that I
|
|
cannot be held legally responsible for any errors.</P>
|
|
|
|
<H3>Trademarks.</H3>
|
|
|
|
<P> Any brand names (starts with a capital letter such as MS Windows)
|
|
should be assumed to be a trademark). Such trademarks belong to their
|
|
respective owners. </P>
|
|
|
|
|
|
<P>"Hayes" is a trademark of Microcomputer Products Inc. I use
|
|
"winmodem" to mean any modem which originally required MS-Windows and
|
|
not in the trademark sense. All other trademarks belong to their
|
|
respective owners.</P>
|
|
|
|
<H3>Credits</H3>
|
|
|
|
<P> The following is only a rough approximation of how this this
|
|
document was created in the year 2000: About 1/4 of the material here
|
|
was lifted directly from Serial-HOWTO v. 1.11 (1997) by Greg Hankins.
|
|
<A HREF="mailto:gregh@twoguys.org">mailto:gregh@twoguys.org</A> (with his permission). About
|
|
another 1/4 was taken from that Serial-HOWTO and revised. The
|
|
remaining 1/2 is newly created by the new author: David S. Lawyer
|
|
<CODE>
|
|
<A HREF="mailto:dave@lafn.org">mailto:dave@lafn.org</A></CODE>. Since 2000 much more has
|
|
been added by the current author so that little remains of the modem
|
|
coverage in the old Serial-HOWTO.</P>
|
|
|
|
<H2><A NAME="ss1.4">1.4</A> <A HREF="Modem-HOWTO.html#toc1.4">Contacting the Author</A>
|
|
</H2>
|
|
|
|
<P> Since I don't follow the many different brands/models of modems
|
|
please don't email me with questions about them (or suggestions of
|
|
which one to buy). If you are interested in a certain model (to find
|
|
out if it works under Linux, etc.) see the huge list at
|
|
<A HREF="Modem-HOWTO-20.html#web_sites">Web Sites</A>. Also, please don't ask me how to
|
|
configure a modem unless you've looked over this HOWTO and still can't
|
|
do it. I've no personal experience with software-based modems.</P>
|
|
<P>Please let me know of any errors in facts, opinions, logic, spelling,
|
|
grammar, clarity, links, etc. But first, if the date is over a month
|
|
or two old, check to see that you have the latest version. Please
|
|
send me any other info that you think belongs in this document.</P>
|
|
|
|
<H2><A NAME="new_vers"></A> <A NAME="ss1.5">1.5</A> <A HREF="Modem-HOWTO.html#toc1.5">New Versions of this HOWTO </A>
|
|
</H2>
|
|
|
|
<P> New versions of this Modem-HOWTO should come out every few months.
|
|
Your problem might be solved in the latest version. It will be
|
|
available to browse and/or download at LDP mirror sites. For a list
|
|
of such sites see:
|
|
<A HREF="http://www.tldp.org/mirrors.html">http://www.tldp.org/mirrors.html</A> If you
|
|
only want to quickly compare the date of this the version v0.39, January 2007 with
|
|
the date of the latest version go to:
|
|
<A HREF="http://www.tldp.org/HOWTO/Modem-HOWTO.html">http://www.tldp.org/HOWTO/Modem-HOWTO.html</A></P>
|
|
|
|
<H2><A NAME="ss1.6">1.6</A> <A HREF="Modem-HOWTO.html#toc1.6">New in Recent Versions</A>
|
|
</H2>
|
|
|
|
<P> For a full revision history going back to the first version see
|
|
the source file (in linuxdoc format) at
|
|
<A HREF="http://cvsview.tldp.org/index.cgi/LDP/howto/linuxdoc/Modem-HOWTO.sgml">http://cvsview.tldp.org/index.cgi/LDP/howto/linuxdoc/Modem-HOWTO.sgml</A>.</P>
|
|
<P>
|
|
<UL>
|
|
<LI>v0.39 Jan. 2007 gromitkc url (modem list) seems to be no longer
|
|
maintained. Redefined "antique modems" as all under 56k speed.
|
|
setpci can't set IRQs. devfs is obsolete. vgetty supports ITU v.253</LI>
|
|
<LI>v0.38 May 2005: Eliminated section on Digital Modems in appendix
|
|
since it's already covered elsewhere. More on cable modems. ISDN
|
|
serial modems. Troubleshooting: Can't find winmodems if no driver.</LI>
|
|
<LI>v0.37 Feb. 2005: For AMR, codec is on motherboard. Fixed a few typos.
|
|
Better clarity for Dial-In. "NO CARRIER" likely not displayed when
|
|
remote hangs up.</LI>
|
|
<LI>v0.36 Feb. 2005 Rewrote "Quick Install" oriented towards PCI.
|
|
Some external RS-232 modems are winmodems. /dev/modem.</LI>
|
|
</UL>
|
|
</P>
|
|
|
|
<H2><A NAME="what_is_modem"></A> <A NAME="ss1.7">1.7</A> <A HREF="Modem-HOWTO.html#toc1.7">What is a Modem ? </A>
|
|
</H2>
|
|
|
|
<P> A modem (or analog modem) is a device that lets one send digital
|
|
signals over an ordinary telephone line not designed for digital
|
|
signals. If telephone lines were all digital then you wouldn't need a
|
|
modem. But sometimes, a substitute for an analog modem, connected to
|
|
a digital phone line, is imprecisely called a "digital modem". A
|
|
modem permits your computer to connect to and communicate with the
|
|
rest of the world. When you use a modem, you normally use a
|
|
communication program or web browser to utilize the modem and dial-out
|
|
on a telephone line. Advanced modem users can set things up so that
|
|
others may phone in to them and use the computer remotely. This is
|
|
called "dial-in".</P>
|
|
<P>Oversimplified, there are four basic types of analog modems for a PC:
|
|
external serial (RS-232), USB (= external USB), internal, and
|
|
built-in. The external serial and USB set on your desk outside the PC
|
|
while the other two types are not visible since they're inside the PC.
|
|
The external serial modem plugs into a connector on the back of the PC
|
|
known as a "serial port". The USB modem plugs into a USB cable. See
|
|
<A HREF="Modem-HOWTO-2.html#usb_">USB Modems</A>. The internal modem is a card that
|
|
is inserted inside the computer. The built-in modem is a chip on the
|
|
motherboard used primarily in laptops. What is said in this HOWTO
|
|
regarding internal modems will generally apply also to built-in
|
|
modems. Internal modems are further subdivided into PCI, ISA, and
|
|
AMR, depending on whether they are designed for the PCI or ISA bus, or
|
|
for an AMR slot. </P>
|
|
<P>For an external vs internal comparison see
|
|
<A HREF="Modem-HOWTO-2.html#int_vs_ext">External vs. Internal</A>. When you get an internal or built-in
|
|
modem, you also get a dedicated serial port (which can only be used
|
|
with the modem and not with anything else such as an external modem or
|
|
console terminal). In Linux, the common serial ports are named ttyS0,
|
|
ttyS1, etc. These ports usually corresponding respectively to COM1,
|
|
COM2, etc. in Dos/Windows). But in special cases, the names are
|
|
longer such as: ttySHCF0 is the 0th serial port for a type of winmodem
|
|
(HCF = Host Controlled Family). New types of serial ports just add
|
|
some more letters to ttyS.</P>
|
|
<P>See
|
|
<A HREF="Modem-HOWTO-4.html#basics_">Modem & Serial Port Basics</A> for more
|
|
details on how modems and serial ports work. With a USB modem, the
|
|
driver simulates a serial port at for example /dev/ttySHCFUSB.</P>
|
|
<P>Modems usually include the ability to send Faxes (Fax Modems). See
|
|
<A HREF="Modem-HOWTO-15.html#fax_">Fax</A> for a list of fax software. "Voice" modems
|
|
can work like an automatic answering machine and handle voicemail.
|
|
See
|
|
<A HREF="Modem-HOWTO-12.html#voice_">Voicemail Software</A>.</P>
|
|
<P>The v.92 protocol can put the modem "on hold" when someone makes an
|
|
ordinary voice call to your telephone, provided that you have "call
|
|
waiting" from your telephone company. Thus you can get a phone call
|
|
while online. As of Jan. 2003 Linux doesn't seem to support it. If
|
|
this is the latest version of this HOWTO, let me know about any
|
|
Linux support for it. Some linmodem drivers may support it (but what
|
|
if you have a hardware modem that doesn't use any linmodem driver?).</P>
|
|
|
|
<H2><A NAME="ss1.8">1.8</A> <A HREF="Modem-HOWTO.html#toc1.8">Does My Computer Contain an Internal Modem ?</A>
|
|
</H2>
|
|
|
|
<P> Internal modems usually have a pair of modular telephone jacks on
|
|
the back of the computer. They should be right next to each other and
|
|
each one looks like a jack on the interior wall of a building where a
|
|
telephone plugs in. One of the pair should be labeled "line" (or the
|
|
like) which is where you plug in the telephone line.</P>
|
|
<P>Network cards also have modular jacks, but they are seldom in pairs
|
|
and are slightly wider since they normally have 8 pins. Internal DSL
|
|
"modems" exist and also have modular telephone jacks, but I think they
|
|
are not very common (most DSL modems are external) as of 2002.</P>
|
|
|
|
<H2><A NAME="quick_install"></A> <A NAME="ss1.9">1.9</A> <A HREF="Modem-HOWTO.html#toc1.9">Quick Install </A>
|
|
</H2>
|
|
|
|
<H3>Very Quick Install</H3>
|
|
|
|
<P> If you think your modem will work under Linux and needs no special
|
|
driver, then just physically install/connect it. Start you computer,
|
|
watch the boot-time messages for Linux to find the modem. Note it's
|
|
the serial port number such as ttyS2 (/dev/ttyS2). Connect a phone
|
|
line to it and dial out with say wvdial (after configuring wvdial).
|
|
If the above doesn't work, read on.</P>
|
|
|
|
<H3>Will my modem work under Linux?</H3>
|
|
|
|
<P>So called "winmodems" will work under Linux only if a driver for it
|
|
exists and gets installed. In this case it's called a "linmodem"
|
|
since it can be made to work under Linux. If it's made prior to 2004
|
|
see
|
|
<A HREF="http://64.126.95.102:8080/gromitkc/winmodem.html">old modem list</A> and
|
|
<A HREF="Modem-HOWTO-2.html#soft_modem">Software-based Modems (winmodems)</A>. There's no point of installing a modem that
|
|
will not work with Linux.</P>
|
|
|
|
<H3>External Serial Modem Install</H3>
|
|
|
|
<P> At one time (2002 ?) no external serial modem was a winmodem but
|
|
that's no longer the case. With a straight-thru or modem cable,
|
|
connect the modem to an unused serial port on the PC. Make sure you
|
|
know the name of the serial port: in most cases COM1 is ttyS0, COM2 is
|
|
ttyS1, etc. You may need to check the BIOS setup menu to determine
|
|
this. Plug in the power cord to provide power to the modem. See
|
|
<A HREF="#all_modems">All Modems</A> for further instructions.</P>
|
|
|
|
<H3>Internal Modems (ISA, PCI and AMR)</H3>
|
|
|
|
<P>If the modem is both PnP and directly supported by the
|
|
serial driver (kernel 2.4 +) or by a winmodem driver that you've
|
|
installed, then there is no configuring for you to do since the driver
|
|
should configure it.</P>
|
|
<P>To physically install a modem card, remove the cover of the PC by
|
|
/removing some screws. Find a matching vacant slot for the card next
|
|
to the other adapter cards. Before inserting the card in the slot,
|
|
remove a small cover plate on the back of the PC so that the telephone
|
|
jacks on the card will be accessible from the rear of the PC. Then
|
|
carefully align the card with the slot and push the card all the way
|
|
down into the slot. Attach the card with a mounting screw (usually
|
|
3mm, .5mm pitch --don't use the wrong size).</P>
|
|
<P>You may watch the boot-time messages to see if your modem is detected.
|
|
Use "dmesg" to see them or shift-page-up to scroll the screen back
|
|
after they have flashed by.</P>
|
|
|
|
<H3>Internal Modems: Manual configuration</H3>
|
|
|
|
<P>Normally, you don't need to do this manual configuration since the
|
|
modem's serial port may be detected and assigned a port at boot-time.
|
|
For example: ttyS14 at I/O 0x6450 (IRQ = 10). Otherwise (or if there
|
|
is some special reason to change the configuration) then you need to
|
|
configure it yourself (or perhaps update your kernel to increases the
|
|
likelihood that the modem gets detected). If your modem has no ttyS
|
|
number assigned to it, it can't be used until it gets a ttyS number
|
|
(like ttyS10). It thus can't be detected by application programs such
|
|
as dialers or minicom. But it might be found by using say "lspci -v"
|
|
if it's on the PCI bus.</P>
|
|
<P>Finding a lost modem may not be easy and you may need to read a lot
|
|
more of this HOWTO. Once found, you need to use the "setserial"
|
|
program to manually assign it to an available ttyS? port of your
|
|
choice . For this you need to know both it's IO address (such as
|
|
0x6450) and its IRQ (such as 10). In the worst case, the modem has
|
|
been disabled by a failing to be detected and enabled by the BIOS (or
|
|
Linux) and doesn't have any IO address nor IRQ number. But you may
|
|
still be able to find it. Older modems could be disabled by a jumper
|
|
on the card or in rare cases by MS software. </P>
|
|
<P>You may have some choice of IRQs and IO addresses (including the case
|
|
where you are able to change what the BIOS has set). See
|
|
<A HREF="Modem-HOWTO-6.html#choose_IRQ">Choosing Serial IRQs</A> and
|
|
<A HREF="Modem-HOWTO-6.html#choose_address">Choosing Addresses</A>. </P>
|
|
|
|
<H3>Old ISA Modems</H3>
|
|
|
|
<P>ISA modems normally use ttyS0 - ttyS3. For old modems with jumpers
|
|
look at the modem manual or look for printing on the modem card that
|
|
tells you what the jumpers do. They have standard IO addresses
|
|
corresponding to the ttySx. For example you may find it feasible to
|
|
use /dev/ttyS2 at IO address 0x3e8 and IRQ 11.</P>
|
|
<P>If it has no jumpers then it's likely a Plug-and-Play modem which the
|
|
BIOS may configure when you power one your PC. Typing "pnpdump
|
|
--dumpregs" should find it. If you need to set or change them use
|
|
"isapnp". Use the "pnpdump" program to see what changes are possible.</P>
|
|
|
|
<H3>Both PCI and ISA: Use setserial to tell the serial driver</H3>
|
|
|
|
<P> You must find the file where "setserial" is run at boot-time and
|
|
add a line something like: "setserial /dev/ttyS2 irq 5 port 0x0b8".
|
|
For setserial v2.15 and later the results of running "setserial" on
|
|
the command line may (or may not) be saved to file named serial.conf
|
|
or autoserial.conf. It might be in say the /etc directory or in the
|
|
/var/lib/setserial directory (use "locate to find it). it runs each
|
|
time you boot. See
|
|
<A HREF="Modem-HOWTO-10.html#set_serial">What is Setserial</A> for
|
|
more info. See the next subsection
|
|
<A HREF="#all_modems">All Modems</A> for further instructions on quick installation.</P>
|
|
|
|
<H3>Use MS Windows to set the BIOS (A last resort method)</H3>
|
|
|
|
<P> If you are using the BIOS to configure you may attempt to use MS
|
|
Windows9x to "force" the BIOS to set a certain IRQ and/or IO. It can
|
|
set them into the PnP BIOS's flash memory where they will be used to
|
|
configure for Linux as well as Windows. See "Plug-and-Play-HOWTO and
|
|
search for "forced" (occurs in several places). For Windows3.x you
|
|
can do the same thing using the ICU under Windows 3.x. A few modems
|
|
have a way to disable PnP in the modem hardware using software (under
|
|
Windows) that came with the modem.</P>
|
|
|
|
<H3><A NAME="all_modems"></A> All Modems </H3>
|
|
|
|
<P> Plug the modem into a telephone line. Then configure a
|
|
dialing program. If you have an Internet Service Provider (ISP) you
|
|
might configure one of these : wvdial, pppconfig, gnome-ppp, modem
|
|
lights (Gnome) or kppp. They not only dial out but start PPP, which
|
|
you need to connect to the Internet. Otherwise, you might try
|
|
configuring the minicom dialer which isn't designed for connecting to
|
|
the Internet, but is good for testing. Whether it's minicom or a
|
|
dialer that starts PPP, set the serial port speed to a baud rate a few
|
|
times higher than the bit rate of your modem. See
|
|
<A HREF="Modem-HOWTO-14.html#speed_table">Speed Table</A> for more details on the "best"
|
|
speeds to use. Tell it the full name of your serial port such as
|
|
/dev/ttyS1 (or /dev/ttys/1).</P>
|
|
<P>Minicom is one way to set up and test your modem. Set hardware flow
|
|
control (RTS/CTS). With minicom you may check to see if your modem is
|
|
there (and ready to dial). Once you've set up minicom, type the
|
|
command: AT, hit enter and you should see an "OK" response which comes
|
|
directly from the modem. See
|
|
<A HREF="Modem-HOWTO-11.html#minicom_">Dialing Out with Minicom</A>.</P>
|
|
|
|
<H2><A NAME="ss1.10">1.10</A> <A HREF="Modem-HOWTO.html#toc1.10">dev/modem</A>
|
|
</H2>
|
|
|
|
<P> If your modem is on say /dev/ttyS2, you may want to link that to
|
|
/dev/modem. It's not really necessary to do this since you can write
|
|
down (or remember) say ttyS2 and tell it to programs that use the
|
|
modem. It may be simpler to just link it. To link it, type say
|
|
<CODE>ln -s /dev/ttyS2 /dev/modem </CODE>. Note "ttyS2" is just for
|
|
example. It might actually be ttyS14, etc. Or use Red Hat's
|
|
modemtool (or the like) to link it. But once you link it, be sure
|
|
that all programs that use the modem use /dev/modem and not
|
|
/dev/ttyS2, otherwise two programs may try to use the modem at the
|
|
same time without knowing they are doing this. System software was
|
|
written around 2000 to fix this problem but it may not be in recent
|
|
kernels (like 2.6).</P>
|
|
|
|
<HR>
|
|
<A HREF="Modem-HOWTO-2.html">Next</A>
|
|
Previous
|
|
<A HREF="Modem-HOWTO.html#toc1">Contents</A>
|
|
</BODY>
|
|
</HTML>
|