April 24, 2019

New HOWTO: Modem-HOWTO - page 2

Table of Contents

  • April 12, 2001
  1.  Introduction

  1.1.  DSL, Cable, and ISDN Modems in other HOWTOs

  This HOWTO covers conventional analog modems for PCs on either the ISA
  or PCI bus.  For other types of modems:

  �  DSL modems: see the mini-howto: ADSL

  �  Cable-Modems-HOWTO (was once a LDP mini-Howto)

  �  Cable-Modem-Providers-HOWTO

  �  ISDN Howto (not a LDP Howto)
     http://sdb.suse.de/sdb/en/html/isdn.html: drivers for ISDN
     "Modems".  Much related info on this is in German.  For a tutorial
     on ISDN see  http://public.swbell.net/ISDN/overview.html

     See also ``Appendix D:  Other Types of Modems''

  1.2.  Also not covered: PCMCIA Modems, PPP

  For modems on the PCMCIA bus see the PCMCIA-HOWTO: PCMCIA serial and
  modem devices.  This HOWTO also doesn't cover PPP (used to connect to
  the Internet via a modem) or communication programs.  Except it does
  show how to use communication programs to test that your modem works
  OK and can make phone calls.  If you want to use a modem to connect to
  the Internet then you need to set up PPP.  There's a lot of
  documentation for PPP (including a PPP-HOWTO).  More documentation
  should be found in /usr/doc/ppp, /usr/share/doc/ppp or the like.

  1.3.  Copyright, Disclaimer, Trademarks, & Credits

  1.3.1.  Copyright

  Copyright (c) 1998-2000 by David S. Lawyer  

  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:

  1. 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 them email the LDP
     (Linux Documentation Project): submit@linuxdoc.org.

  2. 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.

  3. Give due credit to previous authors and major contributors.

  If you're considering making a derived work other than a translation,
  it's requested that you discuss your plans with the current

  1.3.2.  Disclaimer

  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.

  1.3.3.  Trademarks.

  Any brand names (starts with a capital letter) should be assumed to be
  a trademark).  Such trademarks belong to their respective owners.

  "Hayes" is a trademark of Microcomputer Products Inc.  I use
  "winmodem" to mean any modem which requires MS-Windows and not in the
  trademark sense.  All other trademarks belong to their respective

  1.3.4.  Credits

  The following is only a rough approximation of how this this document
  (as of 2000) was created:  About 1/4 of the material here was lifted
  directly from Serial-HOWTO v. 1.11 (1997) by Greg Hankins.
  mailto:gregh@twoguys.org (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

  1.4.  Contacting the Author

  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 ``Web Sites''.  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.

  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
  old, check to see that you have the latest version.  Please send me
  any other info that you think belongs in this document.

  1.5.  New Versions of this HOWTO

  New versions of this Modem-HOWTO come out every month or two since
  modem situation is rapidly changing (and since I'm still learning).
  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:  http://www.linuxdoc.org/mirrors.html If you only
  want to quickly compare the date of this the version v0.17, April 2001
  with the date of the latest version go to:

  1.6.  New in Recent Versions

  v0.16 March 2001 New url for winmodem.html, more obsolete protocols
  v0.15 March 2001 Revision of Dial-In section (incl. problems with
  agetty, interoperability with MS, VNC), blacklist, AT-cmds on
  Internet, broken links fixed

  1.7.  What is a Modem ?

  A 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.  It
  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 their computer.  This is called "dial-

  There are three basic types of modems for a PC: external, internal,
  and built-in.  The external sets on your desk outside the PC while the
  other two types are not visible since they're inside the PC.  The
  external modem plugs into a connector on the back of the PC known as a
  "serial port".  The internal modem is a card that is inserted inside
  the computer. The built-in modem is part of the motherboard and is
  thus built into the computer.  It's is just like an internal modem
  except it can't be removed or replaced.  As of 2001, built-in modems
  are primarily for laptops.  What is said in this HOWTO regarding
  internal modems will generally apply also to built-in modems.

  For a more detailed comparison see ``External vs.  Internal''.   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 another modem or a printer).  In Linux, the
  serial ports are named ttyS0, ttyS1, etc. (usually corresponding
  respectively to COM1, COM2, etc. in Dos/Windows).

  The serial port is not to be confused with the "Universal Serial Bus"
  (USB) which uses a special modular connector and may be used to
  connect an external modem.  See ``Modem & Serial Port Basics'' for
  more details on modems and serial ports.

  Modems usually include the ability to send Faxes (Fax Modems).  See
  ``Fax'' for a list of fax software.  "Voice" modems can work like an
  automatic answering machine and handle voicemail.  See ``Voicemail''.

  1.8.  Quick Install

  1.8.1.  External Modem Install

  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 ``All Modems'' for further

  1.8.2.  Internal Modems (Both ISA and PCI)

  The first thing to do is to make sure that the modem will work under
  Linux since (as of late 2000) most newer modems don't.  See modem list
  .  If the modem is both
  PnP and directly supported by the serial driver (kernel 2.4 +) then
  there is no configuring for you to do since the driver will configure

  To physically install a modem card, remove the cover of the PC by
  removing some screws (perhaps screw size 6-32 in the U.S.).  Find a
  matching vacant slot for it 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

  If you have a modem that is not a winmodem (see ``Software-based
  Modems (winmodems)'') and you must configure it yourself (the driver
  doesn't do it) then you first need to decide which ttySx to assign it
  to.  Pick a ttySx that is not already in use by other serial ports.
  Then you have the problem of setting an IRQ number and IO address.
  For PnP modems: If the BIOS has already set these in the physical
  device (which a PnP BIOS will do if it thinks you don't have a PnP OS)
  then you need to determine the IRQ and IO address and then tell this
  to "setserial".   In other cases 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 ``Choosing Serial IRQs'' and ``Choosing
  Addresses''.  For ISA modems there are standard IO addresses to use
  (corresponding to the ttySx).  PCI modems seem to use different IO
  addresses so as not to conflict with ISA modems.  For example you may
  find it feasible to use /dev/ttyS2 at IO address 0x3e8 and IRQ 11.

  1.8.3.  ISA Modems: What IOs and IRQs may be used?

  For old modems with jumpers look at the manual (or jumpers if they
  say).  If the BIOS has already configured the ISA modem then "pnpdump
  --dumpregs" should show it.  If you need to set or change them use
  "isapnp".  Use the "pnpdump" to see what you changes are possible.

  1.8.4.  PCI Modems: What IOs and IRQs have been set?

  For PCI, the BIOS almost always sets the IRQ and may set the IO
  address as well.  To see how it's set use "lspci -v" or look in
  /proc/bus/pci.  If more than one IO address is shown, the first one is
  more likely to be it.  You can't change the IRQ (at least not with
  "setpci")   If you must, change the IO address with "setpci" by
  changing the BASE_ADDRESS_0 or the like.  The _0 (or _1) after
  BASE_ADDRESS must be the correct register.

  1.8.5.  Both PCI and ISA: Use setserial to tell the driver

  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 /etc/serial.conf so that it
  runs each time you boot.  See ``What is Setserial'' for more info.
  See the next subsection ``All Modems'' for further instructions on
  quick installation.

  1.8.6.  Use MS Windows to set the BIOS (A last resort method)

  If you are using the BIOS to configure you may 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.

  1.8.7.  All Modems

  Plug the modem into a telephone line.  Then configure a communication
  program such as minicom or a ppp program (such as wvdial).  Set the
  serial port speed to a baud rate a few times higher than the bit rate
  of your modem.  See ``Speed Table'' for the "best" speeds to use.
  Tell it the full name of your serial port such as /dev/ttyS1.  Set
  hardware flow control (RTS/CTS).

  Minicom is the easiest to set up and to use to test your modem.  But
  if you are lucky you may get ppp to work the first time and not need
  to bother with minicom.  With minicom you may simply type the command:
  AT and hit enter (before dialing) to check that your modem is there
  and responds with OK.

Most Popular LinuxPlanet Stories