Dell XPS13(2015)上的 Wi-Fi 间歇性掉线 - cfg80211 dmesg 警告和堆栈跟踪

Dell XPS13(2015)上的 Wi-Fi 间歇性掉线 - cfg80211 dmesg 警告和堆栈跟踪

每隔几分钟我的 Wi-Fi 连接就会断开,并伴随dmesg如下警告和堆栈跟踪:

[ 2680.040170] ------------[ cut here ]------------
[ 2680.040197] WARNING: CPU: 0 PID: 504 at /build/linux-AFqQDb/linux-4.2.0/net/wireless/sme.c:850 cfg80211_roamed+0x86/0xa0 [cfg80211]()
[ 2680.040198] Modules linked in: rfcomm bnep nvram msr evdi(OE) pci_stub vboxpci(OE) vboxnetadp(OE) vboxnetflt(OE) uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core v4l2_common btusb videodev media vboxdrv(OE) btrtl btbcm btinte
l bluetooth binfmt_misc iptable_filter ip_tables x_tables nls_iso8859_1 dell_laptop dcdbas hid_multitouch dell_wmi sparse_keymap snd_soc_rt286 snd_soc_rl6347a snd_soc_core snd_compress ac97_bus snd_pcm_dmaengine snd_seq_midi snd_seq_midi_
event intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel wl(POE) kvm snd_rawmidi crct10dif_pclmul crc32_pclmul joydev dell_led snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic input_leds aesni_intel snd_hda_
intel snd_hda_codec aes_x86_64 lrw gf128mul snd_hda_core glue_helper snd_hwdep ablk_helper cryptd
[ 2680.040229]  snd_seq serio_raw cfg80211 snd_pcm mei_me rtsx_pci_ms snd_seq_device memstick snd_timer mei snd lpc_ich shpchp soundcore int3403_thermal soc_button_array dw_dmac dw_dmac_core snd_soc_sst_acpi 8250_dw i2c_designware_platfor
m i2c_designware_core spi_pxa2xx_platform acpi_als int3402_thermal kfifo_buf processor_thermal_device int340x_thermal_zone int3400_thermal intel_soc_dts_iosf acpi_thermal_rel acpi_pad iosf_mbi tpm_crb intel_smartconnect mac_hid industrial
io drbg ansi_cprng dm_crypt parport_pc ppdev lp parport autofs4 btrfs xor raid6_pq rtsx_pci_sdmmc i915 psmouse i2c_algo_bit ahci drm_kms_helper libahci drm rtsx_pci wmi sdhci_acpi video sdhci i2c_hid hid
[ 2680.040268] CPU: 0 PID: 504 Comm: wl_event_handle Tainted: P        W  OE   4.2.0-23-generic #28-Ubuntu
[ 2680.040270] Hardware name: Dell Inc. XPS 13 9343/0TM99H, BIOS A07 11/11/2015
[ 2680.040271]  0000000000000000 000000001ccf4233 ffff8800d9f07da8 ffffffff817e94c9
[ 2680.040273]  0000000000000000 0000000000000000 ffff8800d9f07de8 ffffffff8107b3d6
[ 2680.040274]  ffff8800d9a32c78 ffff8802150a9000 ffff880212b8c480 0000000000000099
[ 2680.040276] Call Trace:
[ 2680.040280]  [<ffffffff817e94c9>] dump_stack+0x45/0x57
[ 2680.040283]  [<ffffffff8107b3d6>] warn_slowpath_common+0x86/0xc0
[ 2680.040285]  [<ffffffff8107b50a>] warn_slowpath_null+0x1a/0x20
[ 2680.040292]  [<ffffffffc052b5d6>] cfg80211_roamed+0x86/0xa0 [cfg80211]
[ 2680.040321]  [<ffffffffc08e5965>] wl_notify_roaming_status+0xc5/0x140 [wl]
[ 2680.040342]  [<ffffffffc08e4fa4>] wl_event_handler+0x64/0x1e0 [wl]
[ 2680.040363]  [<ffffffffc08e4f40>] ? wl_notify_scan_status+0x320/0x320 [wl]
[ 2680.040365]  [<ffffffff8109a868>] kthread+0xd8/0xf0
[ 2680.040367]  [<ffffffff8109a790>] ? kthread_create_on_node+0x1f0/0x1f0
[ 2680.040369]  [<ffffffff817f06df>] ret_from_fork+0x3f/0x70
[ 2680.040370]  [<ffffffff8109a790>] ? kthread_create_on_node+0x1f0/0x1f0
[ 2680.040371] ---[ end trace 400e3aed01e10c06 ]---

