GNU/Linux & Mini-carte Wi-Fi Intel Centrino Advanced-N 6200

Comment améliorer les performances de sa mini-carte PCIe Wi-Fi INTEL Centrino Advanced-N 6200 sous les distributions GNU/Linux ?

  • 21/06/2018 : Mise à jour avec tests des noyaux Linux 4.13.x (et 4.15.x) en lieu et place du 4.10.x et toujours avec le firmware 9.221.4.1 build 25532 d’Intel (le plus récent)
  • 23/07/2018 : Voir vers la fin de l’article (avant ♦ Documentation Wi-Fi GNU/Linux à consulter) le changement de FAI (fournisseur d’accès à Internet) et de box, de Free à Orange et de la Freebox Server 6 à la Livebox 4

Tant que j’étais en ADSL avec des débits descendants < à 8 Mbps et montants < à 1 Mbps, avec un ping d’~ 45 ms, les performances de ma mini-carte Wi-Fi Intel étaient (semblaient) tout à fait correctes.

♦ Fibre optique (FTTH)

Je viens de passer à la Fibre Optique et les caractéristiques de ma connexion Internet ont explosées. Mes PCs branchés avec un câble Ethernet à ma Freebox v.6 donnent maintenant des débits moyens descendants d’~ 850 Mb/s (pour 1 Gb/s max.) et montants d’~ 330 Mb/s (pour 200 Mb/s max.), avec un ping d’~ 5 ms. 3 x WAOUH !

FREE FTTH (fibre optique) : changement de paradigme. Par rapport à mon ex-ADSL, débit descendant 100x >, débit montant 300x > et ping 10x <. WAOUH !

♦ INTEL Centrino Advanced-N 6200 Double bande

MAIS, je ne retrouve pas cette explosion des performances sur mon PC portable HP avec ma mini-carte PCIe Wi-Fi INTEL Centrino Advanced-N 6200 de 2010 !

Normal, vous me direz que le Wi-Fi est ≠ de l’Ethernet. Oui, mais après investigations il y a d’autres raisons…

IEEE 802.11

IEEE 802.11 est un ensemble de normes concernant les réseaux sans fil locaux (le Wi-Fi). Les principales déclinaisons du standard IEEE 802.11 sont : « a » (1999), « b » (1999), « g » (2003), « n » (2009), « ac » (2014) et « ax » (2019).

Caractéristiques de ma mini-carte PCIe Wi-Fi INTEL
  • Wi-Fi CERTIFIED : 802.11 a/b/g/n
  • Double Bande : 2.4 GHz / 5 Ghz
  • Flux TX/RX : 2×2
  • Vitesse maximale : 300 Mb/s (802.11 n) avec 2 flux
Caractéristiques de ma distribution GNU/Linux
joe@joe-mint ~ $ inxi -SGxx
System:
   Host: joe-mint Kernel: 4.10.0-42-generic x86_64 (64 bit gcc: 5.4.0)
   Desktop: Cinnamon 3.6.7 (Gtk 3.18.9-1ubuntu3.3) dm: mdm Distro: Linux Mint 18.3 Sylvia
Graphics:
   Card: NVIDIA GT216M [GeForce GT 230M] bus-ID: 01:00.0 chip-ID: 10de:0a28
   Display Server: X.Org 1.18.4 drivers: nvidia (unloaded: fbdev,vesa,nouveau)
   Resolution: 1920x1080@60.00hz
   GLX Renderer: GeForce GT 230M/PCIe/SSE2
   GLX Version: 3.3.0 NVIDIA 340.104 Direct Rendering: Yes

Ma Freebox v.6 r.1 (ne) supporte (que) le Wi-Fi 802.11 b/g/n (que) sur la bande des 2,4 GHz, et malheureusement pas de bande des 5 GHz (ni N ni AC). De ce fait les débits théoriques max. en 802.11 N / 2,4 GHz sont de 150 Mb/s (1 flux TX/RX) ou 300 Mb/s (2 flux TX/RX) mais qui nécessitent un environnement Wi-Fi très peu pollué.
Donc, avec ma nouvelle configuration fibre optique (FTTH) et mon Wi-Fi 802.11 n des deux côtés (PC et Freebox), je devrais avoir nettement mieux que les 8 Mbps / 1 Mbps max. que j’avais précédemment avec l’ADSL.

