OpenSuSE 11.1 / Dell Latitude E6500 / Intel 5300 AGN problem withRF disable switch

Got a new laptop here that I’m installing with 11.1. I’ve got most things
working the way I want, with the exception of wireless (of course). Even
that works, but not quite.

uname -a:
Linux linux-xdwf 2.6.27.7-9-pae #1 SMP 2008-12-04 18:10:04 +0100 i686
i686 i386 GNU/Linux

Because I’ve already been through the “Getting Your Wireless to Work” and
“My wireless doesn’t work - a primer on what I should do next” sticky
messages, I know what you’re looking for, so let’s get that out of the
way first:

lspci output:
00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory
Controller Hub (rev 07)
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series
Chipset Integrated Graphics Contr
oller (rev 07)
00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset
Integrated Graphics Controller (
rev 07)
00:19.0 Ethernet controller: Intel Corporation 82567LM Gigabit Network
Connection (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #4 (rev 03)
00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #5 (rev 03)
00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #6 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI
Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio
Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express
Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express
Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express
Port 3 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express
Port 4 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI
Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI
Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93)
00:1f.0 ISA bridge: Intel Corporation ICH9M-E LPC Interface Controller
(rev 03)
00:1f.2 IDE interface: Intel Corporation ICH9M/M-E 2 port SATA IDE
Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller
(rev 03)
00:1f.5 IDE interface: Intel Corporation ICH9M/M-E 2 port SATA IDE
Controller (rev 03)
03:01.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev ba)
03:01.1 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller
(rev 04)
03:01.2 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host
Adapter (rev 21)
0c:00.0 Network controller: Intel Corporation PRO/Wireless 5300 AGN
[Shiloh] Network Connection

iwconfig output:
wlan0 IEEE 802.11abgn ESSID:“NIUwirelessInstructions”
Mode:Managed Frequency:2.462 GHz Access Point: Not-
Associated
Tx-Power=15 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
Encryption key:off
Power Management: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|grep firmware:
Apr 28 10:18:43 linux-xdwf kernel: firmware: requesting
iwlwifi-5000-1.ucode

The problem is that the system doesn’t recognize a change in state of the
RF kill switch from “off” to “on”. (“Off” here means turn the radio off,
“on” means turn the radio on. It looks like the kernel messages interpret
this the other way around, so that “on” means that the switch is on,
disabling the radio.) If I boot the machine with the switch turned off,
it is correctly reported in /var/log/messages as:

Apr 27 11:13:22 linux kernel: firmware: requesting iwlwifi-5000-1.ucode
Apr 27 11:13:23 linux kernel: iwlagn: Radio disabled by HW RF Kill switch

But changing the switch from “off” to “on” doesn’t report anything in
/var/log/messages. If I boot the machine with the switch turned on, it
looks like:

Apr 28 10:07:48 linux-xdwf kernel: iwlagn 0000:0c:00.0: PCI INT A -> GSI
17 (level, low) -> IRQ 17
Apr 28 10:07:48 linux-xdwf kernel: iwlagn 0000:0c:00.0: restoring config
space at offset 0x1 (was 0x10
0102, writing 0x100106)
Apr 28 10:07:48 linux-xdwf kernel: firmware: requesting
iwlwifi-5000-1.ucode
Apr 28 10:07:50 linux-xdwf kernel: Registered led device: iwl-phy0:radio
Apr 28 10:07:50 linux-xdwf kernel: Registered led device: iwl-phy0:assoc
Apr 28 10:07:50 linux-xdwf kernel: Registered led device: iwl-phy0:RX
Apr 28 10:07:50 linux-xdwf kernel: Registered led device: iwl-phy0:TX
Apr 28 10:07:50 linux-xdwf kernel: ADDRCONF(NETDEV_UP): wlan0: link is
not ready
Apr 28 10:07:50 linux-xdwf kernel: NET: Registered protocol family 17
Apr 28 10:07:52 linux-xdwf kernel: wlan0: authenticate with AP
0a:0b:84:2f:61:6e
Apr 28 10:07:52 linux-xdwf kernel: wlan0: authenticated
Apr 28 10:07:52 linux-xdwf kernel: wlan0: associate with AP
0a:0b:84:2f:61:6e
Apr 28 10:07:52 linux-xdwf kernel: wlan0: RX AssocResp from
0a:0b:84:2f:61:6e (capab=0x421 status=0 ai
d=2)
Apr 28 10:07:52 linux-xdwf kernel: wlan0: associated

