Multiport serial cards install in a slot in a PC on the ISA or PCI bus. Instead of being called "... cards" they are also called "... adapters" or "... boards". Each such card provides you with many serial ports. Today they are commonly used for the control of external devices (including automation for both industry and the home). They can connect to computer servers for the purpose of monitoring/controlling the server from a remote location. They were once mainly used for connecting up many terminals and/or modems to serial ports. They are still used this way but a modem used with it has the same limitation of ordinary modems: It can't send at over 33.6k even if it is a 56k modem.
Thus if someone dials in to you (reaches your multiport serial card from a modem plugged into the card) they will not be able to go above 33.6k in either direction, even if they use a 56k modem. To go above 33.6k for dial-in requires that you have a digital connection to the telephone line. The serial port is no longer used for this case. Thus serial multiport cards are now obsolete for use by ISPs or anyone that needs to allow others to dial-in to them at 56k (over 33.6k). See Modem-HOWTO: Modem Pools, Digital Modems.
Each multiport card has a number of external connecters (DB-25 or RJ45 (telephone-like)) so that one may connect up a number of devices (modems, terminals, etc.). Each such physical device would then be connected to its own serial port. Since the space on the external-facing part of the card is limited there is often not enough room for all the serial port connectors. To solve this problem, the connectors may be on the ends of cables which come out (externally) from the card (octopus cable). These connectors may also be on a little box which is connected by a cable to the multiport card.
Dumb ones are not too much different than ordinary serial ports. They are interrupt driven and the CPU of the computer does most all the work servicing them. They usually have a system of sharing a single interrupt for all the ports. This doesn't decrease the load on the CPU since the single interrupt will be sent to the CPU each time any of the ports needs servicing. Such devices usually require special drivers that you must put into the kernel or activate by modifying source code.
Smart boards may use ordinary UARTs but handle most interrupts from the UARTs internally within the board. This frees the CPU from the burden of handling all these interrupts. The board may save up bytes in its large internal FIFOs and transfer perhaps 1k bytes at a time to the serial buffer in main memory. It may use the full bus width of 32 bits for making data transfers to main memory (instead of transferring only 8-bit bytes like dumb serial cards do). Not all "smart" boards are equally efficient. Many boards today are Plug-and-Play.
For a smart board to work, a special driver for it must be used. Sometimes this driver is built into the kernel source code or supplied as a module. Even in such cases, you must still do something to activate it. This includes selecting it when you compile the kernel (or making sure that a pre-compiled kernel has done this). The "make config" or "make menuconf" commands may display an option for this. In some cases there is a special module to load or certain parameters to pass to the kernel (via lilo's append command). The board's manufacturer should have info on this on their website. Unfortunately, info for old boards is sometimes not there but might be found somewhere else on the Internet (including discussion groups).
The serial ports your multiport board uses depends on what kind of board
you have. Some of these may be listed in detail in rc.serial
or in 0setserial
. These files may be included in a
>setserial or serial package. I highly recommend getting the latest
version of setserial
if you are trying to use multiport boards.
You will probably need to create these devices. Either use the
mknod
command, or the MAKEDEV
script. Devices (in the /dev
directory) for serial ports are made by adding ``64 + port number''.
So, if you wanted to create devices for ttyS17
, you would
type:
linux# mknod -m 666 /dev/ttyS17 c 4 81
Note the "major" number is always 4 for ttyS devices (and 5 for the
obsolete cua devices). Also ``64 + 17 = 81''. Using the MAKEDEV
script, you would type:
linux# cd /dev
linux# ./MAKEDEV ttyS17
Besides the listing of various brands of multiports found in this HOWTO there is Gary's Encyclopedia - Serial Cards. It's not as complete, but may have some different links.
In olden days PCs used to come with a serial card installed. Later on the serial function was put on the hard-drive interface card. Today one or two serial ports are usually built into the motherboard. But one may still buy the old PC serial cards if they need 1-4 more serial ports. These are for ttyS0-ttyS3 (COM1 - COM4). They can be used to connect external serial devices (modems, serial mice, etc...). Only a tiny percentage of retail computer stores carry such cards. But one can purchase them on the Internet. Before getting a PCI one, make sure Linux supports it.
Here's a list of a few popular brands:
Note: due to address conflicts, you may not be able to use COM4 and IBM8514 video card (or some others) simultaneously. See Avoiding IO Address Conflicts with Certain Video Boards
They are also called "serial adapters". They often have a
special method of sharing interrupts which requires that you compile
support for them into the kernel.
* => The file that ran setserial in Debian shows some details of configuring # => See note below for this board
In general, Linux will support any serial board which uses a 8250, 16450, 16550, 16550A, 16650, etc. UART. See the latest man page for "setserial" for a more complete list.
Notes:
AST Fourport: You might need to specify skip_test
in rc.serial
.
BB-1004 and BB-1008 do not support DCD and RI lines, and thus are not usable for dialin modems. They will work fine for all other purposes.
Digi PC/8 Interrupt Status Register is at 0x140.
SIIG IO1812 manual for the listing for COM5-COM8 is wrong. They should be COM5=0x250, COM6=0x258, COM7=0x260, and COM8=0x268.
Make sure that a Linux-compatible driver is available and read the information that comes with it. These boards use special devices (in the /dev directory), and not the standard ones. This information varies depending on your hardware. If you have updated info which should be shown here please email it to me.
Names of Linux driver modules are *.o but these may not work for all models shown. Also, parameters (such as the io and irq often need to be given to the module so you need to find instructions on this (possibly in the source code tree).
There are many different brands, each of which often offers many different cards. No attempt is currently being made to list the cards here (and many listed may be obsolete). So this list is a hodgepodge of both obsolete and the latest multiport brands/cards. Contact information has been removed if it's available from the webpage. Driver information should also be available from the same webpage. Where there is no webpage, the cards are likely obsolete. If you would like to put together a more complete list, let me know.
www.chaser.com
http://www.comtrol.com
ftp://tsx-11.mit.edu/pub/linux/packages/comtrol
http://www.connecttech.com/porducts/products.html
http://www.cyclades.com/products.html
ftp://ftp.cyclades.com/pub/cyclades
and included in Linux
kernel since version 1.1.75: cyclades.o
mailto:info@cendio.se
ftp://ftp.signum.se/pub/pccom8
http://www.dgii.com
ftp://ftp.dgii.com/drivers/linux
and
included in Linux kernel since version 2.0. epca.o
si@wimpol.demon.co.uk
http://www.equinox.com
ftp://ftp.equinox.com/library/sst
http://www.gtek.com
ftp://ftp.gtek.com/pub
http://www.nyx.net/~arobinso
http://www.nyx.net/~arobinso
http://www.maxpeed.com
ftp://maxpeed.com/pub/ss
http://www.moxa.com
http://www.moxa.com/support/download/download.php3>
ftp://ftp.moxa.com/drivers/linux
(also from Taiwan at www.moxa.com.tw/...) where ... is the same as
above)
http://www.sdlcomm.com
ftp://ftp.sdlcomm.com/pub/drivers
sales@stallion.com
or
http://www.stallion.com
ftp://ftp.stallion.com/drivers/ata5/Linux
and
included in linux kernel since 1.3.27
A review of Comtrol, Cyclades, Digi, and Stallion products was printed
in the June 1995 issue of the Linux Journal. The article is
available at
http://www.ssc.com/lj/issue14
.
The following boards don't mention any Linux support as of 1 Jan. 2000. Let me know if this changes.