Problèmes de connexion Wifi résolus; pourquoi ma «correction» fonctionne-t-elle?

15

J'ai un ordinateur portable Samsung, avec Ubuntu 15.04 installé, mis à niveau depuis la version 13.10 mais ce n'est pas le problème.

Je me suis connecté à d'innombrables réseaux wifi au fil du temps sans problème ... c'est-à-dire jusqu'à il y a quelques jours. Je travaille temporairement chez un client et je n'ai pu me connecter à aucun réseau wifi. Tous les réseaux ont été vus, je n'ai tout simplement pas pu établir de connexion ...

Comme personne d'autre que moi n'a eu de problème, je savais que le problème était de mon côté.

Ma carte est la suivante:

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

Il utilise le pilote iwlwifi. Et voici ce qui se modinfoprésente comme des options:

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)

Par une intuition pure, j'ai modifié le fichier modprobe.d approprié pour ajouter:

options iwlwifi bt_coex_active=0

et tout d'un coup je n'ai plus eu de problèmes de connexion ...

Pourquoi ça marche? Que fait cette option?

fge
la source

Réponses:

15

Problèmes de connexion Wifi résolus, pourquoi mon "correctif" fonctionne-t-il?

Lorsque bt_coex_active est activé, il empêche les interférences Bluetooth / sans fil. Lorsqu'il est désactivé, il augmentera les interférences Bluetooth / sans fil.

  • bt_coex_active=1 (vrai) empêche les interférences Bluetooth / sans fil.
  • bt_coex_active=0 (faux) permet une augmentation des interférences Bluetooth / sans fil.

La façon dont la fonction fonctionne est que lorsqu'elle est activée, l'émetteur-récepteur WLAN évitera de transmettre en même temps que l'émetteur-récepteur Bluetooth.

Dans certaines implémentations de buggy, il pense que le Bluetooth transmet tout le temps "coupant" complètement le WLAN, donc le désactiver permettra au WLAN de fonctionner à nouveau.


Coexistence Bluetooth 802.11

Un périphérique 802.11 et Bluetooth peuvent interférer l'un avec l'autre lorsque le périphérique 802.11 fonctionne sur la bande 2,4 GHz. Tous les appareils Bluetooth fonctionnent dans la bande 2,4 GHz. Cette section documente les détails techniques concernant les causes des interférences et les solutions implémentées dans les pilotes, la pile 802.11 et les futures améliorations possibles.

...

Ingérence

Chaque canal 802.11 équivaut alors à 20 canaux Bluetooth. Lorsque la communication est activée sur un périphérique Bluetooth, vous obtiendrez des interférences lorsque le périphérique Bluetooth sautera sur l'un des 20 canaux Bluetooth équivalents à votre canal 802.11. Même si un appareil Bluetooth saute au taux de fréquence maximum autorisé de 1600 sauts de fréquence par seconde, il n'y a que 79 canaux disponibles, donc à ce rythme, chaque canal sera utilisé environ 20 fois en une seconde.

Coexistence Bluetooth source 802.11


Extrait de code source:

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

Source: iwl-core.c


Lectures complémentaires

DavidPostill
la source
Je suis confus quand vous dites qu'une valeur de 0 augmentera les interférences, car c'est exactement ce que le wiki sans fil sur kernel.org suggère de faire pour résoudre le problème d'interférence: wireless.wiki.kernel.org/en/users/Drivers/ … ; est-ce que je manque quelque chose?
defvol
1
@rodowi Lisez le paragraphe commençant "Dans certaines implémentations de buggy",
DavidPostill