if you reboot the machine, often times the ipw3945 daemon leaves behind its pid in /var/run/ ... then when you try to load the module next time at boot, it'll fail to load properly because the stupid daemon merely checks the existence of the pid file and if it is left laying around, it'll abort loading -> no working wifi $ qlist -I -v ipw net-wireless/ipw3945-1.0.5 net-wireless/ipw3945-ucode-1.13 net-wireless/ipw3945d-1.7.18 Portage 2.1-r1 (default-linux/x86/2006.0, gcc-3.4.6, glibc-2.3.6-r4, 2.6.17.4 i686) ================================================================= System uname: 2.6.17.4 i686 Genuine Intel(R) CPU T2300 @ 1.66GHz Gentoo Base System version 1.6.15 ccache version 2.3 [enabled] app-admin/eselect-compiler: [Not Present] dev-lang/python: 2.4.3-r1 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.3 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1, 2.16.1-r3 sys-devel/gcc-config: 1.3.13-r3 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium-m -pipe -Wimplicit-function-declaration" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -march=pentium-m -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache distlocks metadata-transfer sandbox sfperms splitdebug strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LDFLAGS="-Wl,-O1 -Wl,-z,relro" MAKEOPTS="-j6" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://gentoo/gentoo-portage" USE="x86 X a52 aac aalib acl alsa apache2 apm arts asf audiofile avi berkdb bitmap-fonts bzip2 cairo cdparanoia cdr cli crypt css cups curl cvs directfb dlloader doc dri dts dv dvb dvd dvdr eds emboss encode exif fbcon ffmpeg flac fontconfig foomaticdb fortran fpx gcj gd gdbm gif glitz glut gmp gphoto2 gpm gs gstreamer gtk gtk2 idea ieee1394 imagemagick imlib ipv6 isdnlog javascript jbig joystick jpeg jpeg2k kde lcms libcaca libg++ libwww lzo mad mikmod ming mjpeg mmx mmxext mng modplug motif mp3 mp4 mpeg multislot mysql ncurses nls nptl nsplugin nvidia ogg openal openexr opengl pcre pdf pdflib perl php png pppd python qt qt3 qt4 quicktime readline real reflection samba sdl session skey slp sndfile snmp speex spell spl sse sse2 ssl subversion svg sysfs tcltk tcpd tga theora tiff truetype truetype-fonts type1-fonts udev unicode usb v4l v4l2 vcd vdr vidix vorbis wifi win32codecs wma wmf x264 xanim xcomposite xfs xine xinerama xinetd xml xmms xorg xpm xprint xrandr xscreensaver xv xvid xvmc zip zlib elibc_glibc input_devices_keyboard input_devices_mouse input_devices_evdev kernel_linux userland_GNU video_cards_nvidia video_cards_nv video_cards_vga video_cards_sisusb" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
vapier, could you please verify if the new version (1.7.22) is also having this issue ?! kthnx.
sorry, but that version is braindead as well root@vapier-m 0 ~ # qlist -I -v ipw3945d net-wireless/ipw3945d-1.7.22 root@vapier-m 0 ~ # rm -f /var/run/ipw3945d.pid root@vapier-m 0 ~ # modprobe ipw3945 root@vapier-m 0 ~ # killall ipw3945d root@vapier-m 0 ~ # rmmod ipw3945 root@vapier-m 0 ~ # modprobe ipw3945 2006-07-19 14:28:21: ERROR: ipw3945d already running. If ipw3945d is not running then you need to remove '/var/run/ipw3945d.pid' and try again. FATAL: Error running install command for ipw3945
try modprobe -r ipw3945 instead of rmmod... reason being rmmod doesn't use modprobe.conf / modprobe.d (and therefore doesn't pay attention to the "remove [...]" line) and so it never kills the previous daemon... I believe the ipw3945 manual says something about this...
my example was just a way to reproduce the bug, there are many other valid ways to get to that state for example, to simulate a hard lockup, try: rm -f /var/run/ipw3945d.pid modprobe ipw3945 reboot -nf
The problem here, I think, is that ipw3945d gets started (or is supposed to get started at least, see the other bugs concerning this :)) when the module is loaded. Because of this, it gets loaded before /var/run is cleaned at boot. Considering the fact that ipw3945d never gets formally stopped at shutdown (this only happens if the module is unloaded), it will leave behind its pid, which won't be removed in time for it to start again.
https://forums.gentoo.org/viewtopic-p-3351901.html#3351901 A somewhat useful solution
no, that is merely a workaround the real fix is to make the daemon itself not suck
OK, I just reported it UPSTREAM. See http://bughost.org/bugzilla/show_bug.cgi?id=1119