Language
English
Get Firefox!
Ralf Zimmermann home
 
Hardware
Software
 
English-German dictionary for Palm OS handhelds
English-German online dictionary
 
Ham Radio
Amateur Satellites
Paragliding
Friends
Weird Stuff
 
For Sale
 
About Myself
About my employer
 
Mail me
 
Imprint

Valid HTML 4.01!

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 possible3F8, 2F8, 3E8, 2E8, 260, 268, 250, 258, 240, 248, 230, 238
IRQs possible3, 4, 5, 7, 9, 10, 11, 12, 15
speedup 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 addressIRQ
S13E87
S22E87
S32687
S42407

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

  1. Log in as root.
  2. 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.
  3. Suse Linux 7.0 and later
    • Make a backup of the file /etc/init.d/boot.local
    • Open the file /etc/init.d/boot.local in an editor
    • Insert the following lines:
          setserial /dev/ttyS2 uart 16550A port 0x3E8 irq 7 fourport
          setserial /dev/ttyS3 uart 16550A port 0x2E8 irq 7 fourport
          setserial /dev/ttyS4 uart 16550A port 0x268 irq 7 fourport
          setserial /dev/ttyS5 uart 16550A port 0x240 irq 7 fourport
        
    • Save the file and reboot.
  4. 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!


Created: 2000-11-01 by Ralf Zimmermann
Modified: 2000-11-02