Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 101598 - ipw2200 gets loaded into kernel even if its blacklisted when system bootup on battery on a thinkpad t42
Summary: ipw2200 gets loaded into kernel even if its blacklisted when system bootup on...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Greg Kroah-Hartman (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-08-06 18:18 UTC by Paul Berens
Modified: 2005-08-16 14:10 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Berens 2005-08-06 18:18:11 UTC
When the system is bootup and it is on AC power the ipw2200 is not loaded untill
the services "/etc/init.d/net.eth1" gets started then its loaded up.  and it
also remains unload untill wanted when the AC power plug is pulled.

However if the system is bootup on the battery, it is loaded automatically
regardless if it is in the blacklist or not.  The only way i have found to
combat this is to put it on the blacklist and also remove it from the
/etc/modules.autoload/kernel-2.6 and modprobe it myself when its wanted. 
However this renders "/etc/init.d/net.eth1" non-functional untill it is
modprobed which is not desired.

What is wanted is to able to just execute "/etc/init.d/net.eth1" and it will
automatically load it up, and when its stopped, it will unload it automatically.
 Whithout any of this "automatically loading and starting" stuff when booting up
to battery.

The /etc/init.d/net.eth1 is not in any runlevel, and the /etc/conf.d/rc the
varriable RC_NET_STRICT_CHECKING="lo" so that any net services depending on net
being up will work with the loopback device being up.

Then some additional information is that the ipw2200 module is loaded into the
kernel but its not activated thus i believe its not using the hardware untill
the connection is up?

Reproducible: Always
Steps to Reproduce:
1. Blacklist the ipw2200 module
2. Change the RC_NET_STRICT_CHECKING="lo" in /etc/conf.d/rc
3. Remove all /etc/init.d/net.eth1 from all runlevel (or the correct eth? for
the wirless card)
4. Bootup on battery power.

Actual Results:  
the ipw2200 modules is automatically loaded into the kernel and the
/etc/init.d/net.eth1 is also automatically started up, but no output is printed
to the screen to indicate that /etc/init.d/net.eth1 has been started up.

Expected Results:  
the ipw2200 module should remain unloaded untill the /etc/init.d/net.eth1
service is explictly started by the user.


The system is a thinkpad t42 from ibm.

Portage 2.0.51.22-r2 (default-linux/x86/2005.0, gcc-3.4.3-20050110,
glibc-2.3.5-r0, 2.6.12-gentoo-r4 i686)
=================================================================
System uname: 2.6.12-gentoo-r4 i686 Intel(R) Pentium(R) M processor 1.70GHz
Gentoo Base System version 1.6.13
ccache version 2.3 [enabled]
dev-lang/python:     2.3.5
sys-apps/sandbox:    1.2.10
sys-devel/autoconf:  2.13, 2.59-r6
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils:  2.15.92.0.2-r10
sys-devel/libtool:   1.5.18-r1
virtual/os-headers:  2.6.11-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium-m -mtune=pentium-m -fomit-frame-pointer -pipe
-momit-leaf-frame-pointer -fno-ident"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config
/usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=pentium-m -mtune=pentium-m -fomit-frame-pointer -pipe
-momit-leaf-frame-pointer -fno-ident -fvisibility-inlines-hidden"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks sandbox sfperms strict"
GENTOO_MIRRORS="http://gentoo.osuosl.org/
http://gd.tuwien.ac.at/opsys/linux/gentoo/ http://gentoo.math.bme.hu
ftp://mirrors1.netvisao.pt/gentoo/"
LC_ALL="en_GB.UTF-8"
LDFLAGS="-Wl,-O1"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://10.10.10.1/gentoo-portage"
USE="x86 crypt mmx nls ntpl pam sse ssl tcpd unicode userland_GNU kernel_linux
elibc_glibc"
Unset:  ASFLAGS, CTARGET, LANG, LINGUAS
Comment 1 Joshua Jackson (RETIRED) gentoo-dev 2005-08-07 00:38:11 UTC
Well, i have the same sorta problem, so I'll toss in further comments.

As with the above poster, net.eth1 is not in any runlevel as shown here:
   net.eth1 |                               
     net.lo | boot  

However, It seems that even if i'm plugged in randomly the net.eth1 script will
state that its started. Prompting a restart when I want it to come up.

Looking at /var/log/messages, I don't notice anything offhand that could be
causing this. I will check though the next time this shows up to see if there is
anything there. 
Comment 2 Henrik Brix Andersen 2005-08-08 03:06:51 UTC
What do you mean by "blacklisting" a module?

I can't make much of this bug report, but I can't see how this is a mobile
computing problem - perhaps Uberlord knows what this is all about?
Comment 3 Paul Berens 2005-08-08 16:34:57 UTC
(In reply to comment #2)
> What do you mean by "blacklisting" a module?
> 
> I can't make much of this bug report, but I can't see how this is a mobile
> computing problem - perhaps Uberlord knows what this is all about?

It appears that its a feature or bug, not sure currently, but suspecting a
feature, but I would like the option to turn it off so when its blacklisted, it
dosen't get loaded untill /etc/init.d/net.eth1 gets started, as it is right now
its automatically loaded and /etc/init.d/net.eth1 is automatically started when
the system is bootup off battery power.  Which is undesirable imho.

And by blacklisting, i mean i add it to the /etc/hotplug/blacklist file, To
quote the comment in the file heading.

# Listing a module here prevents the hotplug scripts from loading it.
# Usually that'd be so that some other driver will bind it instead,
# no matter which driver happens to get probed first.  Sometimes user
# mode tools can also control driver binding.

And on AC power it works, the module is loaded into the kernel, but its not
turned on and any scripts attached to it is not ran.  Now if the battery power
acted the same i wouldn't have filed a bug report, but however when the system
is boot up off battery power as oposited to AC power, this module is
automatically turned on and the /etc/init.d/net.eth1 is automatically ran, and
there's no output to the screen to indicate that this script was ran.
Comment 4 Henrik Brix Andersen 2005-08-09 02:03:11 UTC
Please attach your /etc/modules.conf file to this bug report.
Comment 5 Joshua Jackson (RETIRED) gentoo-dev 2005-08-09 02:19:35 UTC
### This file is automatically generated by modules-update
alias char-major-10-175 agpgart
alias char-major-10-200 tun
alias char-major-81     bttv
alias char-major-108    ppp_generic
alias /dev/ppp          ppp_generic
alias tty-ldisc-3       ppp_async
alias tty-ldisc-14      ppp_synctty
alias ppp-compress-21   bsd_comp
alias ppp-compress-24   ppp_deflate
alias ppp-compress-26   ppp_deflate

# Crypto modules (see http://www.kerneli.org/)
alias loop-xfer-gen-0   loop_gen
alias loop-xfer-3       loop_fish2
alias loop-xfer-gen-10  loop_gen
alias cipher-2          des
alias cipher-3          fish2
alias cipher-4          blowfish
alias cipher-6          idea
alias cipher-7          serp6f
alias cipher-8          mars6
alias cipher-11         rc62
alias cipher-15         dfc2
alias cipher-16         rijndael
alias cipher-17         rc5

# Support for i2c and lm_sensors
alias char-major-89    i2c-dev

# Old nvidia support ...
alias char-major-195 NVdriver
alias /dev/nvidiactl char-major-195

### modules-update: end processing /etc/modules.d/aliases

### modules-update: start processing /etc/modules.d/alsa
# Alsa 0.9.X kernel modules' configuration file.
# $Header:
/var/cvsroot/gentoo-x86/media-sound/alsa-utils/files/alsa-modules.conf-rc,v 1.4
2004/11/16 01:31:22 eradicator Exp $

# ALSA portion
alias char-major-116 snd
# OSS/Free portion
alias char-major-14 soundcore
# OSS/Free portion - card #1
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
##  OSS/Free portion - card #2
## alias sound-service-1-0 snd-mixer-oss
## alias sound-service-1-3 snd-pcm-oss
## alias sound-service-1-12 snd-pcm-oss

alias /dev/mixer snd-mixer-oss
alias /dev/dsp snd-pcm-oss
alias /dev/midi snd-seq-oss
### modules-update: start processing /etc/modules.d/i386
alias parport_lowlevel parport_pc
alias char-major-10-144 nvram
alias binfmt-0064 binfmt_aout
alias char-major-10-135 rtc
### modules-update: start processing /etc/modules.d/x86info
# $Header:
/var/cvsroot/gentoo-x86/sys-apps/x86info/files/x86info-modules.conf-rc,v 1.2
2004/07/18 04:41:21 dragonheart Exp $
#
# Aliases needed for x86info to probe data
# these are so the modules auto-load as needed
#
alias char-major-202    msr
alias char-major-203    cpuid
alias /dev/cpu/*/msr    msr
alias /dev/cpu/*/cpuid  cpuid

### modules-update: end processing /etc/modules.d/x86info

That will be mine, I however will not be able to give further infomation on this
bug with this particular laptop (dell 600M) as its going to a new owner.
Comment 6 Paul Berens 2005-08-09 02:44:07 UTC
Here is my modules.conf file and i've went ahead and reopned, because the
resolution showed that it "needed information"


### This file is automatically generated by modules-update
#
# Please do not edit this file directly. If you want to change or add
# anything please take a look at the files in /etc/modules.d and read
# the manpage for modules-update.
#
### modules-update: start processing /etc/modules.d/aliases
# Aliases to tell insmod/modprobe which modules to use 

# Uncomment the network protocols you don't want loaded:
# alias net-pf-1 off		# Unix
# alias net-pf-2 off		# IPv4
# alias net-pf-3 off		# Amateur Radio AX.25
# alias net-pf-4 off		# IPX
# alias net-pf-5 off		# DDP / appletalk
# alias net-pf-6 off		# Amateur Radio NET/ROM
# alias net-pf-9 off		# X.25
# alias net-pf-10 off		# IPv6
# alias net-pf-11 off		# ROSE / Amateur Radio X.25 PLP
# alias net-pf-19 off		# Acorn Econet

alias char-major-10-175	agpgart
alias char-major-10-200	tun
alias char-major-81	bttv
alias char-major-108	ppp_generic
alias /dev/ppp		ppp_generic
alias tty-ldisc-3	ppp_async
alias tty-ldisc-14	ppp_synctty
alias ppp-compress-21	bsd_comp
alias ppp-compress-24	ppp_deflate
alias ppp-compress-26	ppp_deflate

# Crypto modules (see http://www.kerneli.org/)
alias loop-xfer-gen-0	loop_gen
alias loop-xfer-3	loop_fish2
alias loop-xfer-gen-10	loop_gen
alias cipher-2		des
alias cipher-3		fish2
alias cipher-4		blowfish
alias cipher-6		idea
alias cipher-7		serp6f
alias cipher-8		mars6
alias cipher-11		rc62
alias cipher-15		dfc2
alias cipher-16		rijndael
alias cipher-17		rc5

# Support for i2c and lm_sensors
alias char-major-89    i2c-dev

# Old nvidia support ...
alias char-major-195 NVdriver 
alias /dev/nvidiactl char-major-195 

### modules-update: end processing /etc/modules.d/aliases

### modules-update: start processing /etc/modules.d/i386
alias parport_lowlevel parport_pc
alias char-major-10-144 nvram
alias binfmt-0064 binfmt_aout
alias char-major-10-135 rtc

### modules-update: end processing /etc/modules.d/i386

### modules-update: start processing /etc/modules.d/ibm_acpi
# modules.d configuration file for IBM_ACPI
# For more information please read:
#    README

options ibm_acpi experimental=1 hotkey=enable,0xffff

### modules-update: end processing /etc/modules.d/ibm_acpi

### modules-update: start processing /etc/modules.d/ieee80211
# modules.d configuration file for IEEE80211


# Configurable module parameters
# ------------------------------
# debug:	debug output mask


### modules-update: end processing /etc/modules.d/ieee80211

### modules-update: start processing /etc/modules.d/ieee80211_crypt
# modules.d configuration file for IEEE80211_CRYPT


### modules-update: end processing /etc/modules.d/ieee80211_crypt

### modules-update: start processing /etc/modules.d/ieee80211_crypt_ccmp
# modules.d configuration file for IEEE80211_CRYPT_CCMP


### modules-update: end processing /etc/modules.d/ieee80211_crypt_ccmp

### modules-update: start processing /etc/modules.d/ieee80211_crypt_tkip
# modules.d configuration file for IEEE80211_CRYPT_TKIP


### modules-update: end processing /etc/modules.d/ieee80211_crypt_tkip

### modules-update: start processing /etc/modules.d/ieee80211_crypt_wep
# modules.d configuration file for IEEE80211_CRYPT_WEP


### modules-update: end processing /etc/modules.d/ieee80211_crypt_wep

### modules-update: start processing /etc/modules.d/ipw2200
# modules.d configuration file for IPW2200
# For more information please read:
#    README.ipw2200


# Configurable module parameters
# ------------------------------
# disable:	manually disable the radio (default 0 [radio on])
# associate:	auto associate when scanning (default on)
# auto_create:	auto create adhoc network (default on)
# led:	enable led control on some systems (default 0 off)
# debug:	debug output mask
# channel:	channel to limit associate to (default 0 [ANY])
# mode:	network mode (0=BSS,1=IBSS)


### modules-update: end processing /etc/modules.d/ipw2200

### modules-update: start processing /etc/modules.d/x86info
# $Header:
/var/cvsroot/gentoo-x86/sys-apps/x86info/files/x86info-modules.conf-rc,v 1.2
2004/07/18 04:41:21 dragonheart Exp $
#
# Aliases needed for x86info to probe data
# these are so the modules auto-load as needed
#
alias char-major-202 	msr
alias char-major-203 	cpuid
alias /dev/cpu/*/msr 	msr
alias /dev/cpu/*/cpuid  cpuid

### modules-update: end processing /etc/modules.d/x86info
Comment 7 Henrik Brix Andersen 2005-08-10 07:55:58 UTC
Did you setup any custom ACPI event handler of some such? This problem makes
little or no sense to me, I'm afraid...
Comment 8 Joshua Jackson (RETIRED) gentoo-dev 2005-08-10 14:34:09 UTC
I can say that there was some modified acpi scripting but only for a laptop lid
switch.

I had it happen the last time I booted. No startup for net.eth1, nor was there a
shutdown from the previous run, without setting anything. As the laptop is no
longer mine, and doesn't in fact have gentoo installed any longer :( I can't
give you /var/log/messages. I know that ioeee80211 was coming up with a error,
did so when it was part of ipw2200 as well, so I doubt that'd have something to
do with it.
Comment 9 Paul Berens 2005-08-10 16:23:57 UTC
The only thing that my ACPI handler takes care of right now is switching to a
battery runlevel if the power source is battery, other wise stay with default
boot level.

But i have confirmed that both runlevel does not have the net.eth1 or net.eth0
in them.

At current the only difference between the AC power and Battery runlevel is that
the battery has a few settings/init.d scripts to adjust the screen's brightness,
and to turn on hard drive spin down and a few other factors, nothing to do with
network yet.  I want to get this issue resolved before i do any form of network
scripting.


And what part doesn't make any sense? I'll try to re-example it better.

Normal (AC power) bootup this is what happens:
- The kernel gets boot up, bah bah....
- bunch of init.d scripts for bootup gets executed
- A acpi script checks if it is AC power or BAttery power (in this case its ac
power)
- loads up the default runlevel and execute its script listings.
- login prompt.

Now once i've log into the system, if i do any form of ping, other than
localhost i get a error, meaning that the network is down, and also i don't have
anything hooked up to my gigabyte ethernet, and the wireless light is black (off).

So if i want to connect via wired, or wireless i will have to run the
/etc/init.d/net.eth? script to have them start up and connect.

This is what i want.


Now for the battery boot up. (its booting up off battery, not AC power)
- kernel boots up bah bah
- boot up init.d scripts are ran
- default runlevel scripts are ran
- local.start is ran and it runs a script that determite if its on battery or AC
power.
- Its determinted that its on Battery power, so the script switches runlevel to
battery runlevel
- a few default runlevel init.d scripts are shutdown
- a few battery runlevel init.d scripts are started.
- login prompt.

Now at this point in time, the wireless light is green (on) even though i didn't
see ANY output regarding /etc/init.d/net.eth1 starting up, there's nothing on
the screen or in dmesg to show that the wireless has started up or anything.

so i ping some exteral host and i get a reply back, meaning the wireless is
running. then when i execute /etc/init.d/net.eth1 i get a error saying that its
already running.

now this behavor is what i do not want to happen, i want the wireless light to
remain off, and the wireless scripts to remain unran, in other words, its
automatically starting itself even though its not anywhere in ANY runlevels, and
there is no output messages showing that its starting up, other than the
wireless light coming on.


I hope this has cleared it up?
Comment 10 Henrik Brix Andersen 2005-08-16 05:43:58 UTC
I still no clue about this bug report - other than it is not directly related to
the ipw2200 driver.

Reassigning to GregKH, the hotplug maintainer...
Comment 11 Greg Kroah-Hartman (RETIRED) gentoo-dev 2005-08-16 11:10:06 UTC
If you load a network device, and it creates a /sys/class/net/ entry, the
net.NAME script will be run, bringing the device up (or down if it is removed.)

That's the way the hotplug subsystem works.

So, don't load the module unless you want the network connection to be up.

If you really don't like this for some reason, you can delete some files,
to prevent it from happening, but I'm not going to support this at all.
Comment 12 Paul Berens 2005-08-16 13:54:51 UTC
Aha thanks! finally i have something to look into, because I was trying things
and couldn't figure things out.  But now i have a clearer idea of how hotplug
works i can do more research on this and try to get it to work the way i want it.

The reason why i opened up a bug report was to try to clartify how and why this
was happening, and this post below clartifyed it, so thanks! :-)


(In reply to comment #11)
> If you load a network device, and it creates a /sys/class/net/ entry, the
> net.NAME script will be run, bringing the device up (or down if it is removed.)
> 
> That's the way the hotplug subsystem works.
> 
> So, don't load the module unless you want the network connection to be up.
> 
> If you really don't like this for some reason, you can delete some files,
> to prevent it from happening, but I'm not going to support this at all.

Comment 13 Petteri Räty (RETIRED) gentoo-dev 2005-08-16 14:10:06 UTC
(In reply to comment #12)
> The reason why i opened up a bug report was to try to clartify how and why this
> was happening, and this post below clartifyed it, so thanks! :-)
> 

The forums and mailing lists can also prove as a valuable source of information.