Nur ein kompletter Neustart hilft.
Hast Du, statt Neustart, auch schon mit:
sudo service network-manager restart
versucht? BTW: Ich habe auch einen Laptop mit iwl3945. Bei mir hat das Kompilieren des wpa_suplicanten (den ich ohne NM nutze) und dessen konfigurieren geholfen. Z. B. meine wpa_supplicant.conf:
update_config=0 ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=netdev eapol_version=2 ap_scan=1 disable_scan_offload=1 fast_reauth=0 filter_ssids=1 bss_max_count=2 country=DE dot11RSNAConfigPMKLifetime=86400 dot11RSNAConfigPMKReauthThreshold=75 dot11RSNAConfigSATimeout=30 autoscan=periodic:120 okc=1 ignore_old_scan_res=1 scan_cur_freq=1 reassoc_same_bss_optim=1 passive_scan=1 # network={ disabled=0 ssid="yxyxyxyxyxxyxyxyxyx" scan_ssid=1 bssid=##:##:##:2b:52:e0 bssid_whitelist=##:##:##:2b:52:e0 bssid_blacklist=##:##:##:3a:eb:39 ##:##:##:a9:cb:ba mode=0 frequency=2437 scan_freq=2437 freq_list=2437 bgscan="simple:180:-45:300" proto=RSN auth_alg=OPEN key_mgmt=WPA-PSK pairwise=CCMP group=CCMP psk="xxxxxxxxxxxx" proactive_key_caching=1 }
In 17 Sekunden nach dem Start, ist mein Laptop per WLAN mit dem Router verbunden:
:~$ dmesg | grep -i associated [ 17.011169] wlan0: associated
Ein cronjob testet minütlich per arp-Protokoll ob wlan-Verbindung zum Router vorhanden ist, und wenn nicht dann wird der wpa_supplicant gestoppt und neu gestartet (... was aber sehr sehr selten vorkommt):
/bin/kill -15 $(pidof /sbin/wpa_supplicant) /sbin/wpa_supplicant -B -qq -iwlan0 -Dnl80211,wext -c/etc/wpa_supplicant/wpa_supplicant.conf