当前位置: 首页>>技术问答>>正文


“SIOCSIFFLAGS:由于RF-kill而无法进行操作”?

,

问题描述

我作为此问题的一部分得到此错误here但由于这个问题是完全不同的问题我认为最好分开考虑这个问题。我的wlan0失灵了。当我尝试打开它时

$  sudo ifconfig wlan0 up

SIOCSIFFLAGS: Operation not possible due to RF-kill

然后

$ sudo rfkill list all

0: phy0: Wireless LAN 

     Soft blocked: yes

     Hard blocked: no

1: tpacpi_bluetooth_sw: Bluetooth

     Soft blocked: yes

     Hard blocked: yes

错误消息是什么意思?什么是RF-kill?

硬件规格

  $ sudo lshw -class network
  *-network
       description: Ethernet interface
       product: 82573L Gigabit Ethernet Controller
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:02:00.0
       logical name: eth0
       version: 00
       serial: 00:16:d3:22:96:c2
       capacity: 1Gbit/s
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=1.2.20-k2 firmware=0.5-1 latency=0 link=no multicast=yes port=twisted pair
       resources: irq:44 memory:ee000000-ee01ffff ioport:2000(size=32)
  *-network DISABLED
       description: Wireless interface
       product: PRO/Wireless 3945ABG [Golan] Network Connection
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: wlan0
       version: 02
       serial: 00:13:02:46:63:74
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=iwl3945 driverversion=2.6.38-11-generic firmware=15.32.2.9 latency=0 link=no multicast=yes wireless=IEEE 802.11abg
       resources: irq:45 memory:edf00000-edf00fff

操作系统版本和内核版本

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=11.04
DISTRIB_CODENAME=natty
DISTRIB_DESCRIPTION="Ubuntu 11.04"
$ uname -r
2.6.38-11-generic

[更新]

当我申请Fossfreedom的建议时,我得到了"SIOCSIFFLAGS: No such device"。内核由于某种原因拒绝了卡,正如FF指出的那样。

使用Blocked WiFi禁用和启用wli3945后的Dmesg

# modprobe -r iwl3945
# modprobe iwl3945
# dmesg|tail -n 50
[ 6835.430537] PM: resume of devices complete after 1889.701 msecs
[ 6835.430800] PM: resume devices took 1.888 seconds
[ 6835.430845] PM: Finishing wakeup.
[ 6835.430847] Restarting tasks ... done.
[ 6835.502666] video LNXVIDEO:00: Restoring backlight state
[ 6835.572203] [drm:drm_mode_getfb] *ERROR* invalid framebuffer id
[ 6835.852380] e1000e 0000:02:00.0: irq 46 for MSI/MSI-X
[ 6835.908162] e1000e 0000:02:00.0: irq 46 for MSI/MSI-X
[ 6835.908775] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 6836.919274] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro,commit=600
[ 6837.769253] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro,commit=600
[ 6859.097311] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro,commit=0
[ 6882.076501] e1000e 0000:02:00.0: irq 46 for MSI/MSI-X
[ 6882.132190] e1000e 0000:02:00.0: irq 46 for MSI/MSI-X
[ 6882.132924] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 6883.722633] e1000e: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: Rx/Tx
[ 6883.722645] e1000e 0000:02:00.0: eth0: 10/100 speed: disabling TSO
[ 6883.723071] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 6894.000044] eth0: no IPv6 routers present
[ 6896.551932] exe (2743): /proc/2743/oom_adj is deprecated, please use /proc/2743/oom_score_adj instead.
[ 8289.212078] usb 1-2: new high speed USB device using ehci_hcd and address 4
[ 8289.280270] hub 1-0:1.0: unable to enumerate USB device on port 2
[ 8289.608059] usb 1-2: new high speed USB device using ehci_hcd and address 5
[ 8291.006963] usb 1-2: USB disconnect, address 5
[ 8291.308072] usb 1-2: new high speed USB device using ehci_hcd and address 6
[ 8291.591228] usb 1-2: USB disconnect, address 6
[ 9598.556083] usb 1-2: new high speed USB device using ehci_hcd and address 7
[ 9599.059441] usb 1-2: USB disconnect, address 7
[11838.072332] iwl3945 0000:03:00.0: Master Disable Timed Out, 100 usec
[11838.072993] iwl3945 0000:03:00.0: PCI INT A disabled
[11850.210319] cfg80211: Calling CRDA to update world regulatory domain
[11850.218431] cfg80211: World regulatory domain updated:
[11850.218436] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[11850.218440] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[11850.218444] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[11850.218448] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[11850.218452] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[11850.218456] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[11850.291510] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, in-tree:s
[11850.291515] iwl3945: Copyright(c) 2003-2010 Intel Corporation
[11850.291601] iwl3945 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[11850.291624] iwl3945 0000:03:00.0: setting latency timer to 64
[11850.331841] iwl3945 0000:03:00.0: Tunable channels: 13 802.11bg, 23 802.11a channels
[11850.331847] iwl3945 0000:03:00.0: Detected Intel Wireless WiFi Link 3945ABG
[11850.332023] iwl3945 0000:03:00.0: irq 45 for MSI/MSI-X
[11850.332274] cfg80211: Ignoring regulatory request Set by core since the driver uses its own custom regulatory domain 
[11850.332436] ieee80211 phy0: Selected rate control algorithm 'iwl-3945-rs'
[11850.361710] iwl3945 0000:03:00.0: loaded firmware version 15.32.2.9
[11850.361885] iwl3945 0000:03:00.0: Radio disabled by HW RF Kill switch
[11850.365924] iwl3945 0000:03:00.0: Radio disabled by HW RF Kill switch

