Test de ath9k
Afin d’être à jour avec le driver linux ath9k, j’ai décidé de le tester sur un laptop. J’ai utilisé une carte miniPCI AR5418 (MB72) pour ce test et un noyau wireless-testing (v2.6.32-rc7-43014-g505f756)). Je souhaitais utiliser cette carte afin de monitorer les réseaux 802.11n. Voici le résultat.
Tout d’abord, nous avons besoin de créer une interface en mode monitor avec :
# iw phy phy0 interface add mon0 type monitor
Ensuite, nous avons besoin de sélectionner le canal approprié, en utilisant la syntaxe ht40 afin d’être capble de voir les trames 802.11n avec les débits HT :
# iw dev mon0 set channel 100 ht40+
Ici, la signification de ht40+ versus ht40- n’est pas clair. Bien sur, cela dit que vous devez utiliser 40 MHz de bande passante, mais cela ne dit pas quelle combinaison est valide et quel espace de fréquence est utilisé.
Ensuite, nous avons juste besoin de lancer wireshark sur la nouvelle interface et cela devrait être OK. Cependant, les trames reçues ne sont pas correctement « unpadded ». « Padding » est quelque chose realisé par le matériel en général. Il pourrait être plus efficace d’aligner des zones de données sur une frontière de 4 octets par example. C’est le cas avec le matériel sans fil et les données 802.11. Mais comme les données 802.11 sont après l’entête 802.11, it peut être nécessaire d’ajouter 2 octets entre les deux. Cette opération est appellée « padding ». Comme le matériel réalise cette opération, le driver logiciel a besoin de réaliser exactement l’opposé. Comme chaque matériel sans fil peut réaliser une opération différente, chaque driver sans fil a besoin de faire une opération logicielle différente. Voici le patch qui corrige ça : ath9k: This patch fix RX unpadding for any received frame.
Ensuite, nous avons testé cette carte en mode station, comme une carte sans fil ordinaire. Nous avons testé uniquement avec des AP 802.11g. La carte a fonctionné correctement excepté sur un point : de temps à autre, le ping est bloqué pendant plusieurs secondes. Après avoir analysé le traffic avec un AP ouvert et une carte USB Zydas, nous avons trouvé que les requêtes ICMP perdues avaient le bit PowerSave a 1! Une correction rapide est de désactiver le PowerSave :
# iwconfig wlan0 power off
Une fois corrigé, nous avons été capable de transmettre à 20 Mbits sur le canal 1 (2412 MHz). C’est assez bien. Nous avons maintenant besoin de testé avec les débits 802.11n (appelés débits HT).