C'est devenu tellement habituel pour moi de me plaindre que les ordinateurs ne marchent pas que je devrais plutôt signaler les fois où quelque chose a — inexplicablement — marché. Aujourd'hui, il y en a eu deux.
La première, c'est le Wifi. C'est un peu malhonnête de dire que ça a marché pour dire que je n'ai passé que toute la journée à le faire marcher, mais, tout de même, ça a marché, et s'agissant du Wifi c'est quelque chose de vraiment exceptionnel.
Pour être plus précis, la carte Wifi de mon ordinateur (basée sur
un chipset Atheros AR2414) est potentiellement gérée par deux pilotes
différents sous Linux (deux pilotes dont,
évidemment, on comprend mal les
rapports de prime abord, surtout que ce sont les mêmes personnes
qui s'occupent des deux) : l'un, ancien, compliqué et plus trop
maintenu, s'appelle Madwifi
(et qui contient un blob binaire, c'est-à-dire qu'on n'a pas le source
de la totalité du pilote), et l'autre, censé être plus petit, plus
propre et complètement ouvert, basé sur une réécriture à peu près
complète des couches Wifi de Linux,
s'appelle ath5k.
Jusqu'à récemment, j'utilisais Madwifi (le vieux pilote, donc) : pour
des raisons mystérieuses et qui le resteront, Madwifi s'est mis a
marcher de moins en moins bien au fur et à mesure que le temps passait
(de temps en temps, le réseau cessait complètement de répondre), au
point que c'en était devenu vraiment insupportable. Donc j'avais bien
envie de passer à ath5k (le nouveau pilote). Malheureusement, ma
carte Wifi me sert de point d'accès, pas juste de station, et
le mode point d'accès (ou maître
) est ce que tous les pilotes
semblent implémenter en dernier (voire, jamais) : et ath5k
n'implémente officiellement pas encore ce mode point d'accès que
j'attends avec impatience à chaque nouvelle version du noyau (il sera
officiel dans les noyaux 2.6.31, donc dans environ quatre mois). Ou
alors, il faut chercher la toute toute dernière version de
l'arbre
de développement des pilotes Wifi : c'est ce que j'ai fini par
faire, pressé par mon poussinet qui voulait pouvoir utiliser un Wifi
correct, et donc je me retrouve avec un noyau
2.6.30-rc8~wireless-testing et l'inquiétude qu'il me claque entre les
doigts en détruisant mes systèmes de fichiers (et de fait, il me
crache des messages d'erreurs très inquiétants du style WARNING:
at fs/fs-writeback.c:292
__writeback_single_inode+0x4ab/0x4c0()
, que je vais prier pour
pouvoir ignorer parce que ça a l'air de vouloir dire que mes fichiers
vont exploser dans un temps très bref).
Évidemment, juste comme ça, ça n'a pas marché. Le poussinet arrivait à se connecter au Wifi géré par le nouveau pilote ath5k, mais mon Eee PC, нет, il n'arrivait pas à s'associer. J'ai un autre copain chez qui j'ai le même problème : mon Eee PC n'arrive pas à s'associer au Wifi de sa *box, alors que lui n'a pas de problème et que le même Eee arrive à utiliser plein d'autres réseaux. Ça m'a sérieusement énervé, alors j'ai décidé que je comprendrais ce mystère coûte que coûte : j'ai fait afficher les trames d'association et j'ai essayé de les interpréter même sans connaître les détails des protocoles IEEE 802.11b/g :
00000000 00 00 30 01 00 1b 11 14 d5 0f 00 22 43 00 6c 54 |..0........"C.lT| 00000010 00 1b 11 14 d5 0f 80 1f 11 04 03 00 00 0a 44 61 |..............Da| 00000020 76 69 64 6f 75 6e 65 74 01 08 82 84 8b 96 0c 12 |vidounet........| 00000030 18 24 32 04 30 48 60 6c dd 07 00 0c 43 06 00 00 |.$2.0H`l....C...| 00000040 00 01 00 00 0f ac 02 01 00 00 0f ac 04 01 00 00 |................| 00000050 0f ac 02 00 00 |.....| 00000055
(Oui, Davidounet
c'est le SSID de mon
Wifi.) Il manque les octets 30 14
(annonçant 0x14=20
octets de RSN IE) immédiatement avant
l'octet 0x41
! L'explication du problème était donc que
le Eee envoyait des trames d'association mal formées et que,
contrairement à Madwifi et certaines bornes d'accès qui, plus
tolérants, devaient se contenter d'ignorer ce qu'ils ne comprennaient
pas, le nouveau driver rejetait la trame complètement et il devenait
impossible de s'associer.
Le Wifi, c'est quelque chose de vraiment aléatoire, qui fonctionne uniquement quand les mânes de Maxwell sont de bonne humeur : je déteste ce truc, mais il faut admettre que, quand ça marche, c'est bien pratique. En l'occurrence, le driver incriminé sur le Eee PC, un driver écrit par le fabricant (Ralink), était visiblement porté à la va-vite depuis Windows, et il n'est sans doute pas surprenant qu'il fût buggué. J'ai fini par me rendre compte que quelqu'un avait déjà corrigé le problème et j'ai fini par réussir à associer mon Eee PC à mon Wifi qui, depuis, s'obstine à fonctionner correctement.
La deuxième chose qui a marché, c'est un stick récepteur TNT qu'un ami m'a passé. Là, c'est vraiment incompréhensible : ce genre de choses n'aurait pas dû être si simple à utiliser. Il doit y avoir anguille sous roche.