[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Modem trouble



First, many thanks for all the helpful and encouraging replies. There is now a 
difference, which I hope means progress.  Here is my summary of the advice, 
with apologies for any distortions:

* Recompile kernel with: IRQ sharing, APM, no SCSI, no Unix98 ptys.
* Force UART to be 16550 (not 16450) and/or port to be 0x3e8 (not 0xaf8).
* Tell pcmcia to ignore IRQs shown by dmesg to be in use.
* Use BIOS PnP support.
* Uninstall setserial.
* Get a BIOS upgrade.

The IRQ sharing sounded crucial so (after some fruitless fiddling with pcmcia 
config files) I recompiled the kernel, reverting to standard pcmcia 
config.opts and serial.opts, and leaving BIOS PnP off.

Here is an extract of the relevant (I think) portions of dmesg with the new 
kernel, standard pcmcia configs and no PnP, card in slot:
>>>
Linux version 2.2.14 (root@nicknote) (gcc version 2.95.2 20000313 (Debian 
GNU/Linux)) #1 Wed May 3 15:02:14 PDT 2000
...
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.9)
...
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
...
Serial driver version 4.27 with SHARE_IRQ enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Linux PCMCIA Card Services 3.1.8
  kernel build: 2.2.14 unknown
  options:  [pci] [cardbus] [apm]
Intel PCIC probe: 
  TI 1225 PCI-to-CardBus at bus 0 slot 10, mem 0x68000000, 2 sockets
    host opts [0]: [ring] [pwr save] [serial pci & irq] [no pci irq] [lat 
168/176] [bus 32/34]
    host opts [1]: [ring] [pwr save] [serial pci & irq] [no pci irq] [lat 
168/176] [bus 35/37]
    ISA irqs (scanned) = 3,4,7,9,11 polling interval = 1000 ms
cs: IO port probe 0x1000-0x17ff: excluding 0x1000-0x103f 0x1400-0x140f
cs: IO port probe 0x0100-0x04ff: excluding 0x378-0x37f 0x4d0-0x4d7
cs: IO port probe 0x0a00-0x0aff: clean.
cs: memory probe 0xa0000000-0xa0ffffff: clean.
eth0: NE2000 Compatible: io 0x300, irq 3, hw_addr 00:E0:98:08:EA:C2
tty02 at 0x0af8 (irq = 3) is a 16450
...
eth0: found link beat
<<<

Here is tail of /var/log/daemon.log:
>>>
May  3 16:33:08 nicknote cardmgr[139]: watching 2 sockets
May  3 16:33:09 nicknote modprobe: modprobe: Can't locate module char-major-45
May  3 16:33:10 nicknote cardmgr[139]: initializing socket 1
May  3 16:33:10 nicknote cardmgr[139]: socket 1: Linksys EtherFast LANmodem 56K
May  3 16:33:10 nicknote cardmgr[139]: executing: 'insmod 
/lib/modules/2.2.14/pcmcia/8390.o'
May  3 16:33:10 nicknote cardmgr[139]: executing: 'insmod 
/lib/modules/2.2.14/pcmcia/pcnet_cs.o'
May  3 16:33:10 nicknote cardmgr[139]: executing: 'insmod 
/lib/modules/2.2.14/pcmcia/serial_cs.o'
May  3 16:33:10 nicknote cardmgr[139]: executing: './network start eth0'
May  3 16:33:11 nicknote cardmgr[139]: executing: './serial start ttyS2'
May  3 16:33:11 nicknote rwhod[198]: sending on interface eth0
<<<
(should I worry about char-major-45?)

The ethernet is still fine.  Result of 'pon' now (/var/log/ppp.log):
>>>
May  3 16:41:39 nicknote chat[294]: send (ATZ^M)
May  3 16:41:39 nicknote chat[294]: expect (OK)
May  3 16:42:24 nicknote chat[294]: alarm
May  3 16:42:24 nicknote chat[294]: send (AT^M)
May  3 16:42:24 nicknote chat[294]: expect (OK)
May  3 16:43:09 nicknote chat[294]: alarm
May  3 16:43:09 nicknote chat[294]: Failed
May  3 16:43:09 nicknote pppd[293]: Connect script failed
May  3 16:43:10 nicknote pppd[293]: Exit.
<<<
i.e. same as before.

