To begin with, the author assumes you have some basic knowledge of FreeBSD. You need to have FreeBSD installed, know how to edit files in a UNIX-like environment, and how to look up manual pages on the system. As discussed below, you'll need certain versions of FreeBSD, and knowledge of some terminology & modem and cabling.
First, it is assumed that you are using FreeBSD version 1.1 or higher
(including versions 2.x). FreeBSD version 1.0 included two different
serial drivers, which complicates the situation. Also, the serial
device driver (sio
) has improved in every release of FreeBSD, so
more recent versions of FreeBSD are assumed to have better and more
efficient drivers than earlier versions.
A quick rundown of terminology:
Bits per Second - the rate at which data is transmitted
Data Terminal Equipment - for example, your computer
Data Communications Equipment - your modem
EIA standard for serial communications via hardware
If you need more information about these terms and data communications in general, the author remembers reading that The RS-232 Bible (anybody have an ISBN?) is a good reference.
When talking about communications data rates, the author doesn't use the term baud. Baud refers to the number of electrical state transitions that may be made in a period of time, while bps (bits per second) is the ``correct'' term to use (at least it doesn't seem to bother the curmudgeons quite a much).
External modems seem to be more convenient for dialup, because external modems often can be semi-permanently configured via parameters stored in non-volatile RAM and they usually provide lighted indicators that display the state of important RS-232 signals. Blinking lights impress visitors, but lights are also very useful to see whether a modem is operating properly.
Internal modems usually lack non-volatile RAM, so their configuration may be limited only to setting DIP switches. If your internal modem has any signal indicator lights, it is probably difficult to view the lights when the system's cover is in place.
A background knowledge of these items is assumed
The first, connecting your modem, is usually simple - most straight-through serial cables work without any problems. You need to have a cable with appropriate connectors (DB-25 or DB-9, male or female) on each end, and the cable must be a DCE-to-DTE cable with these signals wired:
SD
)
RD
)
RTS
)
CTS
)
DSR
)
DTR
)
CD
)
SG
)
FreeBSD needs the RTS
and CTS
signals for flow-control at
speeds above 2400bps, the CD
signal to detect when a call has
been answered or the line has been hung up, and the DTR
signal to
reset the modem after a session is complete. Some cables are wired
without all of the needed signals, so if you have problems, such as
a login session not going away when the line hangs up, you may have a
problem with your cable.
The second prerequisite depends on the modem(s) you use. If you don't know your modem's command set by heart, you will need to have the modem's reference book or user's guide handy. Sample commands for USR Sportster 14,400 external modems will be given, which you may be able to use as a reference for your own modem's commands.
Lastly, you'll need to know how to setup your modem so that it will work well with FreeBSD. Like other UNIX-like operating systems, FreeBSD uses the hardware signals to find out when a call has been answered or a line has been hung up and to hangup and reset the modem after a call. FreeBSD avoids sending commands to the modem or watching for status reports from the modem. If you are familiar with connecting modems to PC-based bulletin board systems, this may seem awkward.
FreeBSD supports NS8250-, NS16450-, NS16550-, and NS16550A-based EIA RS-232C (CCITT V.24) communications interfaces. The 8250 and 16450 devices have single-character buffers. The 16550 device provides a 16-character buffer, which allows for better system performance. (Bugs in plain 16550's prevent the use of the 16-character buffer, so use 16550A's if possible). Because single-character-buffer devices require more work by the operating system than the 16-character-buffer devices, 16550A-based serial interface cards are much prefered. If the system has many active serial ports or will have a heavy load, 16550A-based cards are better for low-error-rate communications.