On Tue, 2004-12-07 at 22:53 +1300, Volker Kuhlmann wrote:
> Here some explanation and possible solutions with modem trouble after
> kernel updates.
> 
> Symptom: Dial-up stops working after kernel upgrade. More precisely,
> pppd terminates immediately because it can't open /dev/modem.
> 
> Applies to: SuSE 9.1 + 9.2
> 
> Modem driver: kernel module slamr, user-space driver program slmodemd
> 
> Modem hardware: Acer Incorporated [ALI] AC'97 Modem Controller
>       PCI ID 1039:7013
>       (Acer Aspire 1703 laptop)
> 
> Problem:
>       1) The slamr module loads, but syslog shows an error about a not
>          found interupt. The module is in fact non-functional.
>          
>       2) Loading slmodemd too soon after slamr, like in a service init
>          script containing
>               modprobe slamr
>               /usr/sbin/slmodemd
>          causes slmodemd to exit immediately with some non-zero exit code.
> 
> Solution:
>       1) Boot with pci=noacpi
>       2) Insert a sleep 2 (a sleep 1 isn't enough) after modprobe slamr
>          See patch below.

Yes I had this problem on vatsala's laptop. I fixed it with a "sleep 3"
somewhere in the /etc/init.d/slmodemd debian script (we were on ubuntu
at that stage. of course he didn't like ubuntu because it didn't wipe
his nose, so we switched to suse, which he didn't like cos it didn't
wipe his ass...etc etc.). I didn't try anything lower than 3 as it
worked and I had to leave the office. 

Come to think of it, I was under the impression that SuSE set up the
system to load the slamr.ko modules at boot, ie when other modules are
loaded, whereas the debian system loaded the slamr.ko module from the
slmodemd init script. 

Looking at it closer, the smartlink-softmodem-2.9.6-79.i586.rpm installs
a file /etc/modprobe.d/slmodem which contains :

# slmodem support
alias char-major-212 slamr
alias char-major-213 slusb

I'm not sure if this is enough to trigger kernel loading on boot without
an explicit modprobe, i think it is. also there is no modprobe line in
the suse /etc/init.d/slmodem script to load the slamr module.

(however there is a modprobe -r in the stop part of the script - did
this lead to a problem where if you restarted the slmodemd initscript,
that the slamr module would be removed but not reloaded?)

If you are saying that the suse /etc/init.d/slmodemd script now _does_
modprobe slamr (a la debian), then this has been a change from 9.1. It
might explain a few teething problems.

anyway just a few random thoughts. without seeing the newer
smartlink-softmodem rpm its difficult to say what has changed. I tried
to find it, but suse doesn't seem to have published 9.2 to the mirrors
yet (or even on ftp.suse.com)


> 
> Notes:
> 
> The driver set uses the usual symlink /dev/modem pointing to
> ttySL0. ttySL0 is a symlink created by the driver module pointing to a
> pseudo-terminal, and is removed when the module exits. Also needed is
> /dev/slamr0, which slmodemd creates automatically (or run 
> mknod /dev/slamr0 c 212 0).
> 

actually strictly speaking the module (slamr.ko) only
makes /dev/slamr[0,1..]. the slmodemd program makes /dev/ttySL0 when it
is started (seemingly at least 2 secs after slamr.ko is modprobed.


> Booting with noacpi causes at least the laptop's fan control to fail,
> the fan goes nonstop (making a hell of a racket). Not acceptable.
> 

acpi *shudder* - I am dreading getting a newer laptop where I will have
to get to grips with it...(then again pIII 700M is wearing a bit
thin....)

> The hardware works out of the 9.1 box with the shipped kernel. It
> doesn't work with the updated kernel-default-2.6.5-7.111.5 (there is no
> smartlink-softmodem update). Solutions above not tested on 9.1.
> 

as the slamr.ko module is distributed (by suse) in the kernel rpm,
updating the kernel updates slamr.ko to one that was compiled with the
new kernel. Strictly there is no need to update the smartmodem-softmodem
package unless the support tools have changed enough to make it
necessary. I am guessing that the active development is going on in the
module itself, but thats a guess only.

One thing that is not obvious is which particular version of the slmodem
source code is being included in the kernel rpm. the fact that the
support programs rpm smartlink-softmodem is 2.9.6-? means they are using
slmodem-2.9.6, and presumably at least in the original 9.1 kernel they
used the same version. I guess the SPEC file for the kernel-source rpm
would tell us.

Not starting a distro war, but I do like the fact that on gentoo i would
know these things. although it would be a bitch to install without
having the modem going :-)

> It doesn't work out of the 9.2 box, but above two solutions with the
> updated kernel-default-2.6.8-24.5 and smartlink-softmodem-2.9.10-3.2 fix
> it.
> 

HA! and i just did a google on "smartlink-softmodem-2.9.10-3.2" and
located this:

http://distro.ibiblio.org/pub/linux/distributions/suse/suse/i386/update/9.2/rpm/i586/smartlink-softmodem-2.9.10-3.2.i586_en.info

"Description: The slamr module does not get loaded automatically, so
slmodemd
fails. This update gets the slamr module loaded on startup."

OK its late now and I have been rambling about this topic for a while now.

later

Nick

> The PCI ID 1039:7013 is incorrectly identified by many versions of lspci
> as "Intel 537". With SubVendorID=1025, SubDeviceID=0028 it's an AC97.
> 
> At a guess, the acpi handling in the kernel changed, causing some
> losemodem drivers to fail on some hardware. The problem is likely not
> restricted to this particular hardware, and possibly not restricted to
> the slamr/slmodemd driver set. It might not be restricted to SuSE
> either.
> 
> Thanks Nick for helping out with some details - they helped pin the
> problem down.
> 
> Volker
> 
-- 
Nick Rout <[EMAIL PROTECTED]>

Reply via email to