Dmesg无阻塞WiFi

# rfkill list all
1: tpacpi_bluetooth_sw: Bluetooth
    Soft blocked: no
    Hard blocked: yes
2: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
# dmesg|tail -n 50
[   27.649606] fb0: inteldrmfb frame buffer device
[   27.649608] drm: registered panic notifier
[   27.649815] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[   27.662754] HDA Intel 0000:00:1b.0: PCI INT B -> GSI 17 (level, low) -> IRQ 17
[   27.662760] hda_intel: probe_mask set to 0x1 for device 17aa:2010
[   27.662831] HDA Intel 0000:00:1b.0: irq 46 for MSI/MSI-X
[   27.662868] HDA Intel 0000:00:1b.0: setting latency timer to 64
[   27.769460] pcmcia_socket pcmcia_socket0: cs: IO port probe 0x100-0x3af: excluding 0x170-0x177 0x1f0-0x1f7 0x2f8-0x2ff 0x370-0x377
[   27.774801] pcmcia_socket pcmcia_socket0: cs: IO port probe 0x3e0-0x4ff: excluding 0x3f0-0x3f7 0x4d0-0x4d7
[   27.775742] pcmcia_socket pcmcia_socket0: cs: IO port probe 0x820-0x8ff: clean.
[   27.788575] pcmcia_socket pcmcia_socket0: cs: IO port probe 0xc00-0xcf7: clean.
[   27.789382] pcmcia_socket pcmcia_socket0: cs: memory probe 0x0c0000-0x0fffff: excluding 0xc0000-0xd3fff 0xdc000-0xfffff
[   27.789466] pcmcia_socket pcmcia_socket0: cs: memory probe 0xa0000000-0xa0ffffff: clean.
[   27.789547] pcmcia_socket pcmcia_socket0: cs: memory probe 0x60000000-0x60ffffff: excluding 0x60000000-0x60ffffff
[   27.789632] pcmcia_socket pcmcia_socket0: cs: IO port probe 0xa00-0xaff: clean.
[   27.813146] e1000e 0000:02:00.0: irq 44 for MSI/MSI-X
[   27.868221] e1000e 0000:02:00.0: irq 44 for MSI/MSI-X
[   27.868866] ADDRCONF(NETDEV_UP): eth0: link is not ready
[   27.876620] IBM TrackPoint firmware: 0x0e, buttons: 3/3
[   27.892982] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/input/input6
[   28.121555] ppdev: user-space parallel port driver
[   29.426589] e1000e: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: Rx/Tx
[   29.426597] e1000e 0000:02:00.0: eth0: 10/100 speed: disabling TSO
[   29.426893] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   31.009483] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro,commit=0
[   34.474875] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro,commit=0
[   40.160038] eth0: no IPv6 routers present
[ 7394.332227] exe (1666): /proc/1666/oom_adj is deprecated, please use /proc/1666/oom_score_adj instead.
[ 7587.420396] iwl3945 0000:03:00.0: PCI INT A disabled
[ 7599.728554] cfg80211: Calling CRDA to update world regulatory domain
[ 7599.736628] cfg80211: World regulatory domain updated:
[ 7599.736632] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 7599.736637] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 7599.736641] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 7599.736645] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 7599.736649] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 7599.736653] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 7599.797314] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, in-tree:s
[ 7599.797319] iwl3945: Copyright(c) 2003-2011 Intel Corporation
[ 7599.797397] iwl3945 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[ 7599.797419] iwl3945 0000:03:00.0: setting latency timer to 64
[ 7599.837714] iwl3945 0000:03:00.0: Tunable channels: 13 802.11bg, 23 802.11a channels
[ 7599.837719] iwl3945 0000:03:00.0: Detected Intel Wireless WiFi Link 3945ABG
[ 7599.837880] iwl3945 0000:03:00.0: irq 45 for MSI/MSI-X
[ 7599.838124] Registered led device: phy0-led
[ 7599.838170] cfg80211: Ignoring regulatory request Set by core since the driver uses its own custom regulatory domain 
[ 7599.838335] ieee80211 phy0: Selected rate control algorithm 'iwl-3945-rs'
[ 7599.980440] iwl3945 0000:03:00.0: loaded firmware version 15.32.2.9
[ 7599.980656] iwl3945 0000:03:00.0: Radio disabled by HW RF Kill switch
[ 7599.983562] iwl3945 0000:03:00.0: Radio disabled by HW RF Kill switch

