Hardware manual
to create a conflict. But a real conflict can be created if "setserial" has told the kernel incorrect info. The
kernel has been lied to and thus doesn't think there is any conflict. Thus using "setserial" will not reveal the
conflict (nor will looking at /proc/interrupts which bases its info on "setserial"). You still need to know what
"setserial" thinks so that you can pinpoint where it's wrong and change it when you determine what's really set
in the hardware.
What you need to do is to check how the hardware is set by checking jumpers or using PnP software to check
how the hardware is actually set. For PnP run either "pnpdump --dumpregs" (if ISA bus) or run "lspci" (if PCI
bus). Compare this to how Linux (e.g. "setserial") thinks the hardware is set.
16.7 Somewhat Slow: I expected it to be a few times faster
An obvious reason is that the baud rate is set too slow. It's claimed that this once happened by trying to set the
baud rate to a speed higher than the hardware can support (such as 230400).
Another reason may be that whatever is on the serial port (such as a modem, terminal, printer) doesn't work as
fast as you thought it did.
Another possible reason is that you have an obsolete serial port: UART 8250, 16450 or early 16550 (or the
serial driver thinks you do). See
What Are UARTS? Use "setserial -g /dev/ttyS*". If it shows anything less than a 16550A, this may be your
problem. If you think that "setserial" has it wrong check it out. See What is Setserial for more info. If you
really do have an obsolete serial port, lying about it to setserial will only make things worse.
16.8 The Startup Screen Shows Wrong IRQs for the Serial
Ports
For non-PnP ports, Linux does not do any IRQ detection on startup. When the serial module loads it only does
serial device detection. Thus, disregard what it says about the IRQ, because it's just assuming the standard
IRQs. This is done, because IRQ detection is unreliable, and can be fooled. But if and when setserial runs
from a start-up script, it changes the IRQ's and displays the new (and hopefully correct) state on on the startup
screen. If the wrong IRQ is not corrected by a later display on the screen, then you've got a problem.
So, even though I have my ttyS2 set at IRQ 5, I still see
ttyS02 at 0x03e8 (irq = 4) is a 16550A
at first when Linux boots. (Older kernels may show "ttyS02" as "tty02" which is the same as ttyS2). You may
need to use setserial to tell Linux the IRQ you are using.
16.9 "Cannot open /dev/ttyS?: Device or resource busy
See /dev/tty? Device or resource busy
16.10 "Cannot open /dev/ttyS?: Permission denied"
Serial HOWTO
16.6 Extremely Slow: Text appears on the screen slowlyafter long delays 61