Installation and Configuration of the I/O8+ card for Linux

Issue:
How to configure a Linux host to support the I/O8+ serial card.

Solution:

The IO8+ host card on Linux 2.2.12 and higher includes built-in and modular kernel support. Kernel patches may not be required.

Ensure that your kernel is enabled for the I/O8+ card. It will be located under Character Devices in the kernel configuration.
If the Specialix devices do not appear under the Multiport Serial Adapters then a patch may be required for your kernel.
Note: rebuilding Linux kernels is beyond the scope of this document, please refer to Linux Documentations for instructions.

If you are installing an ISA card then configure the IO address using the DIP switches.
By default the kernel/module will probe for the card at these address's:
0x100 DIL switch 01000000,
0x180 01100000,
0x250 10010100,
0x260 10011000
PCI cards will be autodetected by the host.

If the kernel was made with built-in support the the card will be probed during boot.
If you used modular support, load the Specialix IO8+ module as follows:
# insmod specialix
Note: you may need to specify the path to the specialix.o module.

Type the following command to verify that the Specialix module is loaded:
# lsmod
You should see the following results:

Module size used by
Specialix 32572 0 (unused)

Create Devices nodes

TTY device names are ttyW0 through ttyW7 (note the upper case W). The major number is '75' and minor number starts at '0'. Callout devices names are cuw0 through cuw7 (note the lower case w), The major number is '76' and minor number starts at '0'.

If your Linux distribution does not have the I/O8+ devices included you will have to manually create them. Create device names in the /dev directory for every port on the IO8+ card. For example, suppose you wish to create TTY character devices for each port on the IO8+ card:

# mknod /dev/ttyW0 c 75 0
# mknod /dev/ttyW1 c 75 1

Configure logins (optional)

RedHat discontinued the use of Setserial on current kernel versions as well as the use of "cu" devices. Do not use "mingetty" for logins as this is for virtual consoles and cannot be used with serial lines.

So if you want logins on serial ports of the IO8+ card, you would add an entry in the /etc/inittab file as in the following examples:

W0:2345:respawn:/sbin/mgetty -s 9600 ttyW0 M9600
W1:2345:respawn:/sbin/agetty 9600 ttyW1 vt100
W2:2345:respawn:/sbin/getty ttyW1 M9600

Note: The "M9600" refers to an entry in the /etc/gettydefs file. "M9600" uses 9600, 8, none parity, 1 stop, software flow control. If these settings are not acceptable, you need to add another entry in the /etc/gettydefs file that matches your terminal settings. Do a man page on gettydefs for the correct syntax.

Other useful information

Resource and status information about the IO8+ PCI card is found in the following location: /proc/pci, example:

Bus 0, device 13, function 0:
Communication controller: Specialix Research Ltd. PCI_9050 (rev 1). IRQ 11.
Non-prefetchable 32 bit memory at 0x10000000 [0x1000007f].
I/O at 0x1400 [0x147f].
I/O at 0x1020 [0x1027].

Card probing information is recorded in the system logs: /var/log/messages or /var/log/dmesg, example:

Dec 7 09:34:03 rh71 kernel: sx: Specialix IO8+ driver v1.10, (c) R.E.Wolff 1997/1998.
Dec 7 09:34:03 rh71 kernel: sx: DTR/RTS pin is RTS when CRTSCTS is on.
Dec 7 09:34:03 rh71 kernel: sx0: specialix IO8+ board detected at 0x100, IRQ 9, CD1864 Rev. A.
Dec 7 09:34:03 rh71 kernel: sx1: specialix IO8+ Board at 0x180 not found.
Dec 7 09:34:03 rh71 kernel: sx2: specialix IO8+ Board at 0x250 not found.
Dec 7 09:34:03 rh71 kernel: sx3: specialix IO8+ Board at 0x260 not found.
Dec 7 09:34:03 rh71 kernel: sx1: specialix IO8+ board detected at 0x1020, IRQ 11, CD1865 Rev. B.

In the above example an ISA card was detected at address 0x100 and a PCI card was also detected at address 0x1020.

Possible errors and solutions:

The error "INIT:Id"c3" respawning too fast:disabled for 5 minutes", could be caused by the fact that your system has not detected the I/O8+ card nor assigned it any resources to function in your system.

Verify that the card detection is reported in /var/log/messages and/or /proc/pci

If the ISA card is not detected then you may have a resource conflict. Configure the card to use a different IO address.

Additional information can be found in the Perle I/O8+ manual and within the Linux kernel documentation ../Documentation/specialix.txt

Related Articles:
1.) Perle Multiport Serial Cards and the Linux kernel


Article ID:
13
Published:
12/26/2002 2:29:41 PM
Last Modified:
10/2/2006 9:05:13 AM
Issue Type:
Configuration