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