Description of problem: I usually have my Intel 3945 wireless card off when I don't use it. When I enable it via on/off button I don't see it show up in my devices list. Version-Release number of selected component (if applicable): kernel 2.6.21-1.3142.fc7 fedora 7 test 4 with latest updates How reproducible: Every time Steps to Reproduce: 1. Boot the laptop with wireless card disabled 2. Enable the card 3. ... Actual results: Wireless card stays disabled even after turning it on via it's on/off button. Expected results: I would like to see my card initialized and ready to connect when I press "wireless on/off" button. Additional info: after enabling the card via the hardware button: # iwconfig lo no wireless extensions. eth0 no wireless extensions. I looked at module list and the module is loaded! # lsmod |grep iwl iwl3945 140797 0 mac80211 139133 1 iwl3945 When I remove and reload the module I get my wireless card regisered! [root@fedora74 ~]# rmmod iwl3945 [root@fedora74 ~]# [root@fedora74 ~]# lsmod |grep iwl [root@fedora74 ~]# modprobe iwl3945 [root@fedora74 ~]# iwconfig lo no wireless extensions. eth0 no wireless extensions. wmaster0 no wireless extensions. Warning: Driver for device wlan0 has been compiled with version 22 of Wireless Extension, while this program supports up to version 20. Some things may be broken... wlan0 IEEE 802.11a ESSID:"" Mode:Managed Frequency:5.17 GHz Access Point: Not-Associated Retry min limit:7 RTS thr:off Fragment thr=2346 B Encryption key:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 Please fix this nasty bug!
hmm, now I see the card even when it is disabled: # iwconfig wlan0 Warning: Driver for device wlan0 has been compiled with version 22 of Wireless Extension, while this program supports up to version 20. Some things may be broken... wlan0 IEEE 802.11a ESSID:"" Mode:Managed Frequency:5.17 GHz Access Point: Not-Associated Retry min limit:7 RTS thr:off Fragment thr=2346 B Encryption key:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 dmesg sees that it is disabled: # dmesg iwl3945: Radio Frequency Kill Switch is On: Kill switch must be turned off for wireless networking to work. usb 1-1: USB disconnect, address 4 iwl3945: Error sending TX_PWR_TABLE_CMD: time out after 500ms. and when I enable it: # dmesg usb 1-1: new full speed USB device using uhci_hcd and address 5 usb 1-1: configuration #1 chosen from 1 choice
I think the usb device in this case may be the bluetooh device, connected via internal USB. I don't think the kernel gets a nice USB event to load/unload modules with. Kill switches are funny things...
How can I help troubleshoot this kill switch in order to make it work?
Looks like iwl3945 is not polling SW-based RF kill switch. Please try this: echo 0 > /sys/class/net/wlan0/device/rf_kill Does that bring it back to life?
thete is no wlan0 device. look: # ls -al /sys/class/net/ total 0 drwxr-xr-x 4 root root 0 2007-05-16 08:36 . drwxr-xr-x 30 root root 0 2007-05-16 08:37 .. drwxr-xr-x 4 root root 0 2007-05-16 08:37 eth0 drwxr-xr-x 4 root root 0 2007-05-16 08:37 lo and when I remove and reload the module: # ls -al /sys/class/net/ total 0 drwxr-xr-x 6 root root 0 2007-05-16 09:00 . drwxr-xr-x 30 root root 0 2007-05-16 08:37 .. drwxr-xr-x 4 root root 0 2007-05-16 08:37 eth0 drwxr-xr-x 4 root root 0 2007-05-16 08:37 lo drwxr-xr-x 5 root root 0 2007-05-16 09:00 wlan0 drwxr-xr-x 3 root root 0 2007-05-16 09:00 wmaster0 and now it wlan0 is present and working, but only after module reload.
Wait. I'll restart my laptop with the kill switch off and see if even then when laptop boots wireless is disabled. Be back in a minute.
With wireless enabled (kill switch off) when laptop boots I have working wireless: So only if I start with wireless disables (kill switch on) I cant turn on my wireless unless I remove and reload iwl3945 module. here is my wireless working after a reboot: # iwconfig lo no wireless extensions. eth0 no wireless extensions. wmaster0 no wireless extensions. Warning: Driver for device wlan0 has been compiled with version 22 of Wireless Extension, while this program supports up to version 20. Some things may be broken... wlan0 IEEE 802.11a ESSID:"" Mode:Managed Channel:0 Access Point: Not-Associated Retry min limit:7 RTS thr:off Fragment thr=2346 B Encryption key:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
ping - do you need more feedback from me?
This will probably require an upstream fix...
Can you explain a bit what does "upstream fix" means? I can only tell you that this error occurs only on Fedora 7. I have Fedora Core 6, Ubuntu Feisty and OpenSuse and kill switch works as expected on all distros but Fedora 7.
Ok, I'm a big liar :) I retested Fedora Core 6, Ubuntu Feisty and OpenSuse 10.2 and they all have the same issue. iwconfig shows no wireless device even if ipw3945 module is loaded! Can I help somehow so that this gets fixed upstream?
I installed new kernel today - 2.6.21-1.3189.fc7 and now the situation is worse! # rmmod iwl3945 # rmmod iwl3945 ERROR: Module iwl3945 does not exist in /proc/modules # modprobe iwl3945 # iwconfig lo no wireless extensions. eth0 no wireless extensions. virbr0 no wireless extensions.
ok this is strange! I do it again, and now wlan device exists! [root@fedora74 ~]# rmmod iwl3945 [root@fedora74 ~]# rmmod iwl3945 ERROR: Module iwl3945 does not exist in /proc/modules [root@fedora74 ~]# [root@fedora74 ~]# [root@fedora74 ~]# iwconfig lo no wireless extensions. eth0 no wireless extensions. virbr0 no wireless extensions. [root@fedora74 ~]# [root@fedora74 ~]# [root@fedora74 ~]# modprobe iwl3945 [root@fedora74 ~]# [root@fedora74 ~]# [root@fedora74 ~]# iwconfig lo no wireless extensions. eth0 no wireless extensions. virbr0 no wireless extensions. wmaster0 no wireless extensions. wlan0 IEEE 802.11a ESSID:"" Mode:Managed Channel:0 Access Point: Not-Associated Retry min limit:7 RTS thr:off Fragment thr=2346 B Encryption key:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
I just installed Fedora 7 on a FSC Amilo Si1520 Notebook. uname -a: Linux workstation6l.ac 2.6.21-1.3194.fc7 #1 SMP Wed May 23 22:35:01 EDT 2007 i686 i686 i386 GNU/Linux It seems to have a similar configuration of WLAN and BT as described above. I can configure wlan0 and connect to an AP at boot time. I can also configure and use Network Manager to connect to any AP in sight. There are two peculiarities though: 1. As above when starting with WLAN disabled, it won't work when enabled ( I need to reboot ). Same with disabling and reenabling it. 2. The WLAN activity LED stays dark all the time. There is a "main" wireless switch above the keypad as well as "virtual" switches, i.e. key combinations to switch WLAN ( Fn+F2 ) and BT ( Fn+ESC ) separately on or off. Not sure what kind of information would be helpful to track the problem down, please advise.
I have similar problems on my Acer TravelMate 6413. The 802.11 interface comes up without any problems if the rf kill switch is set to enable the device at boot. If the device is disabled at boot time then enabling it later doesn't cause the NIC to appear - rmmod and modprobing the driver once it is enabled causes it to appear correctly. The activity LED also never comes on.
Created attachment 156568 [details] dmesg after booting
Created attachment 156569 [details] /var/log/messages after booting
When booting with wireless switched off, the kill switch setting is detected. Switching it to on does not achieve anything. System/Administration/Network does not show a hardware entry for wlan0, while the devices entry is renamed to wlan0.bak. Doing rmmod iwl3945 followed by modprobe iwl3945 does not help either, only after a reboot the device is detected again. In System/Administration/Network there are now two wlan devices ( wlan0 and wlan0.bak ) interestingly the Network Name (SSID) sticks with wlan0.bak, while the key is reported for wlan0. Deactivating one of them downs both, while activating one of them ups both. Network access seems undisturbed.
Created attachment 156643 [details] Screenshot of System/Administration/Network
Created attachment 156644 [details] dmesg after booting with wireless switched off
FWIW, the Intel team is working on it -- they provided this bug link (which doesn't seem too detailed ATM)... http://bughost.org/bugzilla/show_bug.cgi?id=1209
Created attachment 157855 [details] Turn wireless on/off on a Lenovo T60 based on rfkill switch status FYI: On my Lenovo T60 with FC6/F7 I use the ACPI hotkey event for the rfkill switch to handle driver/device (de)activation. Maybe you can adapt it for your laptops? $ cat /etc/acpi/events/ibm-wireless.conf # User has changed rfkill switch -> cycle device/driver event=ibm/hotkey.HKEY.*.0007000 action=/home/stefanb/laptop/ibm-wireless.sh LED stopped working on F7 with the iwl3945 driver though :-/
Please try the kernels from here: http://koji.fedoraproject.org/koji/buildinfo?buildID=10941 Do they work any better for you?
I installed it and still no change: ]# uname -a Linux fedora7 2.6.22-8.fc7 #1 SMP Wed Jul 11 16:56:09 EDT 2007 i686 i686 i386 GNU/Linux after booting with rfkill on: # iwconfig lo no wireless extensions. eth0 no wireless extensions. switching rfkill off: # iwconfig lo no wireless extensions. eth0 no wireless extensions. this is what I found in /var/log/messages after boot Jul 15 09:56:53 fedora7 kernel: iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 0.0.36kd Jul 15 09:56:53 fedora7 kernel: iwl3945: Copyright(c) 2003-2007 Intel Corporation Jul 15 09:56:53 fedora7 kernel: ACPI: PCI Interrupt 0000:10:00.0[A] -> GSI 17 (level, low) -> IRQ 17 Jul 15 09:56:53 fedora7 kernel: iwl3945: Detected Intel PRO/Wireless 3945ABG Network Connection Jul 15 09:56:53 fedora7 kernel: iwl3945: Could not read microcode: -22 Jul 15 09:56:53 fedora7 kernel: ACPI: PCI interrupt for device 0000:10:00.0 disabled Jul 15 09:56:53 fedora7 kernel: iwl3945: probe of 0000:10:00.0 failed with error -22 can I do some other tests? do you need some specific command output?
You need updated firmware. It can be found here: http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-3945-ucode-2.14.4.tgz You may want to save the old firmware, in case you need to use an older kernel. Does this work better for you?
I don't understand why I need new firmware. How do I save old firmware? Is this like a motherboard bios firmware? Is this really necessary? I could install new firmware but how does some casual linux user know what to do when his wireless stops working after fedora starts actually using this kernel. Is this a bug or a feature in kernel?
cp /lib/firmware/iwl3945.ucode /lib/firmware/iwl3945.ucode.save This firmware is loaded at runtime into the memory on your device. It is not a permanent change to the hardware. And yes, it is necessary because the iwl3945 driver developers failed to provide compatibility between old versions of the driver and new versions of their firmware or vice versa. As for the normal user, when the kernel update with this driver is pushed we will push an updated firmware package as well. If you want to test the updated kernel before then, you need to update the firmware manually. Hth!
Hmmm, that should be: cp /lib/firmware/iwlwifi-3945.ucode /lib/firmware/iwlwifi-3945.ucode.save
I don't have any firmware. Is that "normal" with F7 and 2.6.22 kernel? # uname -a Linux fedora7 2.6.22-8.fc7 #1 SMP Wed Jul 11 16:56:09 EDT 2007 i686 i686 i386 GNU/Linux # ls -al /lib/firmware/ total 2008 drwxr-xr-x 3 root root 4096 2007-06-26 15:04 . drwxr-xr-x 15 root root 4096 2007-07-14 23:18 .. -rw-r--r-- 1 root root 209190 2004-09-27 17:26 ipw2100-1.3.fw -rw-r--r-- 1 root root 201138 2004-09-27 17:26 ipw2100-1.3-i.fw -rw-r--r-- 1 root root 196458 2004-09-27 17:26 ipw2100-1.3-p.fw -rw-r--r-- 1 root root 191142 2006-03-07 20:49 ipw2200-bss.fw -rw-r--r-- 1 root root 185660 2006-03-07 20:49 ipw2200-ibss.fw -rw-r--r-- 1 root root 187836 2006-03-07 20:49 ipw2200-sniffer.fw -rw-r--r-- 1 root root 6472 2005-08-11 15:06 ipw-2.4-boot.fw -rw-r--r-- 1 root root 168344 2005-08-11 15:06 ipw-2.4-bss.fw -rw-r--r-- 1 root root 16334 2005-08-11 15:06 ipw-2.4-bss_ucode.fw -rw-r--r-- 1 root root 162884 2005-08-11 15:06 ipw-2.4-ibss.fw -rw-r--r-- 1 root root 16312 2005-08-11 15:06 ipw-2.4-ibss_ucode.fw -rw-r--r-- 1 root root 168344 2005-08-11 15:06 ipw-2.4-sniffer.fw -rw-r--r-- 1 root root 16344 2005-08-11 15:06 ipw-2.4-sniffer_ucode.fw -rw-r--r-- 1 root root 148476 2007-04-20 17:05 iwlwifi-3945.ucode -rw-r--r-- 1 root root 11880 2004-03-03 20:13 LICENSE.ipw2100 -rw-r--r-- 1 root root 12007 2005-08-11 14:33 LICENSE.ipw2200 drwxr-xr-x 2 root root 4096 2007-06-01 09:18 zd1211
Sorry I was blind :) file name is "iwlwifi-3945.ucode" and not "iwlwifi3945.ucode" I had to turn on my brain :)
I copied new firmware and I still get no wireless interface when I disable my kill_switch # uname -a Linux fedora7 2.6.22-8.fc7 #1 SMP Wed Jul 11 16:56:09 EDT 2007 i686 i686 i386 GNU/Linux ]# ls -al /lib/firmware/iwlwifi-3945.ucode* -rw-r--r-- 1 root root 149652 2007-07-18 19:03 /lib/firmware/iwlwifi-3945.ucode -rw-r--r-- 1 root root 148476 2007-07-18 19:03 /lib/firmware/iwlwifi-3945.ucode.backup # grep iwl /var/log/messages Jul 18 19:06:03 fedora7 kernel: iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 0.0.36kd Jul 18 19:06:03 fedora7 kernel: iwl3945: Copyright(c) 2003-2007 Intel Corporation Jul 18 19:06:03 fedora7 kernel: iwl3945: Detected Intel PRO/Wireless 3945ABG Network Connection Jul 18 19:06:03 fedora7 kernel: iwl3945: Radio disabled by HW RF Kill switch and when I disable my rf_kill switch I only get bluetooth to register: # iwconfig lo no wireless extensions. eth0 no wireless extensions. # dmesg usb 1-1: new full speed USB device using uhci_hcd and address 2 usb 1-1: configuration #1 chosen from 1 choice WARNING: at drivers/usb/core/driver.c:1192 usb_autopm_do_device() (Not tainted) [<c057057f>] usb_autopm_do_device+0x63/0xd9 [<c057093c>] usb_suspend_both+0x1fc/0x20c [<c05705de>] usb_autopm_do_device+0xc2/0xd9 [<c0572bfb>] usb_create_sysfs_intf_files+0x44/0x87 [<c056f83b>] usb_set_configuration+0x3c8/0x3f2 [<c0576034>] generic_probe+0x18b/0x1db [<c0570dee>] usb_probe_device+0x32/0x37 [<c05597f7>] driver_probe_device+0xea/0x168 [<c060bd95>] klist_next+0x4b/0x6c [<c0559875>] __device_attach+0x0/0x5 [<c0558c63>] bus_for_each_drv+0x39/0x60 [<c0559907>] device_attach+0x72/0x86 [<c0559875>] __device_attach+0x0/0x5 [<c0558bd4>] bus_attach_device+0x26/0x7c [<c0558f32>] bus_add_device+0xd0/0x10b [<c0557b9b>] device_add+0x346/0x526 [<c056b852>] usb_new_device+0xa4/0xf1 [<c056c3af>] hub_thread+0x6fd/0xa6a [<c060c715>] __sched_text_start+0x675/0x714 [<c0438515>] autoremove_wake_function+0x0/0x35 [<c056bcb2>] hub_thread+0x0/0xa6a [<c043844e>] kthread+0x38/0x5e [<c0438416>] kthread+0x0/0x5e [<c0405b6b>] kernel_thread_helper+0x7/0x10 ======================= Bluetooth: HCI USB driver ver 2.9 usbcore: registered new interface driver hci_usb any other ideas?
Now I updated my rawhide with latest updates and I still don't have any wireless on my system! # uname -a Linux rawhide 2.6.23-0.71.rc2.fc8 #1 SMP Sat Aug 4 01:59:02 EDT 2007 i686 i686 i386 GNU/Linux I put new firmware as you suggested and that doesn't help... cp /lib/firmware/iwlwifi-3945.ucode /lib/firmware/iwlwifi-3945.ucode.backup cp /home/rawhide/Desktop/iwlwifi-3945-ucode-2.14.4/iwlwifi-3945.ucode /lib/firmware/ I boot with kill swithc off and I still don't have wireless !!! # iwconfig lo no wireless extensions. eth0 no wireless extensions. even after 'modprobe iwl3945' I get: # iwconfig lo no wireless extensions. eth0 no wireless extensions. here is what I get in dmesg after I load iwl3945 module: # dmesg iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 0.1.8kd iwl3945: Copyright(c) 2003-2007 Intel Corporation ACPI: PCI Interrupt 0000:10:00.0[A] -> GSI 17 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:10:00.0 to 64 iwl3945: Detected Intel PRO/Wireless 3945ABG Network Connection iwl3945: Unhandled INTA bits 0x04000000 iwl3945: Disabled INTA bits 0x04000000 were pending iwl3945: with FH_INT = 0x00000000 iwl3945: Radio Frequency Kill Switch is On: Kill switch must be turned off for wireless networking to work. iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC iwl3945: Unhandled INTA bits 0x04000000 iwl3945: Disabled INTA bits 0x04000000 were pending iwl3945: with FH_INT = 0x00000000 iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC iwl3945: Unhandled INTA bits 0x04000000 iwl3945: Disabled INTA bits 0x04000000 were pending iwl3945: with FH_INT = 0x00000000 iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC iwl3945: Unhandled INTA bits 0x04000000 iwl3945: Disabled INTA bits 0x04000000 were pending iwl3945: with FH_INT = 0x00000000 iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC iwl3945: Unhandled INTA bits 0x04000000 iwl3945: Disabled INTA bits 0x04000000 were pending iwl3945: with FH_INT = 0x00000000 iwl3945: Tunable channels: 13 802.11bg, 23 802.11a channels It says that radio kill switch is on! But it is OFF !!! What is going on?!?
I found three related upstream bugs: http://bughost.org/bugzilla/show_bug.cgi?id=1454 http://bughost.org/bugzilla/show_bug.cgi?id=1221 http://bughost.org/bugzilla/show_bug.cgi?id=1298
Based on information from 1454 above: Shouldn't you be echoing "0" to the rf_kill sysfs file?
Ok, I fixed the issue but only with using Windows :( I booted to my windows partition (which I don't use more than once a month) to test this behavior also there. When I presses hardware button only bluetooth got enabled or disabled, but when I clicked on the pop up window from HP wireless assistant from there enabling wireless was only click away. After software enabling wireless through HP Wireless assistant now pressing hardware button (RF_KILL switch) enables or disables BOTH bluetooth and wireless under windows. Now I booted back to Fedora and I have wireless device if I leave in enabled during boot via RF_KILL switch. If I try to enable it via RF_KILL switch after the machine has booted I don't get wireless but rmmod and modprobe fixes that. it this helpful? Why can't I overrule software RF_KILL switch within linux?
When I bootup my system with software kill ON from windows and into Fedora I get this: # cat /sys/bus/pci/drivers/iwl3945/module/drivers/pci\:iwl3945/0000\:10\:00.0/rf_kill 2 # iwconfig lo no wireless extensions. eth0 no wireless extensions. then I try to echo "0" [root@rawhide ~]# echo "0" >> /sys/bus/pci/drivers/iwl3945/module/drivers/pci\:iwl3945/0000\:10\:00.0/rf_kill [root@rawhide ~]# [root@rawhide ~]# cat /sys/bus/pci/drivers/iwl3945/module/drivers/pci\:iwl3945/0000\:10\:00.0/rf_kill 2 So as you can seen I cannot switch off software kill under linux, but I can under windows. I must add that all the time hardware RF_KILL switch is DISABLED and not enabled as you could conclude from reading "rf_kill" kernel file.
Ok, now under kernel 2.6.23-0.195.rc7.git3.fc8 my wireless turns on when I enable it (turn off rf_kill switch). Now after enabling wireless and issuing 'iwconfig' I can see wlan0. BEFORE ENABLING: # iwconfig lo no wireless extensions. eth0 no wireless extensions. AFTER ENABLING: ]# iwconfig lo no wireless extensions. eth0 no wireless extensions. wmaster0 no wireless extensions. wlan0 IEEE 802.11g ESSID:"" Mode:Managed Channel:0 Access Point: Not-Associated Tx-Power=0 dBm Retry min limit:7 RTS thr:off Fragment thr=2346 B Encryption key:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
I tested this behavior with latest kernel 2.6.23-0.214.rc8.git2.fc8 and it also works ok!