Dmesg和Iwl3945没有阻止WiFi

# modprobe -r iwl3945
# modprobe iwl3945
# dmesg| tail -n 50
[   29.426597] e1000e 0000:02:00.0: eth0: 10/100 speed: disabling TSO
[   29.426893] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   31.009483] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro,commit=0
[   34.474875] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro,commit=0
[   40.160038] eth0: no IPv6 routers present
[ 7394.332227] exe (1666): /proc/1666/oom_adj is deprecated, please use /proc/1666/oom_score_adj instead.
[ 7587.420396] iwl3945 0000:03:00.0: PCI INT A disabled
[ 7599.728554] cfg80211: Calling CRDA to update world regulatory domain
[ 7599.736628] cfg80211: World regulatory domain updated:
[ 7599.736632] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 7599.736637] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 7599.736641] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 7599.736645] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 7599.736649] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 7599.736653] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 7599.797314] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, in-tree:s
[ 7599.797319] iwl3945: Copyright(c) 2003-2011 Intel Corporation
[ 7599.797397] iwl3945 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[ 7599.797419] iwl3945 0000:03:00.0: setting latency timer to 64
[ 7599.837714] iwl3945 0000:03:00.0: Tunable channels: 13 802.11bg, 23 802.11a channels
[ 7599.837719] iwl3945 0000:03:00.0: Detected Intel Wireless WiFi Link 3945ABG
[ 7599.837880] iwl3945 0000:03:00.0: irq 45 for MSI/MSI-X
[ 7599.838124] Registered led device: phy0-led
[ 7599.838170] cfg80211: Ignoring regulatory request Set by core since the driver uses its own custom regulatory domain 
[ 7599.838335] ieee80211 phy0: Selected rate control algorithm 'iwl-3945-rs'
[ 7599.980440] iwl3945 0000:03:00.0: loaded firmware version 15.32.2.9
[ 7599.980656] iwl3945 0000:03:00.0: Radio disabled by HW RF Kill switch
[ 7599.983562] iwl3945 0000:03:00.0: Radio disabled by HW RF Kill switch
[ 7906.428550] iwl3945 0000:03:00.0: PCI INT A disabled
[ 7913.242835] cfg80211: Calling CRDA to update world regulatory domain
[ 7913.249969] cfg80211: World regulatory domain updated:
[ 7913.249973] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 7913.249978] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 7913.249982] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 7913.249986] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 7913.249990] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 7913.249994] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 7913.311805] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, in-tree:s
[ 7913.311810] iwl3945: Copyright(c) 2003-2011 Intel Corporation
[ 7913.311885] iwl3945 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[ 7913.311907] iwl3945 0000:03:00.0: setting latency timer to 64
[ 7913.352172] iwl3945 0000:03:00.0: Tunable channels: 13 802.11bg, 23 802.11a channels
[ 7913.352177] iwl3945 0000:03:00.0: Detected Intel Wireless WiFi Link 3945ABG
[ 7913.352330] iwl3945 0000:03:00.0: irq 45 for MSI/MSI-X
[ 7913.352601] Registered led device: phy0-led
[ 7913.352642] cfg80211: Ignoring regulatory request Set by core since the driver uses its own custom regulatory domain 
[ 7913.352806] ieee80211 phy0: Selected rate control algorithm 'iwl-3945-rs'
[ 7913.385208] iwl3945 0000:03:00.0: loaded firmware version 15.32.2.9
[ 7913.385384] iwl3945 0000:03:00.0: Radio disabled by HW RF Kill switch
[ 7913.387138] iwl3945 0000:03:00.0: Radio disabled by HW RF Kill switch

