Проблемы с Wi-Fi разрешены; почему мой «починить» работает?

15

У меня есть ноутбук Samsung с установленной Ubuntu 15.04, полностью обновленный с 13.10, но это не проблема.

Со временем я подключился к бесчисленным сетям Wi-Fi без проблем ... То есть, пока несколько дней назад. Я временно работаю на месте клиента и не смог подключиться к какой-либо сети Wi-Fi вообще. Все сети были замечены, я просто не мог установить соединение ...

Поскольку никто, кроме меня, не имел проблем, я знал, что проблема была на моем конце.

Моя карта такая:

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

и вдруг у меня не было проблем с подключением больше ...

Почему это работает? Что делает этот вариант?

FGE
источник

Ответы:

15

Проблемы с подключением к Wi-Fi решены, почему мой "исправить" работает?

Когда bt_coex_active включен, он предотвращает Bluetooth / беспроводные помехи. Когда он отключен, это позволит увеличить помехи Bluetooth / беспроводной.

  • bt_coex_active=1 (правда) предотвращает Bluetooth / беспроводные помехи.
  • bt_coex_active=0 (false) позволяет увеличить помехи Bluetooth / беспроводной связи.

Функция работает так, что когда она включена, трансивер WLAN будет избегать передачи одновременно с трансивером Bluetooth.

В некоторых ошибочных реализациях он думает, что Bluetooth все время передает, таким образом, полностью «отключая» WLAN, поэтому его отключение позволит WLAN снова работать.


802.11 Bluetooth сосуществование

Устройство 802.11 и Bluetooth могут создавать помехи друг другу, когда устройство 802.11 работает в диапазоне 2,4 ГГц. Все устройства Bluetooth работают в диапазоне 2,4 ГГц. В этом разделе описаны технические детали, касающиеся причин помех и решений, реализованных в драйверах, стека 802.11 и возможных будущих улучшений.

...

интерференция

Каждый канал 802.11 равен 20 каналам Bluetooth. Когда на устройстве Bluetooth включена связь, вы получите помехи, когда устройство Bluetooth переключится на любой из 20 каналов Bluetooth, эквивалентных вашему каналу 802.11. Даже если устройство Bluetooth переключается с максимально допустимой частотой 1600 импульсов в секунду, доступно только 79 каналов, поэтому с этой скоростью каждый канал будет использоваться примерно 20 раз в секунду.

Источник 802.11 Bluetooth сосуществование


Извлечение исходного кода:

/*
 * 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 для решения проблемы помех: wireless.wiki.kernel.org/en/users/Drivers/ … ; я что-то пропустил?
defvol
1
@rodowi Прочтите абзац, начинающийся с «В некоторых ошибочных реализациях»
DavidPostill