Port Linux device Base I/O Addr IRQ ------------------------------------------ COM1 ttyS0 3F8 4 COM2 ttyS1 2F8 3 COM3 ttyS2 3E8 4 [*] clashes with COM1 COM4 ttyS3 2E8 3 [*] clashes with COM2The solution is to set your modem to a different interrupt; good choices are COM3-IRQ5 (unless you have a sound card, which is often already using IRQ5) and COM4-IRQ2. (IRQ2 is the same as IRQ9 on a PC, so if your modem has a link for IRQ9, that's fine too). Don't use IRQ7 - this is used by the printer port.
Once you have set up your modem, using on-board jumpers or DIP switches, you need to tell Linux when it boots to use a different IRQ. Add a line or lines like this to /etc/rc.d/rc.local
setserial -v /dev/ttyS2 irq 5 setserial -v /dev/ttyS3 irq 2If you need to install an internal modem as COM1 or COM2, and your PC already has a COM1 or COM2, then you must disable the existing COM port. This might be a jumper on your I/O card, or for motherboards with on-board I/O, a BIOS setup setting.
It's easy to check which you have - look at the kernel messages when the system boots up, which you can see afterwards using the following command:
dmesg | lessIf you have 8250 or 16450 UARTs, they are unlikely to work at above 9600 bits per second (and even at 9600 may loose characters occasionally). Upgrade your PC's I/O card to one which has 16550A UARTs; this shouldn't cost you more than around US$30.
Most internal modems have 16550A UARTs on board - so this problem doesn't arise for them. Most modern motherboards also have 16550A UARTs on-board.