Pourtant les mesures (ne) donnent (que) d’étranges résultats
  • Débits descendants : +/- 10 Mb/s
  • Débit montants : +/- 18 Mb/s
  • Pings (latences) : +/- 7 ms

Les débits descendants (qui ne sont pas stables dans le temps) sont plus faibles que ceux montants, même si ils sont supérieurs à ceux que j’avais avec l’ADSL, mais ils sont très loin des 150 Mb/s théoriques !

Après des recherches sur Internet, je m’aperçois que le problème n’est pas nouveau et perdure depuis des années, qu’énormément d’utilisateurs des distributions GNU/Linux se plaignent des piètres performances de leur carte Wi-Fi 802.11 N (au moins celles d’Intel), et que ce méga problème n’est toujours pas résolu, obligeant chacun à bidouiller et y à passer des heures pour trouver non pas LA solution mais qu’une Rustine.

♦ Analyse du problème « 802.11 N » de la mini-carte Wi-Fi INTEL Centrino Advanced-N 6200

Les distributions comme Ubuntu et ses variantes-dérivées, Linux Mint et d’autres installent par défaut le pilote propriétaire iwlwifi (Wireless.Wiki.Kernel.org) pour supporter par exemple la mini-carte PCIe Wi-Fi INTEL Centrino Advanced-N 6200.
Au contraire, pour la distribution Debian, conformément à sa politique logiciels libres / non-libres, il faudra que l’utilisateur installe iwlwifi (Wiki Debian) depuis le dépôt des logiciels non-libres.

Vérification du fabricant et modèle des cartes réseaux installées
  • Dans un Terminal (Ctrl + Alt + T), on entre la ligne de commande : lspci | grep -i net
joe@joe-mint ~ $ lspci | grep -i net
02:00.0 Network controller: Intel Corporation Centrino Advanced-N 6200 (rev 35)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 03)
  • lspci – List all PCI devices.
Vérification de la configuration de la carte Wi-Fi Intel « wlo1 » (en fonction de votre distribution, ce nom de carte réseau sans fils peut être différent sur votre PC)
  • Dans un Terminal (Ctrl + Alt + T), on entre la ligne de commande : iwconfig wlo1
joe@joe-mint ~ $ iwconfig wlo1
wlo1 IEEE 802.11 ESSID:"King_of_the_Hill" 
Mode:Managed Frequency:2.472 GHz Access Point: F4:CA:xx:xx:xx:xx 
Bit Rate=54 Mb/s Tx-Power=15 dBm 
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=70/70 Signal level=-40 dBm 
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:98 Invalid misc:238 Missed beacon:0
  • iwconfig est similaire à ifconfig, mais est dédié aux interfaces réseau sans fil.

L’on constate que le Bit Rate max. n’est que de 54 Mb/s, c’est à dire que la carte Wi-Fi ne fonctionne qu’en 802.11 G et pas en N (150 ou 300 Mb/s). De plus même en G, la carte offre de très mauvaises et aléatoires performances.

Nota bene : Il faut signaler qu’avec le même PC et sa carte Wi-Fi Intel sous Windows connectée à la même Freebox, le 802.11 N fonctionne correctement avec des débits réels d’~ 50 Mb/s (1 flux TX/RX) aussi bien descendants que montants !

Mini-carte PCIe Wi-Fi – INTEL Centrino Advanced-N 6200 : configurée en 802.11 N (150 ou 300 Mbps max.) en action avec la Freebox v.6 r.1. C’est pas terrible !

Alors, où est le problème ?

Après différents et longs tests de configuration, aussi bien de ma carte Wi-Fi Intel que de ma Freebox v.6 qui n’ont rien donné de mieux, le responsable semble être l’association du noyau Linux avec le firmware propriétaire iwlwifi d’Intel. Et comme il n’existe pas de pilote libre, il va falloir continuer à investiguer du côté de Linux et d’Intel.

