Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Adding multi-port serial cards on a slackware 12 server 1

Status
Not open for further replies.

labnotes

Technical User
Sep 1, 2003
33
CA
Good Day

I had a PC (server) running Redhat 7.3 with two 8 port serial cards installed. This PC ran for 7 years without a problem but finally failed. I am now trying to get an IBM NetVista PC to take it's place running Slackware12 but I can't figure out how to configure the serial port. Here's what I have so far:

setserial -g /dev/ttyS*

/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/tts/2, UART: 16950/954, Port: 0x2060, IRQ: 16
/dev/ttyS3, UART: 16950/954, Port: 0x2068, IRQ: 16


ttyS0 and ttyS1 are built in on the motherboard. ttyS2 and ttyS3 are actually from one the multiport serial cards and work.

Here are the Serial cards:

/sbin/lspci -v

02:0a.0 Serial controller: Oxford Semiconductor Ltd OX16PCI954 (Quad 16950 UART) function 0 (Uart) (prog-if 06 [16950])
Subsystem: Oxford Semiconductor Ltd Unknown device 0000
Flags: medium devsel, IRQ 16
I/O ports at 2060
Memory at c0101000 (32-bit, non-prefetchable) [size=4K]
I/O ports at 2040
Memory at c0100000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 1

02:0a.1 Bridge: Oxford Semiconductor Ltd OX16PCI954 (Quad 16950 UART) function 1 (8bit bus)
Subsystem: Oxford Semiconductor Ltd Unknown device 0000
Flags: medium devsel, IRQ 16
I/O ports at 20a0
Memory at c0103000 (32-bit, non-prefetchable) [size=4K]
I/O ports at 2080
Memory at c0102000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 1



02:0c.0 Serial controller: Oxford Semiconductor Ltd OX16PCI954 (Quad 16950 UART) function 0 (Uart) (prog-if 06 [16950])
Subsystem: Oxford Semiconductor Ltd Unknown device 0000
Flags: medium devsel, IRQ 17
I/O ports at 20e0
Memory at c0105000 (32-bit, non-prefetchable) [size=4K]
I/O ports at 20c0
Memory at c0104000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 1

02:0c.1 Bridge: Oxford Semiconductor Ltd OX16PCI954 (Quad 16950 UART) function 1 (8bit bus)
Subsystem: Oxford Semiconductor Ltd Unknown device 0000
Flags: medium devsel, IRQ 17
I/O ports at 2420
Memory at c0107000 (32-bit, non-prefetchable) [size=4K]
I/O ports at 2400
Memory at c0106000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 1

When I look at vi /proc/interrupts

CPU0
0: 63 IO-APIC-edge timer
1: 332 IO-APIC-edge i8042
6: 5 IO-APIC-edge floppy
7: 0 IO-APIC-edge parport0
8: 1 IO-APIC-edge rtc
9: 0 IO-APIC-fasteoi acpi
12: 36 IO-APIC-edge i8042
14: 5801 IO-APIC-edge ide0
15: 94598 IO-APIC-edge ide1
16: 10 IO-APIC-fasteoi serial
18: 0 IO-APIC-fasteoi uhci_hcd:usb4
19: 0 IO-APIC-fasteoi ehci_hcd:usb1
20: 15638 IO-APIC-fasteoi uhci_hcd:usb2, eth0
21: 0 IO-APIC-fasteoi uhci_hcd:usb3
22: 81 IO-APIC-fasteoi Intel 82801DB-ICH4
NMI: 0
LOC: 54165
ERR: 0
MIS: 0

I see IRQ 16 in use when ttyS3 is active.
I feel the serial cards are there and working I just don't know how to get at the ports.

Thank you in advance.
 
Does the /etc/inittab contain any settings for the serial ports. How exactly do you want to configure them?
 
The /etc/inittab has serial devices commented out, the devices are ttyS0 and ttyS1. Once I have the ports available they are used by terminal server program. The serial ports need to activated on bootup and stay available.
 
I am guessing you need to add lines to the inittab for the new serial ports with the appropriate serial settings. You will need to issue a telinit q command or reboot to force the system to re-examine the inittab file. I would presume the serial card vendor would have documentation on the required settings.
 
Thank you mrregan .. Looking at my system I need to create ttyS4, ttyS5 etc. I'll see if the inittab will do the trick
 
Looking at my system under /dev I have ttyS0 ==> ttyS3. These are symbolic link to /dev/tts/0 ==> 3. They are created by the system on boot up I guess from information in the /sys folder. I found references to them in /sys/class/tty/ttyS* which points to /sys/devices/pci0000:00/. I don't know how to get ttyS4 and above to start the same way.
 
I am strictly guessing at this point. You may need to create one or two more of these devices to see if you are on the right track. Example ( I used 4 68 and 4 69, but you need to see where /dev/ttyS3 leaves off). Then see if setserial works on them before proceeding with more devices)

mknod /dev/tts/4 -m 622 c 4 68
mknod /dev/tts/5 -m 622 c 4 69
ln -s /dev/tts/4 /dev/ttyS4
ln -s /dev/tts/5 /dev/ttyS5
 
Thank you for your assistance. I am running the 2.6 kernel which by default only loaded 4 serial ports. I modified the kernel ".config" file that recompiled the kernel. Now I have all the serial ports I require working. Thank you again
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top