Hier, j'ai tué mon routeur et je l'ai ressucité. Et la première opération a été beaucoup plus rapide que la deuxième...

Tout a commencé quand j'ai vu que la métrologie de mon routeur Linksys WRT54G avait encore foiré. J'utilise un firmware tierce-partie pour le routeur, Linksys a utilisé un code GPL et par conséquent publie le code source de son logiciel interne. Et des gens prennent cette base pour l'améliorer. Ce qui est le cas du firmware que j'utilise. Il permet entre autres d'augmenter la puissance des antennes, et de supporter le SNMP (merci Wikipedia). Et j'utilise mon serveur et MRTG pour relever les mesures de trafic sur ma connexion Internet.

Mais hier, j'ai vu que le relevé MRTG était bloqué. J'ai pas encore bien saisi le problème, je ne sais pas si c'est le deamon MRTG qui meurt ou si c'est le snmpd du routeur qui part en vrille (je soupçonne le routeur, vu que MRTG rafraîchit la page). J'ai relancé MRTG, et j'ai relancé tous les services du routeur, mais ça ne marchait toujours pas.

Dans ce cas, la solution simple est de redémarrer le routeur en débranchant/rebranchant l'alimentation (pas d'interrupteur sur ce genre d'appareil). Mais hier soir, je me suis dit que je n'avais peut-être pas besoin de métrologie sur ma ligne, et que la portée des antennes avait l'air bonne avant l'amplification. En plus, le firmware alternatif que j'utilise a une ou deux versions majeures de retard par rapport au firmware officiel. Et le dit firmware apporte le support du WPA2, ce qui peut être intéressant.

Donc je saute le pas, et je me décide à mettre à jour le routeur avec la dernière version. Or je me rends compte que le site français propose une version 3 alors que le site américain propose une 4. Mon côté bleeding edge oblige, je choppe le firmware américain (je pense que le matériel est identique pour tous les pays, mais que le logiciel est différent pour coller aux diverses régulations et législations des divers pays).

Sans peur, je lance la mise à jour à partir de mon ordinateur, par le réseau sans fil. Grave erreur. Au bout d'un moment, l'interface d'administration web du routeur me gratifie d'un cinglant Upgrade are failed (ça doit être de l'"Anglais (Taiwan)"), et Windows me dit qu'il ne peut plus se connecter au réseau sans fil... 😕

Je vais regarder le routeur dans son placard. En effet, sa diode WLAN est éteinte, et la diode Power clignote bizarrement. Ça ressemble à SOS en morse... 😕

A ce point de mon histoire, je dispose d'un joli presse-papiers noir et mauve à 75 €... Et plus de connexion Internet. Panique ("Ah merde"). Rapide reprise de soi ("Il doit y avoir un moyen de le reflasher"). Questionnement ("Mais j'ai pas le net, là ?!"). Ruse ("Ah oui, mais j'ai des lignes de secours ! 😈").

J'ai déjà parlé de cette possibilité de connexion alternative ici. Mais là, c'est la merde, ça marche plus. On dirait que le mec a compris comment sécuriser sa borne... Catastrophe (mais en même temps c'est bien, son réseau n'est plus ouvert à tous). Je retourne voir mon routeur braindead au cas où un miracle se serait produit. Et là je me rends compte que je suis d'une bêtise immense : c'est le routeur que j'ai tué, pas le modem ! Donc j'ai encore une connexion Internet, il suffit que je me connecte directement au modem !

Sitôt dit, sitôt fait. Je branche mon valeureux PowerBook sur le modem, je me connecte en PPPoE et hop, je suis sur le net. Je recherche des docs sur les mises à jour de WRT54G foirés. Je trouve une page où un mec explique comment ouvrir sa borne version 1.1, faire contact sur les pattes d'une puce et le forcer en mode fail-safe, c'est-à-dire avec un système de base, prêt à recevoir un fichier de firmware en TFTP.

Je me dis que c'est un peu violent, je continue donc à chercher. Je trouve cette autre page. Le mec a eu à peu près mon expérience. Mais en lisant bien, je découvre que le clignotement "SOS" indique que le routeur n'est pas mort, mais qu'il est prêt à recevoir un fichier par TFTP !

Plein d'espoir, je me lance dans l'opération, et en effet, le routeur répond au pings sur son adresse par défaut ! Je me connecte en TFTP, et je lui envoie le fichier du firmware qu'il avait avant que je le foire (le bin, c'est pour dire qu'il faut envoyer en binaire) :

tftp> bin
tftp> put wfb2226tp.bin

Transfer timed out.

NO ! Je panique. Le flash ne marche pas... Je reprends les docs que j'ai trouvées. Et le mec de la deuxième page dit que : "More research reveals that “sometimes” the routers can be “picky” about what firmware was on them previously and, as such, prevent some things from functioning correctly." Et c'est ça qui me tue : j'ai essayé de le flasher avec le firmware qui était dessus, justement !

Je me rebranche sur le net, et je télécharge la dernière version du site Linksys France. No go... Là, je suis assez désespéré, et vu que j'ai rien à perdre, je vais sur le FTP de Linksys et je télécharge TOUS les firmwares pour WRT54G européens. De la version 1.02.1 à 3.03.9. Je me dis que le routeur veut peut-être son firmware d'origine d'usine (bien que je ne sais pas comment il s'en souviendrait). Mais je ne me rappelle pas de la version. Je me rappelle que c'est une 1, mais j'ai des 1.0x, une 1.3x et une 1.4x. Je me dis que j'ai dû avoir une 1.x récente, je tente la 1.4x. No go... 🙁 Et ce malgré la correction de ma ligne de commande pour l'envoi binaire du TFTP de Mac OS X. Faut écrire binary en entier. Je suppose que bin tout court peut marcher, mais l'aide de TFTP mentionne binary en toutes lettres, je suis le mode d'emploi.

Soudain, j'ai un trait de génie : je tente la version officielle la plus proche de mon firmware alternatif, la 2.02.7. Bingo, pas de timeout ! Mais la borne ne redémarre pas... Je retente le flash. Si tout va bien elle doit redémarrer et reprendre ses opérations normales. Pas de timeout, mais la diode Power clignote toujours... Je tente une autre version, timeout... Je suis sur le point de redémarrer la borne quand je vois que WLAN s'est allumé et clignote ! La borne revit ! 😀 En fait, ma dernière tentative était dans le vent, la borne redémarrait déjà. D'où le timeout.

J'avais pas dû attendre assez longtemps la première fois... En tous cas, la borne est repartie, et je l'ai reflashée comme elle était avant l'incident. Et tout marche comme avant.

Je ne sais pas précisément ce qui a causé ça. Soit c'est le fait d'envoyer le firmware en sans fils, ce qui a corrompu le fichier, soit j'ai envoyé une version incompatible avec l'appareil. En tous cas, le routeur marche, et j'ai évité d'en racheter un. Ouf.