I've got a Dell Optiplex GX1 running the ubuntu hoary release 
(debian-based distro).

$ uname -a

Linux dcl 2.6.10-5-386 #1 Mon Oct 10 11:15:41 UTC 2005 i686 GNU/Linux


I bought a USR 56K PCI hardware modem at General Nanosystems. I can't 
get wvdialconf to find it. The port scan finds serial device ttyS0, 
ttyS1 and ttyS14. The latter is the modem device, but the 
autoconfiguration step at 2400, 9600 and 115200 baud fails.

...

ttyS14<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud

ttyS14<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud

ttyS14<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.

...


$ lspci -vv says:

0000:00:0d.0 Serial controller: 5610 56K FaxModem 56K FaxModem Model 5610 (rev 01) (prog-if 02 [16550])

        Subsystem: 5610 56K FaxModem USR 56k Internal Voice Modem (Model 2976)

        Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-

        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-

        Interrupt: pin A routed to IRQ 10

        Region 0: I/O ports at dcd8 [size=8]

        Capabilities: [dc] Power Management version 2

                Flags: PMEClk- DSI- D1- D2+ AuxCurrent=0mA PME(D0+,D1-,D2+,D3hot+,D3cold-)

                Status: D0 PME-Enable- DSel=0 DScale=2 PME-

During boot, the modem's serial port is identified as ttyS14. The 
Optiplex GX1 has two serial ports on the back, identified in Linux as 
ttyS0 and ttyS1. I've tried disabling these in the BIOS, but they still 
show up in dmesg, and it makes no difference. Here's the relevant 
section in dmesg:

...

isapnp: Scanning for PnP cards...

isapnp: Card 'CS4236B'

isapnp: 1 Plug & Play card detected total

serio: i8042 AUX port at 0x60,0x64 irq 12

serio: i8042 KBD port at 0x60,0x64 irq 1

Serial: 8250/16550 driver $Revision: 1.90 $ 54 ports, IRQ sharing enabled

ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10

PCI: setting IRQ 10 as level-triggered

ACPI: PCI interrupt 0000:00:0d.0[A] -> GSI 10 (level, low) -> IRQ 10

ttyS14 at I/O 0xdcd8 (irq = 10) is a 16550A

ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

io scheduler noop registered

io scheduler anticipatory registered

io scheduler deadline registered

io scheduler cfq registered

...


I've read the modem HOWTO at tldp.org and I've tried using setserial to 
set the port, irq and uart type:

   $ setserial /dev/ttyS14 port 0xdcd8 irq 10 uart 16650A autoconfig


but while this doesn't fail, it makes no difference. I've tried using 
the same port/irq as for DOS devices COM3 and COM4, with no difference 
(thinking that ttyS14 was way off) but that made no difference.

I've tried using minicom to talk to the port directly: I can't get any 
response at any baud rate. Sometimes I can't cleanly exit from minicom 
-- the message "Resetting modem" appears, then the screen is cleared but 
after that no shell prompt appears.  CTRL/C and CRTL/Z don't work; I 
have to kill the session.

There are two strange notes in /var/log/messages that appear during 
boot. The first is about how PCI interrupts are no longer routed 
automatically:

...

Oct 24 02:15:34 localhost kernel: PCI: Using ACPI for IRQ routing

Oct 24 02:15:34 localhost kernel: ** PCI interrupts are no longer routed automatically.  If this

Oct 24 02:15:34 localhost kernel: ** causes a device to stop working, it is probably because the

Oct 24 02:15:34 localhost kernel: ** driver failed to call pci_enable_device(). As a temporary

Oct 24 02:15:34 localhost kernel: ** workaround, the "pci=routeirq" argument restores the old

Oct 24 02:15:34 localhost kernel: ** behavior.  If this argument makes the device work again,

Oct 24 02:15:34 localhost kernel: ** please email the output of "lspci" to bjorn.helgaas at hp.com

Oct 24 02:15:34 localhost kernel: ** so I can fix the driver.

...


I haven't tried this yet.

Here's the discovery of the modem in /var/log/messages:

...

Oct 24 02:15:34 localhost kernel: isapnp: Scanning for PnP cards...

Oct 24 02:15:34 localhost kernel: isapnp: Card 'CS4236B'

Oct 24 02:15:34 localhost kernel: isapnp: 1 Plug & Play card detected total

Oct 24 02:15:34 localhost kernel: serio: i8042 AUX port at 0x60,0x64 irq 12

Oct 24 02:15:34 localhost kernel: serio: i8042 KBD port at 0x60,0x64 irq 1

Oct 24 02:15:34 localhost kernel: Serial: 8250/16550 driver $Revision: 1.90 $ 54 ports, IRQ sharing enabled

Oct 24 02:15:34 localhost kernel: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

Oct 24 02:15:34 localhost kernel: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

Oct 24 02:15:34 localhost kernel: ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10

Oct 24 02:15:34 localhost kernel: PCI: setting IRQ 10 as level-triggered

Oct 24 02:15:34 localhost kernel: ACPI: PCI interrupt 0000:00:0d.0[A] -> GSI 10(level, low) -> IRQ 10

Oct 24 02:15:34 localhost kernel: ttyS14 at I/O 0xdcd8 (irq = 10) is a 16550A

Oct 24 02:15:34 localhost kernel: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

Oct 24 02:15:34 localhost kernel: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

....


The second strange message in /var/log/messages is how kseriod is not 
stopped.

....

Oct 24 02:15:34 localhost kernel: Restarting tasks...<6> Strange, kswapd0 not stopped

Oct 24 02:15:34 localhost kernel:  Strange, kseriod not stopped

Oct 24 02:15:34 localhost kernel:  done

....


Output from ps confirms that kseriod is running:

$  ps -eaf | egrep serio

root       707     1  0 02:14 ?        00:00:00 [kseriod]



I've tried using Knoppix -- it doesn't even find the PCI device.

Thanks for any suggestions.

-Jeff