I've got this 2 port PCI serial card installed in an older Linux machine (it's offline, so updates are few and far between). The documentation for the card says that the installed kernel version on the machine is supported, and I can see that the card is working when I connect one port to the other.
The problem comes when I try to read a data stream coming from a serial network interface server (a Perle IOLAN to be specific). All I get is
0x00 coming out instead of ASCII text. I've verified that the major settings are the same (baud rate, 8 bits/char, 1 stop bit, no parity, no flow control) between the two ends, and have tried various baud rates as well. The same thing happens when I connect a Windows machine to it in order to test (the Windows machine reads from the IOLAN just fine as well).
The previous serial card (I think it's this one, but if not, it's something close) works fine, but it also has a different UART in it (a 16550 vs. a 16950 in this new card).
Here is the output I'm getting for one of the ports from
speed 115200 baud; rows 0; columns 0; line = 0; intr = <undef>; quit = ; erase = <undef>; kill = s; eof = <undef>; eol = a; eol2 = <undef>; swtch = r; start = ^Q; stop = ^S; susp = <undef>; rprnt = <undef>; werase = <undef>; lnext = ; flush = l; min = 0; time = 1; -parenb -parodd cs8 -hupcl -cstopb cread clocal crtscts -ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8 -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
/dev/ttyS2, Line 2, UART: 16950/954, Port: 0x1078, IRQ: 74 Baud_base: 115200, close_delay: 50, divisor: 0 closing_wait: 3000 Flags: spd_normal skip_test auto_irq
I can tell that my major settings are correct, and comparing against another Linux machine that's working, I don't see anything too out of place. So why can't this card talk to other machines like it should?
EDIT: As per @sawdust, my kernel version is 2.6.18, according to
Linux serverName 2.6.18-92.el5 #1 SMP Tue Jun 10 18:49:47 EDT 2008 i686 i686 i386 GNU/Linux
The card also looks to be recognized on boot, although perhaps not entirely properly:
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A 0000:00:03.3: ttyS1 at I/O 0x4470 (irq = 177) is a 16550A ttyS2: detected caps 00000700 should be 00000100 0000:07:00.0: ttyS2 at I/O 0x1078 (irq = 74) is a 16C950/954 ttyS3: detected caps 00000700 should be 00000100 0000:07:00.0: ttyS3 at I/O 0x1070 (irq = 74) is a 16C950/954 ttyS2: detected caps 00000700 should be 00000100
(ttyS0 and ttyS1 have headers on the motherboard, but no physical DB-9 port.)
/proc/tty/dirvers/ contains a single file, named