在许多(但不是全部)情况下,紧接着会出现一堆错误,报告错误的 MAC 地址:

[ 2684.709095] ERROR @wl_cfg80211_get_station : Wrong Mac address, mac = 58:97:1e:91:44:71   profile =58:97:1e:91:44:7e
[ 2684.709157] ERROR @wl_cfg80211_get_station : Wrong Mac address, mac = 58:97:1e:91:44:71   profile =58:97:1e:91:44:7e
[ 2690.717559] ERROR @wl_cfg80211_get_station : Wrong Mac address, mac = 58:97:1e:91:44:71   profile =58:97:1e:91:44:7e

当发生这种情况时,我必须使用网络管理器禁用并重新启用我的 Wi-Fi,以强制它重新连接。

  • 从堆栈跟踪中可以看出,我正在使用运行 A07 版本 BIOS 的 Dell XPS13 9343 (2015)。
  • 我正在运行 Ubuntu 15.10 和内核4.2.0-23-generic
  • 我的版本bcmwl-kernel-source6.30.223.248+bdcom-0ubuntu7,从标准wily/restrictedrepo 安装。

我知道这个问题,但我不确信这是我所看到的同一件事,因为:

  • 我看到的问题发生在干净启动之后,而不仅仅是恢复之后
  • 问题是据称已经修复在威利

我也尝试过从提到的 PPA 进行更新这里,但这并没有解决问题。

答案1

我应该花更多的时间浏览错误报告我在问题中提到过。特别是,Rafael Tinoco 的评论似乎解释了我在内核日志中看到的警告:

我不是无线专家,但在阅读并分析了您的系统日志输出后:


Aug 20 12:57:16 martin04 kernel: [ 9464.423445] Call Trace:
Aug 20 12:57:16 martin04 kernel: [ 9464.423451] [<ffffffff817aeed7>] dump_stack+0x45/0x57
Aug 20 12:57:16 martin04 kernel: [ 9464.423453] [<ffffffff81074d8a>] warn_slowpath_common+0x8a/0xc0
Aug 20 12:57:16 martin04 kernel: [ 9464.423455] [<ffffffff81074e7a>] warn_slowpath_null+0x1a/0x20
Aug 20 12:57:16 martin04 kernel: [ 9464.423462] [<ffffffffc04c5e09>] cfg80211_roamed+0x89/0x90 [cfg80211]
Aug 20 12:57:16 martin04 kernel: [ 9464.423489] [<ffffffffc07aba0b>] wl_notify_roaming_status+0xcb/0x150 [wl]
Aug 20 12:57:16 martin04 kernel: [ 9464.423508] [<ffffffffc07a876a>] wl_event_handler+0x6a/0x230 [wl]
Aug 20 12:57:16 martin04 kernel: [ 9464.423526] [<ffffffffc07a8700>] ? wl_free_wdev.isra.23+0x80/0x80 [wl]
Aug 20 12:57:16 martin04 kernel: [ 9464.423529] [<ffffffff81093802>] kthread+0xd2/0xf0
Aug 20 12:57:16 martin04 kernel: [ 9464.423531] [<ffffffff81093730>] ? kthread_create_on_node+0x1c0/0x1c0
Aug 20 12:57:16 martin04 kernel: [ 9464.423533] [<ffffffff817b67d8>] ret_from_fork+0x58/0x90
Aug 20 12:57:16 martin04 kernel: [ 9464.423535] [<ffffffff81093730>] ? kthread_create_on_node+0x1c0/0x1c0

这仅意味着 broadcom WL 驱动程序试图警告内核它从一个 AP 漫游到另一个 AP,并且无法找到新的 BSS(意味着该卡无法获取其所有新的 BSS - 对等点、AP 等)。

* 尝试配置无线适配器以使用特定的 AP *并检查你的 wifi 环境是否存在干扰,这些干扰可能会影响到 Broadcom 驱动程序是否漫游的决定 - > 这并不意味着不需要修复 WL,它只意味着我们必须等待 Broadcom 推出新的驱动程序。

更新

我最终受够了这种断断续续的连接,所以我尝试用英特尔 7625(在撰写本文时)替换原来的 Broadcom(BCM94352Z)WiFi 卡这些在亚马逊上的售价约为 25 英镑)。

安装非常简单,新卡似乎在使用内置iwlwifi内核驱动程序时运行完美(您可以继续删除bcmwl-kernel-source,因为不再需要它)。经过一周的稳定使用,我从未遇到过与英特尔卡的连接断开(而在相同位置和相同集线器下,Broadcom 部件大约每 10-30 分钟就会发生一次这种情况)。

相关内容