Vérification du couple noyau Linux et du firmware Intel
  • Dans un Terminal (Ctrl + Alt + T), on entre la ligne de commande : sudo lshw -C network
joe@joe-mint ~ $ sudo lshw -C network
[sudo] Mot de passe de joe : 
*-network 
description: Interface réseau sans fil
produit: Centrino Advanced-N 6200
fabriquant: Intel Corporation
identifiant matériel: 0
information bus: pci@0000:02:00.0
nom logique: wlo1
version: 35
numéro de série: 00:23:xx:xx:xx:xx
bits: 64 bits
horloge: 33MHz
fonctionnalités: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=4.10.0-42-generic firmware=9.221.4.1 build 25532 ip=192.168.2.29 latency=0 link=yes multicast=yes wireless=IEEE 802.11
ressources: irq:31 mémoire:da100000-da101fff

Ici, le driver iwlwifi est composé du noyau Linux 4.10.0-42-generic qui fait appel au firmware Intel 9.221.4.1 build 25532 (iwlwifi-6000-ucode-9.221.4.1.tgz pour Intel Centrino Advanced-N 6200 & Centrino Ultimate-N 6300 et un noyau Linux ≥ 2.6.30 !) qui est bien le plus récent pour cette carte Wi-Fi.

Nota bene : J’ai fait des essais concluants avec deux noyaux Linux plus récents, les 4.13.x et 4.15.x et toujours avec le même firmware Intel, et là les résultats sont nettement meilleurs, enfin proches de ceux escomptés.

Il y a donc deux possibilités pour vraiment améliorer les performances de sa carte Wi-Fi Intel « N » :
• une « Rustine » sans risque simple à mettre en œuvre, et
• une « Solution » plus efficace mais aussi plus risquée…

♦ Une « Rustine » pour améliorer les performances des cartes Wi-Fi INTEL Centrino « N »

Pour certaines cartes Wi-Fi d’Intel, l’association Noyau Linux / Firmware propriétaire « iwlwifi » d’Intel est « boguée de chez boguée » pour le 802.11 N et cela depuis de trop longues années. Et jusqu’à très récemment, rien n’a été fait par Linux/Intel pour résoudre ce méga problème ultra connu !

Pour palier à cette situation, il faut tout simplement, mais malheureusement, désactiver le mode 802.11 N de sa carte Wi-Fi Intel pour forcer le mode 802.11 G, comme ici pour ma mini-carte PCIe Intel Centrino Advanced-N 6200.

Pour ce faire, il faut créer ou modifier (en fonction de votre distribution) le fichier de configuration « iwlwifi-disable11n.conf » avec les droits du super-utilisateur.

Création ou modification du fichier « iwlwifi-disable11n.conf »
  • Dans un Terminal (Ctrl + Alt + T), on entre la ligne de commande :
      sudo xed /etc/modprobe.d/iwlwifi-disable11n.conf
    NB : « xed » est l’éditeur de texte de Linux Mint. Si une autre distribution est utilisée, remplacer xed par le nom de l’éditeur de texte de celle-ci.
  • Puis on ajoute à la fin du fichier la ligne : options iwlwifi 11n_disable=1
    NB : Si le fichier de configuration existe et contient déjà des commandes, ne pas les modifier et bien ajouter la nouvelle ligne de commande à la fin du fichier.
  • On sauvegarde le fichier et l’on redémarre sa distribution.
Et voila, cette fois les mesures de débits sont enfin cohérentes, mais adieu au « N » par défaut (car bogué de chez bogué) et bonjour qu’au « G » (mais) stable
Connexion Internet
FTTH / Carte Wi-Fi
802.11 « N »
bogué 😕
802.11 « G »
forcé 😎
Commentaires
Noyau Linux
4.10.x 4.10.x est bogué
Débits descendants +/- 10 Mb/s +/- 25 Mb/s nette amélioration
Débit montants +/- 18 Mb/s +/- 20 Mb/s sensiblement identique
Pings (latences) +/- 7 ms +/- 5 ms équivalent

