Kernel 2.6.11-rc3-bk7 problem

Andreas Millinger andreas.millinger at web.de
Sun Feb 13 10:15:17 EST 2005


Hello,

> > I have compiled a Kernel 2.6.11-rc3-bk7 under Suse Linux 9.2. I also
> > have a Kernel 2.6.10 running. When I shutdown the Laptop with no card
> > inserted, an Error occurse:
> >
> > FATAL: Module yenta_socket is in use
> >
> > With a 3com Bluetooth PCMCIA Card there is a freez at shutdown wih the
> > following error:
> >
> > Shuting down PCMCIA cardmgr [3595]: check cmd exited with status 1
> > cardmgr[3595]: exiting: `./serial stop ttyS16 2>&1`
> > cardmgr[3595]: +/dev/ttyS16:
> >
> > With 2.6.10 there isn't any problem.
>
> Do both problems also appear if you stop the PCMCIA subsystem from the
> command line, i.e. (as root) you do
>
> # /etc/init.d/pcmcia stop
>
It is just he same when I do this on the command line. (FATAL: Module 
yenta_socket is in use)
> > Have there been changes in the Kernel modules of 2.6.11-rc3-bk7, that
> > causes that problem? Or do I have to change the initscript?
>
> There have been many changes to the PCMCIA subsystem; I very much hope 
> that
> changes in the initscript aren't necessary. Could you send me the
> initscript used by SuSE 9.2  (assuming it is GPL), please, as well as the
> output of "lspci" of 2.6.11-rc3-bk7 under normal operation when a) the 
> card
> isn't inserted, and b) when the card is inserted.
lspci without the card:

0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8605 [ProSavage PM133]
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8605 [PM133 AGP]
0000:00:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. 
RTL-8139/8139C/8139C+ (rev 10)
0000:00:06.0 Communication controller: Ambient Technologies Inc HaM 
controllerless modem (rev02)
0000:00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super 
South] (rev 40)
0000:00:07.1 IDE interface: VIA Technologies, Inc. 
VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 
1.1 Controller (rev 1a)
0000:00:07.4 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super 
ACPI] (rev 40)
0000:00:07.5 Multimedia audio controller: VIA Technologies, Inc. 
VT82C686 AC97 Audio Controller (rev 50)
0000:00:0c.0 CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller 
(rev 01)
0000:00:0c.1 CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller 
(rev 01)
0000:00:0d.0 FireWire (IEEE 1394): Agere Systems (former Lucent 
Microelectronics) FW323 (rev 04)
0000:01:00.0 VGA compatible controller: S3 Inc. 86C380 [ProSavageDDR 
K4M266] (rev 02)

lspci with the card:

0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8605 [ProSavage PM133]
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8605 [PM133 AGP]
0000:00:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. 
RTL-8139/8139C/8139C+ (rev 10)
0000:00:06.0 Communication controller: Ambient Technologies Inc HaM 
controllerless modem (rev02)
0000:00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super 
South] (rev 40)
0000:00:07.1 IDE interface: VIA Technologies, Inc. 
VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 
1.1 Controller (rev 1a)
0000:00:07.4 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super 
ACPI] (rev 40)
0000:00:07.5 Multimedia audio controller: VIA Technologies, Inc. 
VT82C686 AC97 Audio Controller (rev 50)
0000:00:0c.0 CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller 
(rev 01)
0000:00:0c.1 CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller 
(rev 01)
0000:00:0d.0 FireWire (IEEE 1394): Agere Systems (former Lucent 
Microelectronics) FW323 (rev 04)
0000:01:00.0 VGA compatible controller: S3 Inc. 86C380 [ProSavageDDR 
K4M266] (rev 02)

The initscript is attached.

Best regards

Andreas
-------------- next part --------------
#! /bin/bash
# Copyright (c) 1996-2004 SuSE Linux AG, Germany.  All rights reserved.
#
# Author: Hubert Mantel <mantel at suse.de>, 1996
#         Christian Zoz <zoz at suse.de>, 2000
#         Joachim Gleissner <jg at suse.de>, 2004
#
# /etc/init.d/pcmcia
#
### BEGIN INIT INFO
# Provides:       pcmcia
# Required-Start: $local_fs
# X-UnitedLinux-Should-Start: coldplug
# Required-Stop:
# X-UnitedLinux-Should-Stop:
# Default-Start:  2 3 5
# Default-Stop:
# Description:    Loads pcmcia base modules and starts cardmgr
### END INIT INFO

cleanup()
{
    while read SN CLASS MOD INST DEV EXTRA ; do
        if [ "$SN" != "Socket" ] ; then
            /etc/pcmcia/$CLASS stop $DEV &>/dev/null
        fi
    done
    rm /var/lib/pcmcia/detab 2>/dev/null
}

