从休眠状态恢复后 WiFi 无法工作(身份验证超时)

Dan*_*iel 7 networking wifi wpa-supplicant thinkpad networkmanager

我的英特尔 6205 无线网卡休眠后不工作。它有时在启动时也不起作用,以同样的方式失败。有时,它也会在连续使用约 10 分钟后停止工作。

我已经尝试了以下组合:modprobe -r iwlwifi在冬眠之前和之后(或当问题发生时),然后是modprobe iwlwifi; 然后systemctl restart network-managersystemctl restart NetworkManager。这些解决方案是所有症状搜索结果的重点。

我还应该尝试什么?

配置:

  • Debian 杰西
  • 内核 3.14.4-1
  • 网络管理器 0.9.8.10
  • 英特尔 6205 rev 96 (iwlwifi)
  • 联想 ThinkPad X1 Carbon
$ dmesg
wlan0: authenticate with 47:f2:2f:91:db:7b
wlan0: Wrong control channel: center-freq: 5500 ht-cfreq: 5180 ht->primary_chan: 36 band: 1 - Disabling HT
wlan0: direct probe to 47:f2:2f:91:db:7b (try 1/3)
wlan0: direct probe to 47:f2:2f:91:db:7b (try 2/3)
wlan0: direct probe to 47:f2:2f:91:db:7b (try 3/3)
wlan0: authentication with 47:f2:2f:91:db:7b timed out
wlan0: authenticate with 47:f2:2f:91:db:7b
wlan0: send auth to 47:f2:2f:91:db:7b (try 1/3)
wlan0: send auth to 47:f2:2f:91:db:7b (try 2/3)
wlan0: send auth to 47:f2:2f:91:db:7b (try 3/3)
wlan0: authentication with 47:f2:2f:91:db:7b timed out
# the last 5 messages repeat indefinitely as connection is reattempted
Run Code Online (Sandbox Code Playgroud)

slm*_*slm 6

查看此命令的输出,以确认内核为给定硬件使用了哪些驱动程序/模块。

$ lshw -C network
...
  *-network
       description: Wireless interface
       product: Centrino Wireless-N 1000 [Condor Peak]
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: wlp3s0
       version: 00  
       serial: 00:26:c7:85:a7:20
       width: 64 bits
       clock: 33MHz 
       capabilities: bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=iwlwifi driverversion=3.14.4-100.fc19.x86_64 firmware=39.31.5.1 build 35138 ip=192.168.1.161 latency=0 link=yes multicast=yes wireless=IEEE 802.11bgn  
       resources: irq:42 memory:f2400000-f2401fff
Run Code Online (Sandbox Code Playgroud)

驱动程序的名称列在 `configuration 行中:

driver=iwlwifi
Run Code Online (Sandbox Code Playgroud)

检查并查看此更高级别驱动程序可能正在使用的其他驱动程序:

$ lsmod | grep iwlwifi
iwlwifi               116346  1 iwldvm
cfg80211              513095  3 iwlwifi,mac80211,iwldvm
Run Code Online (Sandbox Code Playgroud)

尝试卸载所有这些rmmod <name>,然后重新加载它们:

$ sudo modprobe iwlwifi
Run Code Online (Sandbox Code Playgroud)

那应该自动加载顶级驱动程序+任何较低级别的驱动程序。

禁用无线-N

我的大多数 Thinkpad 笔记本电脑都遇到了很多问题,无线网络会出现不稳定的情况。我发现唯一有效的解决方案是禁用iwlwifi模块的 Wireless-N 功能。您可以像这样找到模块的此参数的名称/选项:

$ modinfo iwlwifi | grep dis
parm:           11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint)
parm:           wd_disable:Disable stuck queue watchdog timer 0=system default, 1=disable, 2=enable (default: 0) (int)
parm:           power_save:enable WiFi power management (default: disable) (bool)
Run Code Online (Sandbox Code Playgroud)

因此,当您准备好通过modprobe包含选项重新加载模块时,删除模块后11n_disable。例如:

$ sudo modprobe iwlwifi 11n_disable=1
Run Code Online (Sandbox Code Playgroud)

您可以通过您的modprobe.d目录从启动到启动永久保存。