|
Exsys EX-4044I - Multi port serial card - Fifo RS-232 - Linux
The problem
I am using serial ports quite heavily. My motherboard has two serial ports.
I bought a cheap card with two additional serial ports (and one additional parallel port which i did not use).
That card had no FIFO for the ports and these four ports were not enough for me altogether.
That is why i was looking for another expansion card for my computer. I bought the above mentioned card,
not knowing if and how it would work under LiNUX.
As i now found out and my card is running without any problems - i thought i should tell others.
That is why i made up this small howto-page.
The card
chips used (4x) | 16C550, with 16 Byte buffer |
IO ports possible | 3F8, 2F8, 3E8, 2E8, 260, 268, 250, 258, 240, 248, 230, 238 |
IRQs possible | 3, 4, 5, 7, 9, 10, 11, 12, 15 |
speed | up to 460.8 kBaud |
Jumper Setting
There are two jumpers needed to determine the IRQ sharing. First, set the jumper at the single place on the board. It enables the irq sharing.
I am using interrupt #7 for the four ports on the card.
Second, set one jumper to the appropriate irq that you want to use. This line is labelled INTERRUPTER.
Port # | IO address | IRQ |
S1 | 3E8 | 7 |
S2 | 2E8 | 7 |
S3 | 268 | 7 |
S4 | 240 | 7 |
This means, that there are six jumpers used on the card to determine everything you need for interrupt sharing.
That looks like this:
I I I X I I I I I X
I I I X I I I I I I I I I I I I I I I I I
I I I I X I I I I I I I I I I I I I I I I
I I I I I I I X I I I I I I I I I I I I I
I I I I I I I I X I I I I I I I I I I I I
I : no jumper at this location
X : jumper at this location
|
How to tell LiNUX about those ports
- Log in as root.
- Suse Linux before 7.0
- Make a backup of the file /sbin/init.d/serial
- Open the file /sbin/init.d/serial in an editor and find this section:
###############################################################
#
# MANUAL CONFIGURATION
#
# If you want to do manual configuration of one or more of your
# serial ports, uncomment and modify the relevant lines.
#
###############################################################
- Behind this, insert the following lines:
run_setserial /dev/ttyS2 uart 16550A port 0x3E8 irq 7 fourport
run_setserial /dev/ttyS3 uart 16550A port 0x2E8 irq 7 fourport
run_setserial /dev/ttyS4 uart 16550A port 0x268 irq 7 fourport
run_setserial /dev/ttyS5 uart 16550A port 0x240 irq 7 fourport
- Save the file and reboot.
- Suse Linux 7.0 and later
- After the boot, you should be able to use the new serial ports.
You can test each port with the setserial command (as root).
It should look like this:
root@computer:/home/root > setserial /dev/ttyS2 -a
/dev/ttyS2, Line 2, UART: 16550, Port: 0x03e8, IRQ: 7
Baud_base: 115200, close_delay: 50, divisor: 0
closing_wait: 3000, closing_wait2: infinte
Flags: spd_normal Fourport skip_test
root@computer:/home/root >
What do i need all these ports for?
- Modem for the phone line
- Cradle for my Palm Vx
- irman infrared receiver for remote controlling my computer (nice for playing my MP3s)
- TNC, a modem for Packet Radio, up to 9600 Baud over the air (i am a ham radio operator, callsign DL1FDT)
- Transmitter, over this serial port, i am able to configure my packet radio transceiver
- serial port for my Palm Emulator
- Port 1 for debugging serial communication, used while debugging communication between a palm and a cellular phone
- Port 2 for debugging serial communication
Count the ports that i would need - i still have two ports lacking.
Standard Disclaimer
As always, this description worked fine for me. I can't tell if that will work on your computer too.
I am not taking any responsibility for anything that goes wrong on your computer, neither hardware nor software.
I your computer gets messed up - i am sorry but not responsible!
|