At this point, I note that the “wifi” LED on the machine turns on as
well. If I turn the switch to off again, disabling the RF, the “wifi” LED
turns off, and I see the switch change reported in /var/log/messages:

Apr 28 10:09:29 linux-xdwf kernel: wlan0: disassociating by local choice
(reason=3)
Apr 28 10:09:38 linux-xdwf kernel: iwlagn: Radio Frequency Kill Switch is
On:
Apr 28 10:09:38 linux-xdwf kernel: Kill switch must be turned off for
wireless networking to work.
Apr 28 10:09:40 linux-xdwf kernel: wlan0: authenticate with AP
0a:0b:84:2f:61:6e
Apr 28 10:09:40 linux-xdwf kernel: iwlagn: WARNING: Requesting MAC access
during RFKILL wakes up NIC
Apr 28 10:09:42 linux-xdwf kernel: iwlagn: WARNING: Requesting MAC access
during RFKILL wakes up NIC
Apr 28 10:09:42 linux-xdwf kernel: iwlagn: WARNING: Requesting MAC access
during RFKILL wakes up NIC
Apr 28 10:09:42 linux-xdwf kernel: iwlagn: WARNING: Requesting MAC access
during RFKILL wakes up NIC
Apr 28 10:09:42 linux-xdwf avahi-daemon[3014]: Withdrawing address record
for fe80::221:6aff:fe2f:616e
on wlan0.
Apr 28 10:09:42 linux-xdwf kernel: vendor=8086 device=2942
Apr 28 10:09:42 linux-xdwf kernel: iwlagn 0000:0c:00.0: PCI INT A disabled

but then turning the switch back on again doesn’t report anything at all.
I can, however, do:

modprobe -r iwlagn
modprobe iwlagn

and /var/log/messages shows:

Apr 28 10:18:39 linux-xdwf kernel: iwlagn: Intel(R) Wireless WiFi Link
AGN driver for Linux, 1.3.27ks
Apr 28 10:18:39 linux-xdwf kernel: iwlagn: Copyright(c) 2003-2008 Intel
Corporation
Apr 28 10:18:39 linux-xdwf kernel: vendor=8086 device=2942
Apr 28 10:18:39 linux-xdwf kernel: iwlagn 0000:0c:00.0: PCI INT A -> GSI
17 (level, low) -> IRQ 17
Apr 28 10:18:39 linux-xdwf kernel: iwlagn 0000:0c:00.0: setting latency
timer to 64
Apr 28 10:18:39 linux-xdwf kernel: iwlagn: Detected Intel Wireless WiFi
Link 5300AGN REV=0x24
Apr 28 10:18:39 linux-xdwf kernel: iwlagn: Tunable channels: 13 802.11bg,
24 802.11a channels
Apr 28 10:18:39 linux-xdwf kernel: phy0: Selected rate control algorithm
‘iwl-agn-rs’
Apr 28 10:18:39 linux-xdwf ifup: interface ‘wmaster0’ is a wlan helper
interface. Exiting.
Apr 28 10:18:39 linux-xdwf ifup: Network interface is managed from
NetworkManager
Apr 28 10:18:39 linux-xdwf ifup: NetworkManager will be advised to set up
wlan0
Apr 28 10:18:39 linux-xdwf ifup: but it cannot be assured from here.
Apr 28 10:18:43 linux-xdwf kernel: vendor=8086 device=2942
Apr 28 10:18:43 linux-xdwf kernel: iwlagn 0000:0c:00.0: PCI INT A -> GSI
17 (level, low) -> IRQ 17
Apr 28 10:18:43 linux-xdwf kernel: firmware: requesting
iwlwifi-5000-1.ucode
Apr 28 10:18:46 linux-xdwf kernel: Registered led device: iwl-phy0:radio
Apr 28 10:18:46 linux-xdwf kernel: Registered led device: iwl-phy0:assoc
Apr 28 10:18:46 linux-xdwf kernel: Registered led device: iwl-phy0:RX
Apr 28 10:18:46 linux-xdwf kernel: Registered led device: iwl-phy0:TX
Apr 28 10:18:46 linux-xdwf kernel: iwlagn: Error sending REPLY_ADD_STA:
time out after 500ms.
Apr 28 10:18:46 linux-xdwf kernel: ADDRCONF(NETDEV_UP): wlan0: link is
not ready
Apr 28 10:18:48 linux-xdwf kernel: wlan0: authenticate with AP
0a:0b:84:2f:61:6e
Apr 28 10:18:48 linux-xdwf kernel: wlan0: authenticated
Apr 28 10:18:48 linux-xdwf kernel: wlan0: associate with AP
0a:0b:84:2f:61:6e
Apr 28 10:18:48 linux-xdwf kernel: wlan0: RX AssocResp from
0a:0b:84:2f:61:6e (capab=0x421 status=0 ai
d=3)
Apr 28 10:18:48 linux-xdwf kernel: wlan0: associated

