Rozwiązane problemy z połączeniem Wi-Fi; dlaczego działa moja „poprawka”?

15

Mam laptopa Samsung z zainstalowanym Ubuntu 15.04, uaktualnionym aż do 13.10, ale to nie jest problem.

Z czasem połączyłem się z niezliczonymi sieciami Wi-Fi ... To znaczy jeszcze kilka dni temu. Tymczasowo pracuję u klienta i nie mogłem w ogóle połączyć się z żadną siecią Wi-Fi. Wszystkie sieci były widoczne, po prostu nie mogłem nawiązać połączenia ...

Ponieważ nikt inny oprócz mnie nie miał problemów, wiedziałem, że problem leży po mojej stronie.

Moja karta to:

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

Korzysta ze sterownika iwlwifi. A oto, co modinforaportuje jako opcje:

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)

Przez czysty przeczucie zmodyfikowałem odpowiedni plik modprobe.d, aby dodać:

options iwlwifi bt_coex_active=0

i nagle nie miałem już problemów z połączeniem ...

Dlaczego to działa? Co robi ta opcja?

fge
źródło

Odpowiedzi:

15

Problemy z połączeniem Wi-Fi rozwiązane, dlaczego moja „naprawa” działa?

Włączenie bt_coex_active zapobiega zakłóceniom Bluetooth / łączności bezprzewodowej. Po wyłączeniu pozwoli to na zwiększenie zakłóceń Bluetooth / łączności bezprzewodowej.

  • bt_coex_active=1 (prawda) zapobiega zakłóceniom Bluetooth / łączności bezprzewodowej.
  • bt_coex_active=0 (false) pozwala na zwiększenie zakłóceń Bluetooth / łączności bezprzewodowej.

Funkcja działa w ten sposób, że gdy jest włączona, transceiver wlan uniknie transmisji w tym samym czasie, co transiwer bluetooth.

W niektórych błędnych implementacjach wydaje się, że Bluetooth transmituje cały czas, przez co „całkowicie wycisza” sieć WLAN, więc jej wyłączenie pozwoli na ponowne uruchomienie sieci WLAN.


Współistnienie Bluetooth 802.11

Urządzenie 802.11 i Bluetooth mogą zakłócać się, gdy urządzenie 802.11 działa w paśmie 2,4 GHz. Wszystkie urządzenia Bluetooth działają w paśmie 2,4 GHz. W tej sekcji opisano szczegóły techniczne dotyczące przyczyn zakłóceń i rozwiązań zaimplementowanych w sterownikach, stosu 802.11 i możliwych przyszłych ulepszeń.

...

Ingerencja

Każdy kanał 802.11 odpowiada wówczas 20 kanałom Bluetooth. Gdy komunikacja w urządzeniu Bluetooth jest włączona, zakłócenia wystąpią, gdy urządzenie Bluetooth przejdzie do jednego z 20 kanałów Bluetooth odpowiadających kanałowi 802.11. Nawet jeśli urządzenie Bluetooth przeskakuje z maksymalną dozwoloną częstotliwością 1600 przeskoków częstotliwości na sekundę, dostępnych jest tylko 79 kanałów, więc przy tej prędkości każdy kanał będzie używany około 20 razy na sekundę.

Źródło współistnienia Bluetooth 802.11


Wyciąg kodu źródłowego:

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

Źródło: iwl-core.c


Dalsza lektura

DavidPostill
źródło
Jestem zdezorientowany, gdy mówisz, że wartość 0 zwiększy zakłócenia, ponieważ dokładnie to sugeruje bezprzewodowa wiki na kernel.org, aby rozwiązać problem zakłóceń: wireless.wiki.kernel.org/en/users/Drivers/ … ; czy coś mi brakuje?
defvol,
1
@rodowi Przeczytaj akapit zaczynający się od „W niektórych
błędnych