Risolti i problemi di connessione Wifi; perché la mia "correzione" funziona?


15

Ho un laptop Samsung, con Ubuntu 15.04 installato, aggiornato fino al 13.10 ma non è questo il problema.

Mi sono connesso a innumerevoli reti wifi nel tempo senza problemi ... Cioè, fino a pochi giorni fa. Lavoro temporaneamente presso il cliente e non riesco a collegarmi a nessuna rete wifi. Tutte le reti sono state viste, non sono riuscito a stabilire una connessione ...

Poiché nessun altro, tranne me, aveva problemi, sapevo che il problema era da parte mia.

La mia carta è questa:

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

Utilizza il driver iwlwifi. Ed ecco cosa modinforiporta come opzioni:

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)

Per puro sospetto, ho modificato il file modprobe.d appropriato per aggiungere:

options iwlwifi bt_coex_active=0

e all'improvviso non ho più avuto problemi di connessione ...

Perché funziona? Cosa fa questa opzione?

Risposte:


15

Risolti i problemi di connessione WiFi, perché la mia "correzione" funziona?

Quando bt_coex_active è abilitato, impedisce l'interferenza bluetooth / wireless. Quando è disabilitato, consentirà una maggiore interferenza bluetooth / wireless.

  • bt_coex_active=1 (true) impedisce l'interferenza bluetooth / wireless.
  • bt_coex_active=0 (false) consente una maggiore interferenza bluetooth / wireless.

Il modo in cui la funzione funziona è che quando è acceso, il ricetrasmettitore wlan eviterà la trasmissione contemporaneamente al ricetrasmettitore bluetooth.

In alcune implementazioni buggy, pensa che il Bluetooth stia trasmettendo tutto il tempo in modo da "silenziare" completamente la WLAN, quindi disattivarla consentirà alla WLAN di funzionare di nuovo.


Coesistenza Bluetooth 802.11

Un dispositivo 802.11 e Bluetooth possono interferire tra loro quando il dispositivo 802.11 opera sulla banda a 2,4 GHz. Tutti i dispositivi Bluetooth funzionano nella banda da 2,4 GHz. Questa sezione documenta i dettagli tecnici relativi alle cause di interferenze e soluzioni implementate nei driver, nello stack 802.11 e ai possibili miglioramenti futuri.

...

interferenza

Ogni canale 802.11 equivale quindi a 20 canali Bluetooth. Quando la comunicazione è abilitata su un dispositivo Bluetooth, si otterranno interferenze quando il dispositivo Bluetooth passa a uno dei 20 canali Bluetooth equivalenti al proprio canale 802.11. Anche se un dispositivo Bluetooth salta alla frequenza massima consentita di 1600 salti di frequenza al secondo, ci sono solo 79 canali disponibili, quindi a questa frequenza ogni canale verrà utilizzato circa 20 volte al secondo.

Coesistenza Bluetooth 802.11 sorgente


Estratto del codice sorgente:

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


Ulteriori letture


Sono confuso quando dici che un valore di 0 aumenterà l'interferenza, perché è esattamente ciò che il wiki wireless su kernel.org suggerisce di fare per risolvere il problema dell'interferenza: wireless.wiki.kernel.org/it/users/Drivers/ ... ; mi sto perdendo qualcosa?
defvol

1
@rodowi Leggi il paragrafo che inizia "In alcune implementazioni con errori"
DavidPostill
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.