最佳解决办法

Soft-blocking

输出到sudo rfkill list显示您的网卡是”soft-blocked”。

当无线卡通过内核发信号通知switch-off时,可能会发生这种情况。

请尝试以下步骤:

  1. 在终端中运行:sudo rfkill unblock wifi; sudo rfkill unblock all

  2. 重新运行sudo rfkill list以确认该卡已被解除阻止。

  3. 重启

  4. 再次重新运行sudo rfkill list以确认已保留的解除阻塞。

  5. 重新运行sudo lshw -class network – 您现在应该看到内核已识别(或不识别)无线卡。

如果已识别无线内核模块(不应该说”unclaimed”),则网络管理器现在应该能够看到您的空闲区域中可用的无线网络。


诊断内核问题

如果网卡未被识别 – 并且您已确认sudo rfkill list未显示阻止(即软阻塞和硬阻塞均为”no”),请在您的问题中添加以下内容:

sudo modprobe -r iwl3945
sudo modprobe iwl3945
dmesg | tail -n 50

希望这会指出错误 – 例如固件问题没有加载。

加载新固件

如果是固件问题,那么您可以尝试以下之一:

  • 安装backports无线驱动程序:

sudo apt-get install linux-backports-modules-cw-2.6.39-generic

然后重启 – 测试软件阻塞等

  • 获取最新固件如下:

wget http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-3945-ucode-15.32.2.9.tgz

tar xzf iwlwifi-3945-ucode-15.32.2.9.tgz

cd iwlwifi-3945-ucode-15.32.2.9

sudo cp iwlwifi-3945-2.ucode /lib/firmware

然后重启 – 测试软件阻塞等

注:你的dmesg跟踪应该指出它遇到问题的固件名称。可能需要将”iwlwifi-3945-2.ucode”重命名为它所期望的固件名称。

次佳解决办法

检查蓝牙和无线是否切换不良;确认您必须具备以下情况:

$ sudo rfkill list all
0: hci0: Bluetooth
    Soft blocked: yes
    Hard blocked: no
1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no

我解决了我的问题:

$sudo rfkill block bluetooth
$sudo rfkill unblock wifi

第三种解决办法

我使用rt2600pci驱动程序确认华硕X75VD笔记本电脑的这个问题。以上建议都没有帮助我,但在法国论坛(1)上,有一个work-around可以正常工作。只需暂停会话(关闭盖子)并重新激活它,wifi工作。

我发布这个是因为专门针对华硕X75VD的其他线程被标记为重复,并且该模型没有用于wifi的物理开/关开关,并且fn键序列在这种情况下不起作用。

它似乎也是机器人引入的回归(2)?

希望很快就会有补丁。

山姆

  1. http://forum.ubuntu-fr.org/viewtopic.php?id=1258361

  2. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1176812

第四种办法

解决方法,无需暂停会话

有类似的华硕笔记本电脑,我遇到了与wifi相同的问题,并使用此暂停会话解决方案,每次必须暂停它是非常麻烦的。

但是,我发现a solution in Fedora forums也适用于Ubuntu(它可能适用于任何发行版):

作为根,在/etc/modprobe.d/中创建一个名为asus-wifi.conf的文件,其中包含:

options asus_nb_wmi wapf=1

重新拍摄后,wifi应该打开。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1570.html,未经允许,请勿转载。