Ces débits Internet en Wi-Fi « G » sont équivalents à ceux que l’on obtient avec une connexion VDSL (Very-high-bit-rate Digital Subscriber Line), un ADSL2+ (Asymmetric Digital Subscriber Line) amélioré, en partie grâce à la connexion FTTH (fibre optique jusqu’à l’abonné) entre la Freebox v.6 r.1 et le NRO (nœud de raccordement optique), ici le 76540ROA situé à Rouen.

Mini-carte PCIe Wi-Fi – INTEL Centrino Advanced-N 6200 : configurée en 802.11 G (54 Mbps max.) en action avec la Freebox v.6 r.1. C’est nettement mieux !

♦ La « SOLUTION » pour améliorer durablement les performances des cartes Wi-Fi INTEL Centrino « Advanced-N » 6200

Si votre distribution GNU/Linux n’a pas au moins le noyau Linux 4.13.x, il faudra le mettre à jour !

Les procédures sont différentes et plus ou moins complexes en fonction des distributions. Ici sous Linux MINT 18.3, c’est plutôt simple et sans trop de risques.
  • Menu MINT -> Administration
  • Gestionnaire de mises à jour -> Menu Vue -> Noyaux Linux
  • ATTENTION, avant d’aller plus loin, lisez d’abord l’Aide sur la procédure à suivre et les risques potentiels encourus !
  • Bouton AIDE -> Et seulement après sa lecture -> Bouton Continuer
  • Puis, sélectionner le plus récent noyau Linux dans la série 4.13 ou 4.15 -> Et enfin, suivre les indications à l’écran
  • À la fin de la procédure, Relancer Linux MINT

Nota bene : Avec les noyaux Linux ≥ 4.13.x, il n’est plus nécessaire de créer et/ou modifier le fichier de configuration « iwlwifi-disable11n.conf ».

Et voila, cette fois les mesures de débits réalisées dans les mêmes conditions sont enfin cohérentes avec le « N » par défaut !
Connexion Internet
FTTH / Carte Wi-Fi
802.11 « N »
bogué 😕
802.11 « G »
forcé 🙂
802.11 « N »
par défaut 😎
Commentaires
Noyau Linux
4.10.x 4.10.x 4.13.x/4.15.x le cœur du problème
Firmware Intel
9.221.4.1
build 25532
9.221.4.1
build 25532
9.221.4.1
build 25532
le plus récent
Débits descendants +/- 10 Mb/s +/- 25 Mb/s +/- 45 Mb/s nettes améliorations
Débit montants +/- 18 Mb/s +/- 20 Mb/s +/- 23 Mb/s sensiblement identiques mais toujours mal gérés
Pings (latences) +/- 7 ms +/- 5 ms +/- 10 ms +/- équivalents

Depuis quelques jours le Ping a +/- doublé même avec un serveur proche comme celui du Val-de-Reuil. Je verrai si cela revient à la normale dans les prochains jours.

Mini-carte PCIe Wi-Fi – INTEL Centrino Advanced-N 6200 : l’utilisation du noyau Linux 4.13.x (idem pour 4.15.x) au lieu du 4.10.x améliore nettement les performances de débits en configuration par défaut 802.11 N !

À savoir qu’avec des cartes Wi-Fi 802.11 n plus récentes l’on obtient encore de bien meilleurs résultats.

Mini-carte PCIe Wi-Fi – INTEL Centrino Advanced-N 6200 : configuration par défaut en 802.11 N mais avec noyau Linux 4.13.x en action avec la Freebox v.6 r.1. C’est nettement mieux !

Avec des cartes Wi-Fi 802.11 n plus récentes, l’IEEE 802.11 décline aussi son protocole, ici ce serait a/b/g/n.