and again the “wifi” LED turns on.

So, it looks like whatever should be recognizing that the RF kill switch
changes state from “off” (radio disabled) to “on” (radio enabled) isn’t
doing so. I don’t see anything even close to this reported in the support
forums here so far. If there is any other detail I can add to this,
please let me know.

Better yet, if there is a way to get the system to recognize the switch
changing state and get iwlagn to react to it, please let me know that.

David Gersic dgersic_@_niu.edu
Novell Knowledge Partner http://forums.novell.com

Please post questions in the newsgroups. No support provided via email.

– misread the first post, therefore own posting deleted–

David Gersic wrote:
>
> Better yet, if there is a way to get the system to recognize the switch
> changing state and get iwlagn to react to it, please let me know that.

Nearly all of the rfkill code/logic is changed in 2.6.30. If you download the
compat-wireless package for your kernel, you will get that code. I don’t
remember which repo it is in, but a little searching in the wireless forum,
which is where this should have been posted, will let you find that information.

On Tue, 28 Apr 2009 17:17:32 +0000, Larry Finger wrote:

> Nearly all of the rfkill code/logic is changed in 2.6.30. If you
> download the compat-wireless package for your kernel, you will get that
> code.

I’ll find it and give it a try. Thanks.

> I don’t remember which repo it is in, but a little searching in
> the wireless forum, which is where this should have been posted, will
> let you find that information.

Newsgroups: opensuse.org.help.network-internet.wireless

Er, you were thinking of some other wireless forum I guess?

David Gersic dgersic_@_niu.edu
Novell Knowledge Partner http://forums.novell.com

Please post questions in the newsgroups. No support provided via email.

On Tue, 28 Apr 2009 17:16:02 +0000, Akoellh wrote:

> 1st shot:
>
>
> Code:
> --------------------
>
> su
>
> modprobe -rv iwlagn
>
> modprobe -v iwlagn disable=0
> --------------------

Yes. This works. I wasn’t using the -v switch before, but I posted in my
original message that modprobe -r iwlagn / modprobe iwlagn gets things
going. Do you want to see the output from the modprobe -rv / modprobe -v
here? Adding the “disable=0” to it, or not, doesn’t seem to matter.

> And check with dmesg if the radio is now activated.

It is.

> 2nd shot
>
>
> Code:
> --------------------
>
> su
>
> modprobe -v acer-wmi wireless=1
> --------------------
> and again, check dmesg.

Er, no on this one.

insmod /lib/modules/2.6.27.7-9-pae/kernel/drivers/misc/acer-wmi.ko
wireless=1
FATAL: Error inserting acer_wmi (/lib/modules/2.6.27.7-9-pae/kernel/
drivers/misc/acer-wmi.ko): No such device

David Gersic dgersic_@_niu.edu
Novell Knowledge Partner http://forums.novell.com

Please post questions in the newsgroups. No support provided via email.

On Tue, 28 Apr 2009 17:17:32 +0000, Larry Finger wrote:

> Nearly all of the rfkill code/logic is changed in 2.6.30. If you
> download the compat-wireless package for your kernel, you will get that
> code.

I couldn’t find a compat-wireless-pae so I installed compat-wireless-kmp-
default_20090330_2.6.27.7-9.1 and switched to the kmp kernel. Wireless
and RF kill switch seems to work correctly now.

Now looking for compat-wirless-pae …

David Gersic dgersic_@_niu.edu
Novell Knowledge Partner http://forums.novell.com

Please post questions in the newsgroups. No support provided via email.

On Tue, 28 Apr 2009 17:17:32 +0000, Larry Finger wrote:

> Nearly all of the rfkill code/logic is changed in 2.6.30. If you
> download the compat-wireless package for your kernel

