Ok, it died twice again, worked 3 times back at home, and died 4 more when out and about. I give up on this mess.. If I need wireless, elsewhere, I’ll make another config file. NetworkManager is too flaky; the system constantly reloads the ipw3945 driver before wpa_supplicant has had a chance to associate… and the prior version of ipw3945 is unloaded (due in part to the user-level daemon which is required.. thank you Intel..)
So, here’s my (hopefully final) workaround:
/etc/network/interfaces:
auto eth1
iface eth1 inet dhcp
pre-up /etc/init.d/wifi_wpa.sh start
pre-down /etc/init.d/wifi_wpa.sh stop
/etc/init.d/wifi_wpa.sh:
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin
BIN=/sbin/wpa_supplicant
PIDFILE=/var/run/wpa_supplicant.pid
. /lib/lsb/init-functions
case “$1” in
start)
if [ -x /sbin/wpa_supplicant ]; then
$BIN -ieth1 -c /etc/wpa_supplicant.conf -Dwext -w -P $PIDFILE 2>&1 &
fi
;;
stop)
killall wpa_supplicant
;;
*)
;;
esac
exit 0
/etc/wpa_supplicant.conf:
network={
ssid="MYSSID"
scan_ssid=1
psk="MYPSK"
}
/etc/acpi/suspend.d/95-iface-down.sh:
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
/sbin/ifdown eth1
/etc/acpi/resume.d/95-iface-up.sh:
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
#Just to be sure
/sbin/ifdown eth1
sleep 2
/sbin/ifup eth1
Yes, it takes an extra 4 seconds to startup, but damn it, it works without fail. Anyone who’s been dealing with this mess at all, I strongly suggest ‘apt-get —purge remove network-manager’ ;)