Probleme mit der WLAN-Verbindung behoben; Warum funktioniert mein Fix?

15

Ich besitze einen Samsung-Laptop mit Ubuntu 15.04, der von 13.10 auf den neuesten Stand gebracht wurde, aber das ist nicht das Problem.

Ich habe mich im Laufe der Zeit ohne Probleme mit unzähligen WLAN-Netzwerken verbunden ... Das heißt, bis vor ein paar Tagen. Ich arbeite vorübergehend bei einem Kunden und konnte überhaupt keine Verbindung zu einem WLAN-Netzwerk herstellen. Alle Netzwerke wurden gesehen, ich konnte einfach keine Verbindung herstellen ...

Da außer mir niemand Probleme hatte, wusste ich, dass das Problem an meinem Ende war.

Meine Karte ist diese:

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

Es verwendet den iwlwifi-Treiber. Und hier ist, was modinfoals Optionen berichtet:

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)

Aus reinen Gründen habe ich die entsprechende Datei modprobe.d geändert und hinzugefügt:

options iwlwifi bt_coex_active=0

und plötzlich hatte ich keine probleme mehr mit dem verbinden ...

Warum funktioniert das? Was macht diese Option?

fge
quelle

Antworten:

15

Probleme mit der WLAN-Verbindung behoben, warum funktioniert mein "Fix"?

Wenn bt_coex_active aktiviert ist, werden Bluetooth- / Funkstörungen verhindert. Wenn es deaktiviert ist, werden vermehrte Bluetooth- / Funkstörungen zugelassen.

  • bt_coex_active=1 (true) verhindert Bluetooth- / Funkstörungen.
  • bt_coex_active=0 (false) ermöglicht erhöhte Bluetooth- / Funkstörungen.

Die Funktionsweise dieser Funktion besteht darin, dass der WLAN-Transceiver nicht gleichzeitig mit dem Bluetooth-Transciever sendet, wenn er eingeschaltet ist.

In einigen fehlerhaften Implementierungen wird angenommen, dass das Bluetooth die ganze Zeit sendet, wodurch das WLAN vollständig "stummgeschaltet" wird. Wenn Sie es also ausschalten, kann das WLAN wieder funktionieren.


802.11 Bluetooth-Koexistenz

Ein 802.11-Gerät und Bluetooth können sich gegenseitig stören, wenn das 802.11-Gerät im 2,4-GHz-Band arbeitet. Alle Bluetooth-Geräte arbeiten im 2,4-GHz-Band. In diesem Abschnitt werden die technischen Details zu den Ursachen von Interferenzen und in Treibern implementierten Lösungen, zum 802.11-Stack und zu möglichen zukünftigen Verbesserungen dokumentiert.

...

Interferenz

Jeder 802.11-Kanal entspricht dann 20 Bluetooth-Kanälen. Wenn die Kommunikation auf einem Bluetooth-Gerät aktiviert ist, werden Sie gestört, wenn das Bluetooth-Gerät auf einen der 20 Bluetooth-Kanäle wechselt, die Ihrem 802.11-Kanal entsprechen. Selbst wenn ein Bluetooth-Gerät mit der maximal zulässigen Frequenz von 1600 Frequenzsprüngen pro Sekunde springt, stehen nur 79 Kanäle zur Verfügung. Bei dieser Frequenz wird jeder Kanal ungefähr 20 Mal pro Sekunde verwendet.

Quell- 802.11-Bluetooth-Koexistenz


Quellcode-Auszug:

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

Quelle: iwl-core.c


Weitere Lektüre

DavidPostill
quelle
Ich bin verwirrt, wenn Sie sagen, dass der Wert 0 die Interferenz erhöht, denn genau das schlägt das kabellose Wiki auf kernel.org vor, um das Interferenzproblem zu lösen: wireless.wiki.kernel.org/en/users/Drivers/ … ; Vermisse ich etwas?
Defvol
1
@rodowi Lesen Sie den Absatz mit dem Titel "In einigen Buggy-Implementierungen"
DavidPostill