Ok, found a compat-wireless-pae package (compat-wireless-kmp-pae
2.6.20090411_2.6.27.21-0.1) and installed it. Kernel updated to
2.6.27.21-0.1-pae to go with it.

On boot, now I get:

Apr 29 09:43:02 linux-xdwf kernel: firmware: requesting
iwlwifi-5000-1.ucode
Apr 29 09:43:03 linux-xdwf kernel: iwlagn 0000:0c:00.0: loaded firmware
version 5.4.1.16
Apr 29 09:43:03 linux-xdwf kernel: iwlagn 0000:0c:00.0: Radio disabled by
HW RF Kill switch
Apr 29 09:43:03 linux-xdwf kernel: ADDRCONF(NETDEV_UP): wlan0: link is
not ready

which is correct, since the switch is in fact disabling the radio.
Changing the switch to enable the radio, I get:

Apr 29 09:48:04 linux-xdwf kernel: Registered led device: iwl-phy0::radio
Apr 29 09:48:04 linux-xdwf kernel: Registered led device: iwl-phy0::assoc
Apr 29 09:48:04 linux-xdwf kernel: Registered led device: iwl-phy0::RX
Apr 29 09:48:04 linux-xdwf kernel: Registered led device: iwl-phy0::TX

and then nothing happens. The LED comes on, but no activity in /var/log/
messages indicating that anything is being done about it. Changing the
switch again at this point also produces no activity in /var/log/
messages, but the LED turns off. Changing the switch one more time
(enable radio), prods it in to action:

Apr 29 09:48:07 linux-xdwf kernel: iwlagn 0000:0c:00.0: Microcode SW
error detected. Restarting 0x2000000.
Apr 29 09:48:07 linux-xdwf kernel: Registered led device: iwl-phy0::radio
Apr 29 09:48:07 linux-xdwf kernel: Registered led device: iwl-phy0::assoc
Apr 29 09:48:07 linux-xdwf kernel: Registered led device: iwl-phy0::RX
Apr 29 09:48:07 linux-xdwf kernel: Registered led device: iwl-phy0::TX
Apr 29 09:48:07 linux-xdwf kernel: ADDRCONF(NETDEV_UP): wlan0: link is
not ready
Apr 29 09:48:10 linux-xdwf kernel: wlan0: authenticate with AP f7cb4638
Apr 29 09:48:10 linux-xdwf kernel: wlan0: authenticated
Apr 29 09:48:10 linux-xdwf kernel: wlan0: associate with AP f7cb4638
Apr 29 09:48:10 linux-xdwf kernel: wlan0: associate with AP f7cb4638
Apr 29 09:48:10 linux-xdwf kernel: wlan0: RX AssocResp from e9114016
(capab=0x421 status=0 aid=4)
Apr 29 09:48:10 linux-xdwf kernel: wlan0: associated
Apr 29 09:48:10 linux-xdwf kernel: wlan0: disassociating by local choice
(reason=3)
Apr 29 09:48:15 linux-xdwf kernel: wlan0: authenticate with AP f7cb4638
Apr 29 09:48:15 linux-xdwf kernel: wlan0: authenticate with AP f7cb4638
Apr 29 09:48:15 linux-xdwf kernel: wlan0: authenticated
Apr 29 09:48:15 linux-xdwf kernel: wlan0: associate with AP f7cb4638
Apr 29 09:48:15 linux-xdwf kernel: wlan0: RX AssocResp from e8008016
(capab=0x421 status=0 aid=1)
Apr 29 09:48:15 linux-xdwf kernel: wlan0: associated

after which it looks good and seems to be working. This is repeatable, in
that the first time the RF switch is used to enable the radio after the
OS is booted doesn’t seem to work, but the second and subsequent uses of
the RF kill switch seem to work fine.

The log here shows me only waiting a few seconds. I’ve waited up to a
minute, watching /var/log/messages with tail -F, and have seen no
activity at all in it.

If there’s anything I can do to help debug this, let me know.

David Gersic dgersic_@_niu.edu
Novell Knowledge Partner http://forums.novell.com

Please post questions in the newsgroups. No support provided via email.

The polling interval for rfkill is 6 seconds. Are you waiting at least that long?

On Wed, 29 Apr 2009 19:32:57 +0000, Larry Finger wrote:

> The polling interval for rfkill is 6 seconds. Are you waiting at least
> that long?

As I said, I’ve waited up to 60 seconds with no difference.