Problemas de conexão Wifi resolvidos; por que meu "conserto" funciona?

13

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

Liguei-me a inúmeras redes Wi-Fi ao longo do tempo sem problemas ... Isto é, até poucos dias atrás. Estou trabalhando temporariamente no local de um cliente e não consegui me conectar 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, eu 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 modinfo relata 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, modifiquei o arquivo modprobe.d apropriado para adicionar:

options iwlwifi bt_coex_active=0

e, de repente, eu não tive mais problemas em me conectar ...

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

    
por fge 06.06.2015 / 10:31

1 resposta

12

Problemas de conexão Wifi resolvidos, por que minha "correção" funciona?

Quando o bt_coex_active está ativado, ele impede a interferência sem fio ou Bluetooth. Quando desativado, permitirá maior interferência sem fio / Bluetooth.

  • bt_coex_active=1 (true) impede a interferência sem fio / Bluetooth.
  • bt_coex_active=0 (false) permite maior interferência sem fio / Bluetooth.

A maneira como o recurso funciona é que, quando ele está ligado, o transceptor wlan evita a transmissão ao mesmo tempo que o transceptor bluetooth.

Em algumas implementações com bugs, ele acha que o Bluetooth está transmitindo o tempo todo, "silenciando" a WLAN completamente, então desativá-la permitirá que a WLAN funcione novamente.

coexistência de 802.11 com Bluetooth

An 802.11 device and Bluetooth can interfere with each other when the 802.11 device operates on the 2.4 GHz band. All Bluetooth devices operate at the 2.4 GHz band. This section documents the technical details regarding the causes of interferences and solutions implemented in drivers, the 802.11 stack, and possible future enhancements.

...

Interferência

Each 802.11 channel then equals to 20 Bluetooth channels. When communication is enabled on an Bluetooth device you will get interference when the Bluetooth device hops on to any of the 20 Bluetooth channels equivalent to your 802.11 channel. Even if a Bluetooth device hops at the max allowed frequency rate of 1600 frequency hops per second there are only 79 channels available so at this rate each channel will be used around 20 times in a second.

Fonte coexistência com o Bluetooth 802.11

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

Outras leituras

por 06.06.2015 / 10:53