Koozali.org: home of the SME Server

Add 2 serial ports to the system

Offline tropicalview

  • *****
  • 196
  • +0/-0
    • http://www.tropicalview.net
Add 2 serial ports to the system
« on: December 23, 2007, 06:32:57 AM »
Hi

I bought a pci -> serial card (nm9835)(see installation instructions attached)

I need them for extra ups's
But it seems like the upses needs the ports at startup,

i can make the ports working with the commands:

 setserial  /dev/ttyS2 port  0xc007 UART 16550A irq 10 Baud_base 115200
                       

           setserial  /dev/ttyS3 port 0xc407 UART 16550A irq 10 Baud_base 115200
                       

How can i make it work that the ports are initiated during startup and before the NUT server starts?

Kind regareds.

Hendrik.

ps. i could not attach the instructions.
Hereby they are:

Quote
This installation guide describes the procedures to install NetMos Technology Nm9735CV, Nm9745CV, Nm9835CV, Nm9845CV PCI serial ports in Linux platform.

Linux Platform

l Operating System      : RedHat, SuSe
l Terminal Emulation AP      : minicom
l Internet Dialer      : Kppp


Find the available serial ports

Since Linux only support 4 serial ports (ttyS0, ttyS1, ttyS2, ttyS3) under the default condition. Most likely, ttyS0 & ttyS1 are supported by mother board's built-in serial controllers and ttyS2 & ttyS3 are free for additional I/O card.

Serial ports could be checked by the following commands.

setserial  /dev/ttyS0 -a       (COM-1)
setserial  /dev/ttyS1 -a       (COM-2)
setserial  /dev/ttyS2 -a       (COM-3)
setserial  /dev/ttyS3 -a       (COM-4)

If COM-1 is used by mouse, the response is similar to

/dev/ttyS0 : Device or resource busy   

If the COM-1 does not attach any device, the response is similar to

/dev/ttyS0, Line 0,    UART: 16550A, Port: 0x3f8, irq: 4
                    Baud_base: 115200, clos_delay: 50, divisor: 0
                    closing_wait: 3000, closing_wait2: infinite
                    Flags: spd_normal skip_test

In case ttyS2 (COM-3) is free, the response for command  setserial /dev/ttyS2 -a is shown below.

/dev/ttyS2, Line 2,    UART: unknown, Port: 0x3e8, irq: 4
                        Baud_base: 115200, clos_delay: 50, divisor: 0
                        closing_wait: 3000, closing_wait2: infinite
                        Flags: spd_normal skip_test

Find the PCI card resource ( I/O port address & IRQ) for the serial ports

Enter the command  more  /proc/pci

The response is similar to the following
     
         Bus 0, Device 11, function 0:
         Serial controller : Unknown vendor Unknown device (rev 01).
         Vendor id=9710, Device id=9735
               Device id=9745
               Device id=9820
               Device id=9825
               Device id=9835
               Device id=9845

         Medium devsel. Fast back-to-back capable. IRQ 11

         Board with Nm9735CV part
         I/O at 0xc000 [0xc001]   serial port 1
                0xc008 [0xc009]   serial port 2

         Board with Nm9745CV part
         I/O at 0xc000 [0xc001]   serial port 1
                0xc008 [0xc009]   serial port 2
                0xc010 [0xc011]   device 1
                0xc018 [0xc019]   device 2
                0xc020 [0xc021]   device 3
                0xc028 [0xc029]   device 4

         Board with Nm9820CV part
         I/O at 0xc000 [0xc001]   serial port 1
         I/O at 0xc400 [0xc401]   not used
         I/O at 0xc800 [0xc801]   not used
         I/O at 0xd000 [0xd001]   not used
         I/O at 0xd400 [0xd401]   not used
         I/O at 0xd800 [0xd801]   not used

         Board with Nm9825CV part
         I/O at 0xc000 [0xc001]   serial port 1
            
         Board with Nm9835CV part
         I/O at 0xc000 [0xc001]   serial port 1
         I/O at 0xc400 [0xc401]   serial port 2
         I/O at 0xc800 [0xc801]   not used
         I/O at 0xd000 [0xd001]   not used
         I/O at 0xd400 [0xd401]   not used
         I/O at 0xd800 [0xd801]   not used

         Board with Nm9845CV part
         I/O at 0xc000 [0xc001]   serial port 1
         I/O at 0xc400 [0xc401]   serial port 2
         I/O at 0xc800 [0xc801]   device 1
         I/O at 0xd000 [0xd001]   device 2
         I/O at 0xd400 [0xd401]   device 3
         I/O at 0xd800 [0xd801]   device 4

         Board with Nm9755CV part
         I/O at 0xc000 [0xc001]   not used
         I/O at 0xc400 [0xc401]   not used
         I/O at 0xc800 [0xc801]   device 1
         I/O at 0xd000 [0xd001]   device 2
         I/O at 0xd400 [0xd401]   device 3
         I/O at 0xd800 [0xd801]   device 4


