$ uname -a Linux *** 2.6.27-9-generic #1 SMP Thu Nov 20 22:15:32 UTC 2008 x86_64 GNU/Linux $ cat /etc/modprobe.d/iwl3945 alias wlan0 iwl3945 options iwl3945 disable_hw_scan=1 $ dmesg | grep 3945 [ 14.136805] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driv er for Linux, 1.2.26ks [ 14.136808] iwl3945: Copyright(c) 2003-2008 Intel Corporation [ 14.146633] iwl3945 0000:10:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [ 14.146648] iwl3945 0000:10:00.0: setting latency timer to 64 [ 14.146671] iwl3945: Detected Intel Wireless WiFi Link 3945ABG [ 14.207715] iwl3945: Tunable channels: 13 802.11bg, 23 802.11a channels [ 14.222687] phy0: Selected rate control algorithm 'iwl-3945-rs' [ 14.492278] iwl3945 0000:10:00.0: PCI INT A disabled I press the wifi-on button [ 45.258467] iwl3945 0000:10:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [ 45.258656] iwl3945 0000:10:00.0: restoring config space at offset 0x1 (was 0x100002, writing 0x100006) [ 45.261581] firmware: requesting iwlwifi-3945-1.ucode [ 45.344660] iwl3945: Radio disabled by HW RF Kill switch [ 45.345742] iwl3945 0000:10:00.0: PCI INT A disabled [ 45.376532] iwl3945 0000:10:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [ 45.376721] iwl3945 0000:10:00.0: restoring config space at offset 0x1 (was 0x100002, writing 0x100006) [ 45.379648] iwl3945: Radio disabled by HW RF Kill switch [ 45.380582] iwl3945 0000:10:00.0: PCI INT A disabled The wifi card still appears as disabled in the network manager. $ sudo rmmod iwl3945 [ 146.687736] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.26ks [ 146.687748] iwl3945: Copyright(c) 2003-2008 Intel Corporation [ 146.688584] iwl3945 0000:10:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [ 146.688613] iwl3945 0000:10:00.0: setting latency timer to 64 [ 146.688642] iwl3945: Detected Intel Wireless WiFi Link 3945ABG [ 146.734020] iwl3945: Tunable channels: 13 802.11bg, 23 802.11a channels [ 146.739427] phy1: Selected rate control algorithm 'iwl-3945-rs' [ 150.765591] iwl3945 0000:10:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [ 150.767636] firmware: requesting iwlwifi-3945-1.ucode Is't up! But the module shouldn't be gone? $ lsmod |grep 3945 iwl3945 112116 0 rfkill 19364 2 iwl3945 mac80211 253440 1 iwl3945 led_class 13192 1 iwl3945 cfg80211 37136 2 iwl3945,mac80211 Suspend the PC, wait a few seconds, resume. [ 496.126539] Modules linked in: iwl3945 ipv6 af_packet binfmt_misc rfcomm sco bnep l2cap bluetooth vboxnetflt vboxdrv ipt_MASQUERADE iptable_nat nf_nat nf_conntrack_ipv4 xt_state nf_conntrack ipt_REJECT xt_tcpudp bridge stp kvm_intel kvm ppdev acpi_cpufreq cpufreq_stats cpufreq_userspace cpufreq_conservative cpufreq_ondemand freq_table cpufreq_powersave sbs sbshc pci_slot iptable_filter ip_tables x_tables sbp2 lp joydev pcmcia snd_hda_intel snd_pcm_oss snd_mixer_oss arc4 snd_pcm ecb crypto_blkcipher snd_seq_dummy snd_seq_oss snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq rfkill mac80211 snd_timer snd_seq_device led_class snd serio_raw parport_pc fglrx(P) dm_multipath scsi_dh psmouse evdev pcspkr parport cfg80211 sdhci_pci tpm_infineon tpm tpm_bios video output container soundcore sdhci tifm_7xx1 yenta_socket rsrc_nonstatic mmc_core tifm_core pcmcia_core iTCO_wdt iTCO_vendor_support wmi snd_page_alloc battery ac intel_agp shpchp button pci_hotplug ext3 jbd mbcache sr_mod cdrom ata_generic sd_mod crc_t10dif sg ata_piix pata_acpi ahci ohci1394 libata scsi_mod dock uhci_hcd ieee1394 ehci_hcd tg3 libphy usbcore dm_mirror dm_log dm_snapshot dm_mod thermal processor fan fbcon tileblit font bitblit softcursor fuse [last unloaded: iwl3945] [ 499.101177] iwl3945 0000:10:00.0: enabling device (0000 -> 0002) [ 499.101193] iwl3945 0000:10:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [ 499.101263] iwl3945 0000:10:00.0: restoring config space at offset 0xf (was 0x100, writing 0x10b) [ 499.101331] iwl3945 0000:10:00.0: restoring config space at offset 0x4 (was 0x0, writing 0xf4000000) [ 499.101345] iwl3945 0000:10:00.0: restoring config space at offset 0x3 (was 0x0, writing 0x10) [ 499.101364] iwl3945 0000:10:00.0: restoring config space at offset 0x1 (was 0x100002, writing 0x100006) The wifi card is still on. I press the switch to turn it off. [ 633.451897] iwl3945: Radio Frequency Kill Switch is On: [ 637.898883] iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC [ 637.901033] iwl3945: MAC is in deep sleep! [ 637.948616] iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC [ 637.952571] iwl3945: MAC is in deep sleep! [ 638.008228] iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC [ 638.012218] iwl3945: MAC is in deep sleep! [ 638.171443] iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC It went off. I press the switch to turn it on. It doesn't work. $ sudo rmmod iwl3945 [ 717.569052] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.26ks [ 717.569064] iwl3945: Copyright(c) 2003-2008 Intel Corporation [ 717.569168] iwl3945 0000:10:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [ 717.569187] iwl3945 0000:10:00.0: setting latency timer to 64 [ 717.569215] iwl3945: Detected Intel Wireless WiFi Link 3945ABG [ 717.612764] iwl3945: Tunable channels: 13 802.11bg, 23 802.11a channels [ 717.617908] phy2: Selected rate control algorithm 'iwl-3945-rs' [ 721.644576] iwl3945 0000:10:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17 [ 721.645055] firmware: requesting iwlwifi-3945-1.ucode It goes back on.