Bug 444364

Summary: NetworkManager still doensn't handle the WiFi RF kill switch
Product: [openSUSE] openSUSE 11.1 Reporter: Zsolt Sági <novell.admin>
Component: Mobile DevicesAssignee: Helmut Schaa <hschaa>
Status: RESOLVED DUPLICATE QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P3 - Medium CC: dr, jnelson-suse, vuntz
Version: Final   
Target Milestone: ---   
Hardware: x86   
OS: Other   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Zsolt Sági 2008-11-12 20:34:06 UTC
The WiFi bugs of openSUSE 10.3 (https://bugzilla.novell.com/show_bug.cgi?id=412194) and 11.0 (https://bugzilla.novell.com/show_bug.cgi?id=382784) still exist, but now in a different form. Now on my HP Compaq nc6320, openSUSE 11.1's NetworkManager completely ingnores the RH key.

 If I manually enable the Wireless LAN in knetworkmanager while RF kill switch is off (thus radio is on), the the state of wlan0 and wmaster0 interfaces will remain "up". NetworkManager even attemts to connect to any access point if I instruct it, but timeout will occur of course.

 Similarly if the radio was shut down during boot, but wireless was not disbled in knetworkmanager, then turning on the radio won't make NetworkManager to set the wifi interfaces to the "up" state.

 I was unable the WiFi's behaviour during suspend/resume cycles yet, because suspend/resume simply doesn't work.

My wlan card is:

linux:~ # hwinfo --wlan
17: PCI 800.0: 0282 WLAN controller
  [Created at pci.318]
  UDI: /org/freedesktop/Hal/devices/pci_8086_4222
  Unique ID: 2nea.rQsy1Ahusx3
  Parent ID: z8Q3.2noQ7QwChBF
  SysFS ID: /devices/pci0000:00/0000:00:1c.0/0000:08:00.0
  SysFS BusID: 0000:08:00.0
  Hardware Class: network
  Model: "Hewlett-Packard Company Compaq 6710b"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x4222 "PRO/Wireless 3945ABG Network Connection"
  SubVendor: pci 0x103c "Hewlett-Packard Company"
  SubDevice: pci 0x135c "Compaq 6710b"
  Revision: 0x02
  Driver: "iwl3945"
  Driver Modules: "iwl3945"
  Device File: wmaster0
  Features: WLAN
  Memory Range: 0xe8000000-0xe8000fff (rw,non-prefetchable)
  IRQ: 219 (no events)
  HW Address: 00:18:de:a3:12:52
  Link detected: yes
  Module Alias: "pci:v00008086d00004222sv0000103Csd0000135Cbc02sc80i00"
  Driver Info #0:
    Driver Status: iwl3945 is active
    Driver Activation Cmd: "modprobe iwl3945"
  Config Status: cfg=no, avail=yes, need=no, active=unknown
  Attached to: #5 (PCI bridge)
Comment 1 Zsolt Sági 2008-11-14 08:42:06 UTC
This still applies to Beta-5.

In addition I discovered, that in some cases (for example Compaq 6710b with an iwl3945 driven card) the RF kill switch does not work at all. This is because Windows - running on the machine prior to Linux - has turned down the card in a way that Linux cannot revert it. This may also apply to my Compaq nc6320, but I've never run Windows on it, so I cannot confirm this sucpicion.
Take a look at this: http://ubuntuforums.org/showthread.php?t=562077

(Sometimes even wired ethernet cards can be shut down by windows: http://en.opensuse.org/SDB:Realtek_8169_driver_problem )

Can you put a few words about these - from Windows migration related - BIOS resetting and power card unplugging tricks in the Release Notes or some other visible place?
Comment 2 Vincent Untz 2008-11-19 13:58:51 UTC
I'd say it's some hardware integration issue -- it works on my laptop, eg. Tambet: is this a NM bug or a bug in hal?
Comment 3 Tambet Ingo 2008-11-19 15:07:43 UTC
I'd say it's wireless driver and HAL bugs. Here's a few duplicates: 446013, 419908, 398473, 443568. Helmut (our wifi driver hacker) says iwl3945 and iwl4965 currently have problems with killswitch reporting. Also, HAL doesn't have anything for iwlwifi killswitches.

I plan to have a look at the killswitch bugs after 11.1, but for now, I don't see much point in reassigning to HAL (see the "NM should do it! No, HAL should do it!" arguments in 382784).
Comment 4 Zsolt Sági 2008-11-19 15:35:16 UTC
As far as I can remember, kill switch detection worked in openSUSE 10.3.
I'm sure that it partially worked in 11.0 (https://bugzilla.novell.com/show_bug.cgi?id=382784) but that report was closed as WONTFIX (probably will be fixed in 11.1 if it will be based on linux-2.6.27).

Now, it totally ceased to work.

Does this help something?:

Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  starting...
Nov 17 15:04:29 milleniumfalcon NetworkManager: <WARN>  nm_generic_enable_loopback(): error -17 returned from rtnl_addr_add(): Sucess
Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  Found radio killswitch /org/freedesktop/Hal/devices/pci_8086_4222_rfkill_3945ABG_wlan
Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  Found radio killswitch /org/freedesktop/Hal/devices/ipw_wlan_switch
Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  eth0: driver is 'tg3'.
Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  Found new Ethernet device 'eth0'.
Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  (eth0): exported as /org/freedesktop/Hal/devices/net_00_17_08_42_e9_36
Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  wlan0: driver is 'iwl3945'.
Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  wlan0: driver supports SSID scans (scan_capa 0x01).
Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  Found new 802.11 WiFi device 'wlan0'.
Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  (wlan0): exported as /org/freedesktop/Hal/devices/net_00_18_de_a3_12_52_0
Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  Trying to start the supplicant...
Nov 17 15:04:29 milleniumfalcon NetworkManager: <info>  (wlan0): supplicant manager state:  down -> idle
Nov 17 15:04:29 milleniumfalcon NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: Method "GetPower" with signature "" on
interface "org.freedesktop.Hal.Device.KillSwitch" doesn't exist .
Comment 5 David Bailey 2008-11-20 16:03:08 UTC
I am getting similar errors spamming my NetworkManager log:

Nov 20 11:01:54 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: Method "GetPower" with signature "" on interface "org.freedesktop.Hal.Device.KillSwitch" doesn't exist .
Nov 20 11:01:54 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: dellWirelessCtl (/usr/bin/dellWirelessCtl) not available or executable.
Nov 20 11:02:00 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: Method "GetPower" with signature "" on interface "org.freedesktop.Hal.Device.KillSwitch" doesn't exist .
Nov 20 11:02:00 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: dellWirelessCtl (/usr/bin/dellWirelessCtl) not available or executable.
Nov 20 11:02:06 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: Method "GetPower" with signature "" on interface "org.freedesktop.Hal.Device.KillSwitch" doesn't exist .
Nov 20 11:02:06 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: dellWirelessCtl (/usr/bin/dellWirelessCtl) not available or executable.
Nov 20 11:02:12 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: Method "GetPower" with signature "" on interface "org.freedesktop.Hal.Device.KillSwitch" doesn't exist .
Nov 20 11:02:12 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: dellWirelessCtl (/usr/bin/dellWirelessCtl) not available or executable.
Nov 20 11:02:18 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: Method "GetPower" with signature "" on interface "org.freedesktop.Hal.Device.KillSwitch" doesn't exist .
Nov 20 11:02:18 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: dellWirelessCtl (/usr/bin/dellWirelessCtl) not available or executable.
Nov 20 11:02:24 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: Method "GetPower" with signature "" on interface "org.freedesktop.Hal.Device.KillSwitch" doesn't exist .
Nov 20 11:02:24 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: dellWirelessCtl (/usr/bin/dellWirelessCtl) not available or executable.
Nov 20 11:02:30 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: Method "GetPower" with signature "" on interface "org.freedesktop.Hal.Device.KillSwitch" doesn't exist .
Nov 20 11:02:30 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: dellWirelessCtl (/usr/bin/dellWirelessCtl) not available or executable.
Nov 20 11:02:36 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: Method "GetPower" with signature "" on interface "org.freedesktop.Hal.Device.KillSwitch" doesn't exist .
Nov 20 11:02:36 matrix NetworkManager: <WARN>  killswitch_getpower_reply(): Error getting killswitch power: dellWirelessCtl (/usr/bin/dellWirelessCtl) not available or executable.

Comment 6 Zsolt Sági 2008-11-20 16:14:54 UTC
Sorry for the mistake above, RF kill switch also didn't work in openSUSE 10.3
Comment 7 Zsolt Sági 2009-01-14 16:07:05 UTC
Still applies to the final version.
Comment 8 Jon Nelson 2009-01-15 03:36:06 UTC
See also bug 446158 and bug 461099.
Duplicates?
Comment 9 Christian Zoz 2009-01-19 10:01:12 UTC
Seems to be a duplicate of bug 446013. Is that right Helmut?

*** This bug has been marked as a duplicate of bug 446013 ***