Next
Previous
Contents
Multiport serial cards install in slots 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 dumb terminals and/or modems
to serial ports. Today, use of dumb terminals has declined, and
several modems (or digital modems) can now be built into
an internal card. So multiport serial cards are not as significant as
they once were.
Each multiport card has a number of external connecters (DB-25 or
RJ45) 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). Or they may be on an external box (possibly rack
mountable) which is connected by a cable to a multiport card.
For a modem to transmit at nearly 56k requires that it be a special
digital modem and have a digital connection to a digital phone line
(such as a T1 line). Modem banks that connect to multiport cards do
exist, and some have a card that can access multiplexed digital phone
lines. Thus one can use a multiport card with a few 56k digital
modems.
For both analog and digital modem there is one modem on each serial
port so there needs to be an external cable (modem bank to multiport)
for each modem. This can lead to a large number of cables. So it's
less clutter (and cheaper) to use internal modems without a multiport
card. It's somewhat analogous to the lower cost of an internal modem
for a desktop PC as compared to the higher cost (and more cabling) for
an external modem. See Modem-HOWTO: Modem Pools, Digital Modems.
Dumb multiport cards 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 one port needs servicing. Such devices usually require
special drivers that you must either compile into the kernel or use as
a module. In rare cases thy activate by putting a #define into the
source code (or the like).
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.
Introduction
For a multiport board to work, a special driver for it must be used.
This driver may either be built into the kernel source code or
supplied as a module. Support for dumb boards is likely to the built
into the kernel while smart boards usually need a module.
If you need driver built into the kernel (mostly dumb boards)
A pre-compiled kernel may not have multiport support built
in. So you may need to compile it yourself. In kernel 2.4 you
should select "CONFIG_SERIAL_EXTENDED" when configuring the kernel
(just before you compile). If you select this there will be still
more choices presented to you. Even after you do this you may need to
edit the resulting source code a little (depending on the card).
If you use a module (mostly for smart boards)
A pre-compiled kernel may come with a pre-compiled module for the
board so that you don't need to recompile the kernel. This module
must be loaded in order to use it, but the kernel may automatically do
this for you if a program is trying to use a device on the smart board
(provided there exists a table showing which module to load for the
device). This table may be in /etc/modules.conf and/or be internal to
the kernel. Also certain parameters may need to be passed to the
driver (via lilo's append command or via /etc/modules.conf). For
kernel 2.4 the modules should be found in
/lib/modules/.../kernel/drivers/char.
Getting info on multiport boards
The board's manufacturer should have info on their website.
Unfortunately, info for old boards is sometimes not there but might be
found somewhere else on the Internet (including discussion groups).
You might also want to look at the kernel documentation in
/usr/share/kernel-doc... For configuring the kernel or modules prior
to compiling see: Configure.help and search for "serial", etc. There
are also kernel documentation files for certain boards including
computone, hayes-esp, moxa-smartio, riscom8, specialix, stallion, and
sx (specialix).
The serial ports your multiport board uses depends on what kind of
board you have. Some have their own device names like /dev/ttyE27
(Stallion) or /dev/ttyD2 (Digiboard), etc. For various other brands,
see see devices.txt in the kernel documentation. Some use the
standard names like /dev/ttyS14 (/dev/tts/14) and may be found in
configuration files that used as arguments to setserial .
Such files may be included in a setserial or serial package.
For the device file system (devfs), for example, /dev/ttyF9 becomes
/dev/ttf/9, or in a later version /dev/tts/F9. Substitute for F (or
f) whatever letter(s) you multiport board uses for this purpose. Your
multiport driver is supposed to create a devfs name similar to the
above and put it into the /dev directory
If you're using the device file system (devfs), then the device
driver should create the device name and put it in the /dev directory.
Otherwise for a legacy (non-devfs), an installation script may do this
for you. But if not, here's some examples of how to create a device
name in the /dev directory.
For the legacy names and numbers of other types of serial ports other
than ttyS.. See devices.txt in the kernel documentation. Either use
the mknod command, or the MAKEDEV script. Typing "man
makedev" may show instructions on using it.
Using the MAKEDEV script, you would first become the superuser
(root) and type (for example) either:
linux# MAKEDEV ttyS17
Or if the above doesn't work cd to /dev before giving the above
command>. Substitute whatever your port is for ttyS17.
Using mknod is a more complicated option since you need to know
the major and minor device numbers. These numbers are in the
"devices" file in the kernel documentation. For ttyS serial ports the
minor number is: 64 + port number (=81 for the example below). Note
the "major" number is always 4 for ttyS devices (and 5 for the
obsolete cua devices). So, if you wanted to create a device for
ttyS17 using mknod , you would type:
linux# mknod -m 666 /dev/ttyS17 c 4 81
In olden days, PCs came 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
(on-board). Most of them (as of 2002) use a 16550 but some use 16650
(32-byte FIFOs). But one may still buy the individual PC serial cards
if they need more serial ports. 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 one for the PCI bus, 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 /dev/ttyS3
(tts/3) with a IBM8514 video card (and some others) simultaneously.
See
Avoiding IO Address Conflicts with Certain Video Boards
They are also called "serial adapters". Each port has its own
address. 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
- AST FourPort and clones (4 ports) * #
- Accent Async-4 (4 ports) *
- Arnet Multiport-8 (8 ports)
- Bell Technologies HUB6 (6 ports)
- Boca BB-1004 (4 ports), BB-1008 (8 ports), BB-2016 (16 ports;
See the Boca mini-howto revised in 2001) * #
- Boca IOAT66 or? ATIO66 (6 ports, Linux doesn't support its IRQ
sharing ?? Uses odd-ball 10-cond RJ45-like connectors)
- Boca 2by4 (4 serial ports, 2 parallel ports)
- Byte Runner
http://www.byterunner.com
- Computone ValuePort V4-ISA (AST FourPort compatible) *
- Digi PC/8 (8 ports) #
- Dolphin
http://www.dolphinfast.com/sersol/
- Globetek
http://www.globetek.com/
- GTEK BBS-550 (8 ports; See the mini-howto)
- Hayes ESP (after kernel 2.1.15)
- HUB-6 See Bell Technologies.
- Longshine LCS-8880, Longshine LCS-8880+ (AST FourPort compatible) *
- Moxa C104, Moxa C104+ (AST FourPort compatible) *
-
NI-SERIAL by National Instruments
- NetBus (2 ports)
http://www.netbus.com using patch from
http://lists.insecure.org/linux-kernel/2001/Feb/2809.html
- PC-COMM (4 ports)
-
Sealevel Systems
COMM-2 (2 ports), COMM-4 (4 ports) and COMM-8 (8 ports)
- SIIG I/O Expander 2S IO1812 (4 ports) #
- STB-4COM (4 ports)
- Twincom ACI/550
- Usenet Serial Board II (4 ports) *
- VScom (uses same driver as ByteRunner)
In general, Linux will support any serial board which uses a 8250,
16450, 16550, 16550A, 16650, 16650V2, 16654, 16750, 16850, 16950, and
16954. 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 tts 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 *.ko (*.o prior to kernel 2.6) but
these may not work for all models shown. See
Modules (mostly for smart boards) The needed module may have
been supplied with your Linux distribution. 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 all the
cards here (and many listed are obsolete). But all major brands and
websites should be shown here so it something is missing let me know.
Go the webpage shown for more information. These websites often
also have info (ads) on related hardware such as modem pools, remote
access servers (RASs), and terminal servers. Where there is no
webpage, the cards are likely obsolete. If you would like to put
together a better list, let me know.
- Chase Research, now Perle Systems Ltd (UK based, ISA/PCI cards)
webpage:
http://www.perle.com
driver status: included in kernel 2.4+ for PCI only; otherwise supported by
Perle
driver location:
http://www.perle.com/downloads/multi_port.html
- Comtrol RocketPort (36MHz ASIC; 4, 8, 16, 32, up to 128 ports)
webpage:
http://www.comtrol.com
driver status: supported by Comtrol. rocket.o
driver location:
ftp://tsx-11.mit.edu/pub/linux/packages/comtrol
- Computone IntelliPort II (ISA, PCI and EISA busses up to 64
ports)
webpage:
http://www.computone.com
driver location: old patch at
http://www.wittsend.com/computone/linux-2.2.10-ctone.patch.gz
mailing list:
mailto:majordomo@lazuli.wittsend.com with
"subscribe linux-computone" in body
note: Old ATvantage and Intelliport cards are not supported by Computone
- Connecttech
website:
http://www.connecttech.com/
driver location:
ftp://ftp.connecttech.com/pub/linux/
- Cyclades
Cyclom-Y (Cirrus Logic CD1400 UARTs; 8 - 32 ports),
Cyclom-Z (MIPS R3000; 8 - 64 ports)
website:
http://www.cyclades.com/products/svrbas/zseries.php
driver status: supported by Cyclades
driver location:
ftp://ftp.cyclades.com/pub/cyclades and included in Linux
kernel since version 1.1.75: cyclades.o
- Decision PCCOM (2-8 ports; ISA and PCI; aka PC COM)
ISA:
contact:
mailto:info@cendio.se
driver location: (dead link)
ftp://ftp.cendio.se/pub/pccom8
PCI:
drivers:
http://www.decision.com.tw
driver status: Support in serial driver 5.03. For an earlier driver,
there exists a patch for kernel 2.2.16 at
http://www.qualica.com/serial/ and for kernels 2.2.14-2.2.17
at
http://www.pccompci.com/mains/installing_pci_linux1.html
- Digi PC/Xi (12.5MHz 80186; 4, 8, or 16 ports),
PC/Xe (12.5/16MHz 80186; 2, 4, or 8 ports),
PC/Xr (16MHz IDT3041; 4 or 8 ports),
PC/Xem (20MHz IDT3051; 8 - 64 ports)
website:
http://www.dgii.com
driver status: supported by Digi
driver location:
ftp://ftp.dgii.com/drivers/linux and
included in Linux kernel since version 2.0. epca.o
- Digi COM/Xi (10MHz 80188; 4 or 8 ports)
contact: Simon Park,
si@wimpol.demon.co.uk
driver status: ?
note: Simon is often away from email for months at a time due to
his job. Mark Hatle,
mailto:fray@krypton.mankato.msus.edu
has graciously volunteered to make the driver available if you need
it. Mark is not maintaining or supporting the driver.
- Equinox SuperSerial Technology (30MHz ASIC; 2 - 128 ports)
website:
http://www.equinox.com
driver status: supported by Equinox
driver location:
ftp://ftp.equinox.com/library/sst
- Globetek
website:
http://www.globetek.com/products.shtml
driver location:
http://www.globetek.com/media/files/linux.tar.gz
- GTEK Cyclone (16C654 UARTs; 6, 16 and 32 ports),
SmartCard (24MHz Dallas DS80C320; 8 ports),
BlackBoard-8A (16C654 UARTs; 8 ports),
PCSS (15/24MHz 8032; 8 ports)
website:
http://www.gtek.com
driver status: supported by GTEK
driver location:
ftp://ftp.gtek.com/pub
- Hayes ESP (COM-bic; 1 - 8 ports)
website:
http://www.nyx.net/~arobinso
driver status: Supported by Linux kernel (1998) since v. 2.1.15.
esp.o. Setserial 2.15+ supports. Also supported by author
driver location:
http://www.nyx.net/~arobinso
- Intelligent Serial Interface by Multi-Tech Systems
PCI: 4 or 8 port. ISA 8 port. DTE speed 460.8k
webpage:
http://www.multitech.com/products/
- Maxpeed SS (Toshiba; 4, 8 and 16 ports)
website:
http://www.maxpeed.com
driver status: supported by Maxpeed
driver location:
ftp://maxpeed.com/pub/ss
- Microgate SyncLink ISA and PCI high speed multiprotocol
serial. Intended for synchronous HDLC.
website:
http://ww/microgate.com/products/sllinux/hdlcapi.htm
driver status: supported by Microgate: synclink.o
- Moxa C218 (12MHz 80286; 8 ports),
Moxa C320 (40MHz TMS320; 8 - 32 ports)
website:
http://www.moxa.com
driver status: supported by Moxa
driver locations:
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)
- SDL RISCom/8 (Cirrus Logic CD180; 8 ports)
website:
http://www.sdlcomm.com
driver status: supported by SDL
driver location:
ftp://ftp.sdlcomm.com/pub/drivers
- Specialix SX (25MHz T225; 8? - 32 ports),
SIO/XIO (20 MHz Zilog Z280; 4 - 32 ports)
webpage: Old link is broken. Out of business?
driver status: Was supported by Specialix
driver location:
http://www.BitWizard.nl/specialix/
old driver location:
ftp://metalab.unc.edu/pub/Linux/kernel/patches/serial
- Stallion EasyIO-4 (4 ports), EasyIO-8 (8 ports), and
EasyConnection (8 - 32 ports) - each with
Cirrus Logic CD1400 UARTs,
Stallion (8MHz 80186 CPU; 8 or 16 ports),
Brumby (10/12 MHz 80186 CPU; 4, 8 or 16 ports),
ONboard (16MHz 80186 CPU; 4, 8, 12, 16 or 32 ports),
EasyConnection 8/64 (25MHz 80186 CPU; 8 - 64 ports)
contact:
sales@stallion.com or
http://www.stallion.com
driver status: supported by Stallion
driver location:
ftp://ftp.stallion.com/drivers/ata5/Linux and
included in linux kernel since 1.3.27
moved; it's now at
- System Base
website:
http://www.sysbas.com/
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.linuxjournal.com/article.php?sid=1097
name="http://www.ssc.com/lj/issue14"> .
Besides the listing of various brands of multiports found above in
this HOWTO there is
Gary's Encyclopedia - Serial Cards. It's not as complete, but
may have some different links.
The following boards don't mention any Linux support as of 1 Jan.
2000. Let me know if this changes.
Next
Previous
Contents
|