Problemas de conexão Wi-Fi resolvidos; por que minha “correção” funciona?

15

Eu tenho um laptop Samsung, com o Ubuntu 15.04 instalado, atualizado a partir da 13.10, mas esse não é o problema.

Conectei-me a inúmeras redes wifi ao longo do tempo sem problemas ... Ou seja, até alguns dias atrás. Estou trabalhando temporariamente na casa de um cliente e não consegui conectar-me a nenhuma rede wifi. Todas as redes foram vistas, eu simplesmente não consegui estabelecer uma conexão ...

Como ninguém além de mim tinha problemas, sabia que o problema estava do meu lado.

Meu cartão é este:

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

Ele usa o driver iwlwifi. E aqui está o que modinforelata como opções:

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)

Por um palpite puro, modifiquei o arquivo modprobe.d apropriado para adicionar:

options iwlwifi bt_coex_active=0

e de repente eu não tinha mais problemas para conectar ...

Por que isso funciona? O que essa opção faz?

fge
fonte

Respostas:

15

Problemas de conexão Wi-Fi resolvidos, por que minha "correção" funciona?

Quando bt_coex_active está ativado, evita interferências bluetooth / wireless. Quando desativado, permitirá maior interferência bluetooth / wireless.

  • bt_coex_active=1 (true) evita interferências bluetooth / wireless.
  • bt_coex_active=0 (falso) permite maior interferência Bluetooth / sem fio.

A maneira como o recurso funciona é que, quando ligado, o transceptor wlan evitará transmitir ao mesmo tempo que o transceptor bluetooth.

Em algumas implementações de buggy, ele acha que o Bluetooth está transmitindo o tempo todo, "silenciando" completamente a WLAN, portanto, desligá-lo permitirá que a WLAN funcione novamente.


Coexistência Bluetooth 802.11

Um dispositivo 802.11 e Bluetooth podem interferir um com o outro quando o dispositivo 802.11 opera na faixa de 2,4 GHz. Todos os dispositivos Bluetooth operam na faixa de 2,4 GHz. Esta seção documenta os detalhes técnicos sobre as causas das interferências e soluções implementadas nos drivers, na pilha 802.11 e possíveis aprimoramentos futuros.

...

Interferência

Cada canal 802.11 é igual a 20 canais Bluetooth. Quando a comunicação é ativada em um dispositivo Bluetooth, você recebe interferências quando o dispositivo Bluetooth passa para qualquer um dos 20 canais Bluetooth equivalentes ao seu canal 802.11. Mesmo que um dispositivo Bluetooth salte na taxa de frequência máxima permitida de 1600 saltos por segundo, existem apenas 79 canais disponíveis; portanto, nessa taxa, cada canal será usado cerca de 20 vezes em um segundo.

Coexistência Bluetooth 802.11 de origem


Extrato do código-fonte:

/*
 * 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)
 */

Fonte: iwl-core.c


Leitura adicional

DavidPostill
fonte
Estou confuso quando você diz que um valor 0 aumentará a interferência, porque é exatamente o que o wiki sem fio no kernel.org sugere para resolver o problema de interferência: wireless.wiki.kernel.org/en/users/Drivers/ ... ; estou esquecendo de algo?
Defvol
1
@rodowi Leia o parágrafo iniciando "Em algumas implementações de buggy"
DavidPostill