. /etc/rc.status
rc_reset

# If booting with pcmcia locks the system, 
# set NOPCMCIA at the Boot-Prompt
if [ -n "$NOPCMCIA" ] ; then
  echo -n "PCMCIA: Will not be loaded due to NOPCMCIA=$NOPCMCIA" 
  rc_failed 5
  rc_status -v
  rc_exit
fi

. /etc/sysconfig/pcmcia

PIDFILE=/var/run/cardmgr.pid
STAB=/var/lib/pcmcia/stab
SC=/var/lib/pcmcia/scheme

# external PCMCIA is a relict from kernel 2.4
if [ "$2" = "external" ]; then
	echo -n "ERROR: external PCMCIA not supported anymore"
	rc_failed
	rc_status -v
	rc_exit
fi

# using yenta_socket in case no driver is given, will work in most cases
test -z "$PCMCIA_PCIC" && PCMCIA_PCIC=yenta_socket


case "$1" in
    start)
        echo -n "Starting PCMCIA "
        if checkproc /sbin/cardmgr; then
                echo -n "(cardmgr was already running)"
                rc_status -v
                exit
        fi
        if [ -f "$STAB" ] ; then
            echo "(... cleaning up left-over devices ...)"
	    echo -n "                       "
            cat $STAB | cleanup
        fi
        # Setting up schemes
        if [ -L $SC -o ! -O $SC ] ; then rm -f $SC ; fi
        if [ ! -f $SC ] ; then umask 022 ; touch $SC ; fi
        if [ "$SCHEME" ] ; then umask 022 ; echo $SCHEME > $SC ; fi
        if [ -s "$SC" ] ; then 
            echo -n "(using scheme: "
            echo -n "`cat $SC`)" 
        fi
	# Loading kernel modules (may be loaded already by hotplug, so we do
	# not moan if modprobe fails
	/sbin/modprobe pcmcia_core >/dev/null 2>&1 
	/sbin/modprobe $PCMCIA_PCIC >/dev/null 2>&1
	/sbin/modprobe ds >/dev/null 2>&1
	test "$PCMCIA_BEEP" = "no" && CARGS="$CARGS -q"
	# I don't like that usleep here, but due to runtime-problems it is 
	# mandatory to avoid crashing pcmcia -sb
	usleep 300000
	startproc -q /sbin/cardmgr $CARGS
	rc_check
#  removed, because we had lock-ups in this lines :(  -sb
#	if ! rc_status; then
#		/sbin/modprobe -r ds
#		/sbin/modprobe -r $PCMCIA_PCIC
#		/sbin/modprobe -r pcmcia_core
#	fi
        rc_status -v
        ;;
    stop)
        echo -n "Shutting down PCMCIA "
        if checkproc /sbin/cardmgr && ! /sbin/cardctl eject 2>/dev/null; then
          echo -n "... card(s) still in use "
          rc_failed
        else
          test -x /usr/X11R6/bin/cardinfo \
            && killproc /usr/X11R6/bin/cardinfo 2>/dev/null
          sleep 1
          killproc /sbin/cardmgr
          if rc_check || test $? -eq 7; then 
            rc_reset
            for a in ds i82365 yenta_socket tcic pcmcia_core; do
              if lsmod | grep -q -s "^$a"; then
                /sbin/modprobe -r $a
                rc_check
              fi
            done
          fi
        fi
        rc_status -v
        ;;
    try-restart)
        $0 status && $0 restart
        rc_check
        ;;
    restart)
        $0 stop 
        $0 start $2
        rc_check
        ;;
    reload|force-reload)
        echo -n "Reload PCMCIA "
        killproc -SIGHUP /sbin/cardmgr
        if rc_check; then
          sleep 1
          grep -s cardmgr /var/log/messages | \
              tail -n 1 | \
              grep -s -q "config error"
          if [ "$?" = "0" ] ; then
              echo -n "(config error: see /var/log/messages)"
              rc_failed
          fi
        fi
        rc_status -v
        ;;
    status)
        echo -n "Checking for PCMCIA "
        for a in i82365 yenta_socket tcic; do
          b=`lsmod | grep "^$a" | cut -d" " -f1`
	  test -n "$b" && echo -n "(using $b)"
        done
        checkproc /sbin/cardmgr
        rc_status -v
        ;;
    probe)
        ## Optional: Probe for the necessity of a reload,
        ## give out the argument which is required for a reload.

        test /etc/pcmcia/config -nt $PIDFILE && echo reload
        ;;
    *)
        echo "Usage: $0 {start|stop|status|[try-]restart|[force-]reload|probe}"
        exit 1
esac

rc_exit



More information about the linux-pcmcia mailing list