sndconfig 'stealing' modem IRQ(?)

sndconfig 'stealing' modem IRQ(?)

Post by Michael Stro » Fri, 15 Aug 2003 06:03:15



Hi,

I'm trying to fix a soundcard (ESS 1868) and modem (vanilla
internal-hardware type) conflict.

Under Red Hat 7.x, if I used the modem-setup/PPP-connect script (see
end of message) first of all, setserial assigned /dev/ttyS2 (modem's
serial port) IRQ 5; using the soundcard after this resulted in it that
being assigned IRQ 10 and the whole setup working fine.

Unfortunately, if the soundcard was used first, it claimed IRQ 5
instead, and the modem didn't work.

The same thing seems to be happening under Red Hat 8.0, except that
sndcondig in the rc.sysinit seems to be forcing the soundcard's
IRQ-grab at boot-time.

How can I override this behavior?

The relevant part of /etc/rc.d/rc.sysinit (I hope) is

setserial /dev/ttyS2 irq 5
        cat /root/MODEM_FIX > /dev/ttyS2
        cat /proc/interrupts
        echo '******* PRESS ENTER ******'
        read foobar
# tweak isapnp settings if needed.
if [ -n "$PNP" -a  -f /proc/isapnp -a -x /sbin/sndconfig ]; then
    /sbin/sndconfig --mungepnp >/dev/null 2>&1
fi

Lines 2 to 5 are intended to force the serial-port/modem to grab IRQ 5
first (i.e. my attempt at a kludgey solution) but this doesn't work.

Any help appreciated, thanks!

- Michael

= = = = = = = = = = = = = = = = =
MODEM CONNECT SCRIPT....

#!/bin/sh
#
# Script to initiate a ppp connection. This is the first part of the
# pair of scripts. This is not a secure pair of scripts as the codes
# are visible with the 'ps' command.  However, it is simple.
#
# These are the parameters. Change as needed.
TELEPHONE=111111111111
ACCOUNT=dracula
PASSWORD=itsasecret
LOCAL_IP=0.0.0.0        # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=0.0.0.0       # Remote IP address if desired. Normally
0.0.0.0
NETMASK=255.255.255.0   # The proper netmask if needed

setserial /dev/ttyS2 irq 5
#
# Export them so that they will be available at 'ppp-on-dialer' time.
export TELEPHONE ACCOUNT PASSWORD
#
# This is the location of the script which dials the phone and logs
# in.  Please use the absolute file name as the $PATH variable is not
# used on the connect option.  (To do so on a 'root' account would be
# a security hole so don't ask.)
#
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#
# Initiate the connection
#
# I put most of the common options on this command. Please, don't
# forget the 'lock' option or some programs such as mgetty will not
# work. The asyncmap and escape will permit the PPP link to work with
# a telnet or rlogin connection. You are welcome to make any changes
# as desired. Don't use the 'defaultroute' option if you currently
# have a default route to an ethernet gateway.
#
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS2 115200 \
        asyncmap 20A0000 escape FF kdebug 0 \
        noipdefault netmask $NETMASK defaultroute connect
$DIALER_SCRIPT &