Wifi连接问题已解决;为什么我的“修复”有效?


15

我有一台安装了Ubuntu 15.04的三星笔记本电脑,从13.10一直升级到了该笔记本,但这不是问题。

随着时间的推移,我已经无数次连接到无数个wifi网络了……也就是说,直到几天前。我暂时在客户处工作,根本无法连接到任何wifi网络。看到了所有网络,我只是无法建立连接...

除了我之外,没有其他人遇到麻烦,我知道问题已经过去了。

我的卡是这样的:

02:00.0 Network controller: Intel Corporation Centrino Advanced-N 6235 (rev 24)

它使用iwlwifi驱动程序。以下是modinfo报告的选项:

parm:           swcrypto:using crypto in software (default 0 [hardware]) (int)
parm:           11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint)
parm:           amsdu_size_8K:enable 8K amsdu size (default 0) (int)
parm:           fw_restart:restart firmware in case of error (default true) (bool)
parm:           antenna_coupling:specify antenna coupling in dB (default: 0 dB) (int)
parm:           wd_disable:Disable stuck queue watchdog timer 0=system default, 1=disable (default: 1) (int)
parm:           nvm_file:NVM file name (charp)
parm:           uapsd_disable:disable U-APSD functionality (default: Y) (bool)
parm:           bt_coex_active:enable wifi/bt co-exist (default: enable) (bool)
parm:           led_mode:0=system default, 1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0) (int)
parm:           power_save:enable WiFi power management (default: disable) (bool)
parm:           power_level:default power save level (range from 1 - 5, default: 1) (int)
parm:           fw_monitor:firmware monitor - to debug FW (default: false - needs lots of memory) (bool)

凭直觉,我修改了相应的modprobe.d文件以添加:

options iwlwifi bt_coex_active=0

突然之间我再也没问题了...

为什么这样做?此选项有什么作用?

Answers:


15

Wifi连接问题解决了,为什么我的“修复”有效?

启用bt_coex_active时,它将防止蓝牙/无线干扰。禁用此功能将允许增加蓝牙/无线干扰。

  • bt_coex_active=1 (true)防止蓝牙/无线干扰。
  • bt_coex_active=0 (false)允许增加蓝牙/无线干扰。

该功能的工作方式是:当打开时,无线收发器将避免与蓝牙收发器同时发送。

在某些错误的实现中,它认为蓝牙一直在传输,从而完全“屏蔽”了WLAN,因此将其关闭将使WLAN再次工作。


802.11蓝牙共存

当802.11设备在2.4 GHz频段上运行时,802.11设备和蓝牙可能会相互干扰。所有蓝牙设备均在2.4 GHz频段上运行。本节记录有关驱动程序中实现的干扰原因和解决方案,802.11堆栈以及将来可能进行的增强的技术细节。

...

干扰

每个802.11通道等于20个蓝牙通道。在蓝牙设备上启用通信后,当蓝牙设备跳至与您的802.11通道等效的20个蓝牙通道中的任何一个时,都会受到干扰。即使蓝牙设备以每秒1600个跳频的最大允许跳频速率跳动,也只有79个通道可用,因此以该速率,每个通道将在一秒钟内使用约20次。

802.11蓝牙共存


源代码摘录:

/*
 * set bt_coex_active to true, uCode will do kill/defer
 * every time the priority line is asserted (BT is sending signals on the
 * priority line in the PCIx).
 * set bt_coex_active to false, uCode will ignore the BT activity and
 * perform the normal operation
 *
 * User might experience transmit issue on some platform due to WiFi/BT
 * co-exist problem. The possible behaviors are:
 *   Able to scan and finding all the available AP
 *   Not able to associate with any AP
 * On those platforms, WiFi communication can be restored by set
 * "bt_coex_active" module parameter to "false"
 *
 * default: bt_coex_active = true (BT_COEX_ENABLE)
 */

资料来源:iwl-core.c


进一步阅读


当您说值为0会增加干扰时,我感到很困惑,因为kernel.org上的无线Wiki正是建议解决干扰问题的方法:wireless.wiki.kernel.org/en/users/Drivers/ …;我错过了什么吗?
defvol

1
@rodowi阅读以“在一些错误的实现中”开头的段落
DavidPostill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.