Now with BIOS PnP enabled:
No change :(

(But in either case (PnP on or not) I can restart from Win98 and Linux now 
sees the card sockets.  I've left PnP on.)

At this point, here is "setserial -ga /dev/ttyS2":
>>>
/dev/ttyS2, Line 2, UART: 16450, Port: 0x0af8, IRQ: 3
	Baud_base: 115200, close_delay: 50, divisor: 0
	closing_wait: 3000
	Flags: spd_normal skip_test
<<<

Now I try adding "uart 16550" in serial.opts.  Restart pcmcia.  setserial 
obediently reports the uart as 16550.  Result of "pon" in terms of 
/var/log/ppp.log: no change.  Same story for "uart 16550A".

I leave the uart in serial.opts at 16550A and try adding "port 0x3e8", i.e. 
/etc/pcmcia/serial.opts has line `SERIAL_OPTS="uart 16550A port 0x3e8"'.  
Restart pcmcia.  setserial obediently reports the given settings.  Result of 
"pon":
>>>
May  4 14:02:50 nicknote pppd[572]: pppd 2.3.11 started by root, uid 0
May  4 14:02:51 nicknote chat[573]: Can't get terminal parameters: 
Input/output error
May  4 14:02:51 nicknote pppd[572]: Connect script failed
May  4 14:02:52 nicknote pppd[572]: Exit.
<<<
Well, it's different.  Better or worse?

Now for the IRQs.  In /etc/pcmcia/config.opts, the options so far have been 
(comments omitted):
>>>
include port 0x100-0x4ff, port 0x1000-0x17ff
include memory 0xc0000-0xfffff
include memory 0xa0000000-0xa0ffffff, memory 0x60000000-0x60ffffff
include port 0xa00-0xaff
exclude irq 4
exclude irq 7
<<<

I add lines:
exclude irq 3
exclude irq 9
exclude irq 11

But now pcmcia won't recognize the card (high beep, low beep).  
/var/log/daemon.log ends with:
May  4 14:30:05 nicknote cardmgr[640]: get dev info on socket 1 failed: No 
such device

Here is "setserial -ga /dev/ttyS2":
>>>
/dev/ttyS2, Line 2, UART: unknown, Port: 0x03e8, IRQ: 3
	Baud_base: 115200, close_delay: 50, divisor: 0
	closing_wait: 3000
	Flags: spd_normal skip_test
<<<

I start removing the added 'exclude' lines, from 11 downwards.  With 11 
removed, pcmcia recognizes the card.  Here is "setserial -ga /dev/ttyS2":
>>>
/dev/ttyS2, Line 2, UART: 16550A, Port: 0x03e8, IRQ: 11
	Baud_base: 115200, close_delay: 50, divisor: 0
	closing_wait: 3000
	Flags: spd_normal skip_test
<<<

Result of "pon", in /var/log/ppp.log:
>>>
May  4 14:33:56 nicknote pppd[699]: pppd 2.3.11 started by root, uid 0
May  4 14:33:57 nicknote chat[700]: Can't get terminal parameters: 
Input/output error
May  4 14:33:57 nicknote pppd[699]: Connect script failed
May  4 14:33:58 nicknote pppd[699]: Exit.
<<<

Now I remove the exclusion of irq 9.  pcmcia recognizes the card.  Here is 
"setserial -ga /dev/ttyS2":
>>>
/dev/ttyS2, Line 2, UART: 16550A, Port: 0x03e8, IRQ: 2
	Baud_base: 115200, close_delay: 50, divisor: 0
	closing_wait: 3000
	Flags: spd_normal skip_test
<<<
Result of "pon": the "Can't get terminal" message again.

I leave the exclude irq 3 in place, i.e. /etc/pcmcia/config.ops is now 
(omitting comments):
>>>
include port 0x100-0x4ff, port 0x1000-0x17ff
include memory 0xc0000-0xfffff
include memory 0xa0000000-0xa0ffffff, memory 0x60000000-0x60ffffff
include port 0xa00-0xaff
exclude irq 4
exclude irq 7
exclude irq 3
<<<

I try specifying "irq 0" in serial.opts and restarting pcmcia.  Result of 
"pon": the "Can't get terminal" message again.

I try "dpkg --purge setserial" and restarting pcmcia. No change.  I reboot.  
ppp.log reverts to its "expect (OK)..alarm" form.  I try restoring config.opts 
and serial.opts to as-installed.  Still "expect (OK)..alarm".

I reboot, now choosing "none" in the BIOS for each of "COM A" (formerly COM1) 
and "COM B" (formerly COM2, configured for IrDA).  Now I am back to "Can't get 
terminal parameters".

Should I try a BIOS upgrade now?  Is there something else to try first?  All 
help welcome, if anyone is still reading.  At the risk of laboring the point, 
the modem (and ethernet) work in Win98, and the modem worked in Slink, so 
there is nothing fundamentally wrong..?

Nick

> 
> Seeking help getting a modem to work in potato + some unstable.  The modem is 
> on a Linksys EtherFast 10/100 + 56K Modem PC Card, model no. PCMLM56.
> 
> When the laptop was running Slink (installed from official CD set) the modem 
> worked but the ethernet did not.  Now the ethernet works but the modem does 
> not.  More details below, all help welcome.
> 
> Nick
> 
[snip]


Reply to: