Problemas de conexión wifi resueltos; ¿Por qué funciona mi "arreglo"?

15

Tengo un portátil Samsung, con Ubuntu 15.04 instalado, actualizado desde 13.10, pero ese no es el problema.

Me he conectado a innumerables redes wifi a lo largo del tiempo sin problemas ... Es decir, hasta hace unos días. Estoy trabajando temporalmente en la casa de un cliente y no pude conectarme a ninguna red wifi. Se vieron todas las redes, simplemente no pude establecer una conexión ...

Como nadie más que yo tenía problemas, sabía que el problema estaba de mi parte.

Mi tarjeta es esta:

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

Utiliza el controlador iwlwifi. Y aquí está lo que modinfoinforma como opciones:

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 pura corazonada, modifiqué el archivo modprobe.d apropiado para agregar:

options iwlwifi bt_coex_active=0

y de repente ya no tuve problemas para conectarme ...

¿Por qué funciona esto? ¿Qué hace esta opción?

fge
fuente

Respuestas:

15

Problemas de conexión wifi resueltos, ¿por qué funciona mi "solución"?

Cuando bt_coex_active está habilitado, evita la interferencia bluetooth / inalámbrica. Cuando está deshabilitado, permitirá una mayor interferencia bluetooth / inalámbrica.

  • bt_coex_active=1 (verdadero) evita la interferencia bluetooth / inalámbrica.
  • bt_coex_active=0 (falso) permite una mayor interferencia bluetooth / inalámbrica.

La forma en que funciona la característica es que cuando está activado, el transceptor wlan evitará transmitir al mismo tiempo que el transceptor bluetooth.

En algunas implementaciones con errores, cree que el Bluetooth está transmitiendo todo el tiempo, lo que "silencia" la WLAN por completo, por lo que apagarla permitirá que la WLAN vuelva a funcionar.


802.11 coexistencia Bluetooth

Un dispositivo 802.11 y Bluetooth pueden interferir entre sí cuando el dispositivo 802.11 funciona en la banda de 2,4 GHz. Todos los dispositivos Bluetooth funcionan en la banda de 2,4 GHz. Esta sección documenta los detalles técnicos sobre las causas de interferencias y soluciones implementadas en los controladores, la pila 802.11 y posibles mejoras futuras.

...

Interferencia

Cada canal 802.11 equivale a 20 canales Bluetooth. Cuando la comunicación está habilitada en un dispositivo Bluetooth, obtendrá interferencia cuando el dispositivo Bluetooth salte a cualquiera de los 20 canales Bluetooth equivalentes a su canal 802.11. Incluso si un dispositivo Bluetooth salta a la frecuencia de frecuencia máxima permitida de 1600 saltos de frecuencia por segundo, solo hay 79 canales disponibles, por lo que a esta velocidad, cada canal se usará alrededor de 20 veces en un segundo.

Fuente 802.11 Coexistencia Bluetooth


Extracto del código fuente:

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

Fuente: iwl-core.c


Otras lecturas

DavidPostill
fuente
Me confundo cuando dices que un valor de 0 aumentará la interferencia, porque eso es exactamente lo que el wiki inalámbrico en kernel.org sugiere hacer para resolver el problema de la interferencia: wireless.wiki.kernel.org/en/users/Drivers/ ... ; ¿Me estoy perdiendo de algo?
defvol
1
@rodowi Lea el párrafo que comienza "En algunas implementaciones con errores"
DavidPostill