From the  /proc/pci file, it is possible to find the PCI card's I/O port address and IRQ. Especially, the NetMos parts always shows

         Vendor id=9710, Device id=9735
               Device id=9745
               Device id=9820
               Device id=9825
               Device id=9835
               Device id=9845
   
Configure the parameters for ttyS2 or ttyS3

Enter (if ttyS2 or ttyS3 are free)

           setserial  /dev/ttyS2 port 0xc000 UART 16550A
                       irq 11 Baud_base 115200

           setserial  /dev/ttyS3 port 0xc008 UART 16550A
                       irq 11 Baud_base 115200

Check the setting for ttyS2 or ttyS3

Type setserial  /dev/ttyS2 -a

               /dev/ttyS2, Line 2, UART: 16550A, Port: 0xc000, irq: 11
                    Baud_base: 115200, clos_delay: 50, divisor: 0
                    closing_wait: 3000, closing_wait2: infinite
                    Flags: spd_normal skip_test


The ttyS2 or ttyS3 are ready for application

the outcome of the "more /proc/pci is:

Quote
Bus  0, device  10, function  0:
    Class 0780: PCI device 9710:9835 (rev 1).
      IRQ 10.
      Master Capable.  Latency=32.
      I/O at 0xc000 [0xc007].
      I/O at 0xc400 [0xc407].
      I/O at 0xc800 [0xc807].
      I/O at 0xcc00 [0xcc07].
      I/O at 0xd000 [0xd007].
      I/O at 0xd400 [0xd40f].
« Last Edit: December 23, 2007, 06:35:54 AM by tropicalview »
The sky is not the limit, But when I reach the sky, for sure I will not try to go to the limit.... (donated $25,- upto now)

Offline cactus

  • *
  • 4,880
  • +3/-0
    • http://www.snetram.nl
Re: Add 2 serial ports to the system
« Reply #1 on: December 25, 2007, 12:00:09 AM »
Be careful whose advice you buy, but be patient with those who supply it. Advice is a form of nostalgia, dispensing it is a way of fishing the past from the disposal, wiping it off, painting over the ugly parts and recycling it for more than its worth ~ Baz Luhrmann - Everybody's Free (To Wear Sunscreen)

Offline cactus

  • *
  • 4,880
  • +3/-0
    • http://www.snetram.nl
Re: Add 2 serial ports to the system
« Reply #2 on: December 25, 2007, 12:05:38 AM »
Perhaps this might be of some help: http://www.linuxhq.com/ldp/howto/Modem-HOWTO-10.html#sets_boot_time
And after some looking around there is an init script in the /usr/share/doc/setserial-x.yy folder, it seems to make use of a /etc/serial.conf file (at least on my SME Server 7.2 server). There is a minimal readme there as well.
Be careful whose advice you buy, but be patient with those who supply it. Advice is a form of nostalgia, dispensing it is a way of fishing the past from the disposal, wiping it off, painting over the ugly parts and recycling it for more than its worth ~ Baz Luhrmann - Everybody's Free (To Wear Sunscreen)