Mini-carte PCIe Wi-Fi – INTEL Centrino Advanced-N 6200 : avec le noyau Linux 4.13.x (idem pour 4.15.x) au lieu du 4.10.x le RX (réception) et le TX (transmission) affichent maintenant les débits théoriques que l’on attend du Wi-Fi 802.11 N !

23/07/2018 : de Free à Orange !

Nota bene : Plus de 7 semaines après la rédaction de cet article, je reviens en très grande partie sur mes conclusions ci-dessus, concernant le noyau Linux et le pilote Intel, car elles avaient été faites en utilisant la Freeboox Révolution v.6 r.1 de Free. Or en utilisant la Livebox 4 d’Orange mes nouvelles mesures et maintenant mes conclusions sont radicalement différentes.

C’est la carte Wi-Fi B/G/N à 2,4 GHz de la Freebox Server 6 r.1 de Free qui est complètement pourrie – « has been » !

Orange, Livebox, FTTH (100% fibre) et Wi-Fi sur Métropole Rouen Normandie – 15/07/2018

♦ Documentation Wi-Fi GNU/Linux à consulter

  • Existing Linux Wireless drivers (all manufacturers) – Wireless.Wiki.Kernel.org
    We currently have a fair amount of working drivers that cover most of the available wireless networking cards. However, they don’t implement all features and may have some issues, due to various reasons like companies not providing specs. Below is an alphabetically sorted list of drivers and what they currently can and can’t do.
  • Comparison of open-source wireless drivers – Wikipedia.org
    Wireless network cards for computers require control software to make them function (firmware, device drivers). This is a list of the status of some open-source drivers for 802.11 wireless network cards…
  • iwconfig configure une interface réseau sans-fil (wireless). Il est similaire à ifconfig, mais est dédié aux interfaces réseau sans fil – Manuel du programmeur Linux sur ManPages de Debian

♦ Trois utilitaires graphiques pour votre Wi-Fi / environnement sans fils

Pour notre plus grand bonheur, ils sont disponibles dans la Logithèque de notre distribution GNU/Linux préférée.

LinSSID

L’utilitaire LinSSID inspecte votre réseau sans-fil et ceux environnants. Il est basé sur l’idée de son frère aîné « inSSiDer » (pour les Fenêtres propriétaires) mais écrit depuis zéro. Si vous avez un souci de performance avec votre réseau Wi-Fi, LinSSID est l’utilitaire Wi-Fi libre et gratuit qu’il vous faut sous GNU/Linux !

LinSSID vous aide à avoir une installation Wi-Fi plus performante en analysant votre réseau local et la force du signal dans chaque pièce, vous permet de déterminer les meilleurs paramètres pour votre routeur, et enfin mesure la performance réelle des réseaux Wi-Fi environnants afin de vous permettre de peaufiner vos réglages pour obtenir le plus des services Internet disponibles chez vous.

LinSSID 2.7 : INTEL Centrino Advanced-N 6200 Double bande sous Linux Mint 18.3

WiFi Radar

WiFi Radar est un utilitaire Python / PyGTK2 pour gérer les profils Wi-Fi sous GNU/Linux.

Il vous permet de rechercher les réseaux disponibles autour de vous et de créer des profils pour vos réseaux préférés. Vous pouvez faire un glisser/déposer de vos réseaux préférés pour organiser la priorité du profil. WiFi Radar devrait fonctionner avec n’importe quelle interface « iwconfig ».

WiFi Radar 2.0 : INTEL Centrino Advanced-N 6200 Double bande sous Linux Mint 18.3

WaveMon

WaveMon devrait fonctionner (mais avec des fonctionnalités variables) avec tous les périphériques qui sont supportés par le noyau Linux.

WaveMon est une application de monitoring de périphériques sans fil qui vous permet de surveiller les niveaux de signal et de bruit, les statistiques sur les paquets, la configuration des périphériques et les paramètres réseau de votre matériel réseau sans fil (Wi-Fi).

NB : Après installation, WaveMon se lance depuis un Terminal avec les droits du super-utilisateur (sudo wavemon).

WaveMon 0.8 : INTEL Centrino Advanced-N 6200 Double bande sous Linux Mint 18.3