Hardware manual
server, communicating with the server over a network.
There are two basic types of serial servers. One type is just an ordinary computer (perhaps rack mounted) that
uses multiport cards on a PCI bus (or the like). The other type is a proprietary server that is a dedicated
computer that serves a special purpose. Servers of both types may be called: serial servers, console servers,
print servers, or terminal servers. They are not the same.
The terminal server was originally designed to provide many serial ports, each connected to a dumb
text-terminal. Today, a terminal server often connects to graphic terminals over a fast network and doesn't use
serial ports since they are too slow. One network cable takes the place of many serial cables and each graphic
terminal uses far more bandwidth than the text-terminals did. However, graphic terminals may be run in text
mode to reduce the bandwidth required. A more detailed discussion of terminal servers (serial port) is in
Text-Terminal-HOWTO. For networked terminal servers (not serial port) see Linux Terminal Server Project
(LTSP)
(To-do: Discuss other types of serial servers, but the author knows little about them.)
7. Configuring Overview
In most cases configuring is automatically taken care of and you have nothing to do. Linux should detect your
serial ports, and load driver modules if needed. Then the driver should insure that IRQ and address space
resources have been allocated. Finally, the application program which uses the serial port should set the port
speed, etc.
For any of this to work, serial support must either be compiled into the kernel (by you or by whoever
compiled your kernel) or provided by modules that are loaded into the kernel when you start to use the serial
port. In most cases, if it hasn't been compiled into the kernel, a module(s) will do the job and Linux should
hopefully automatically find and load the correct modules.
But if you have more than 4 (or perhaps 2) serial ports, then the kernel must be told this as it doesn't seem to
do it automatically. See Number of Serial Ports Supported, Kernel Configuration and. Serial Modules.
Once the proper support is in your kernel and modules, then The rest of the configuring of the serial port
should happen automatically. This is done by the serial driver software often with help from your application
software. But sometimes it doesn't get configured right and then you need to do it yourself. Or perhaps you
need to configure it in a special way, etc. This HOWTO only covers configuration of the serial port itself and
not the configuring of any devices attached to the port (such as a modem or printer).
Resource allocation (locating the hardware or low-level configuring) is assigning each port an IO address,
IRQ, and name (such as ttyS2). This IO-IRQ pair must be set in both the hardware and become known to the
serial driver. We might just call this "io-irq" configuring for short. The "setserial" program is sometimes used
to tell the driver io-irq info that an administrator has put in a configuration file or given as parameters to the
setserial command. PnP methods, jumpers, etc, are used to set the IO and IRQ in the hardware. Details will be
supplied later. If you need to configure but don't understand certain details it's easy to get into trouble. See
Locating the Serial Port: IO address IRQs What is Setserial
The second part (high-level configuring) is assigning it a speed (such as 115.2k bits/sec), selecting flow
control, etc. This is often initiated by communication programs such as wvdial, PPP, minicom, picocom or by
getty (which you may run on the port so that others may log into your computer from an old-fashioned dumb
terminal connected to the port). However you will need to tell these programs what speed you want, etc. by
Serial HOWTO
6. Servers for Serial Ports 26