Mettre à jour
OpenWRT sur un Linksys WRT54GL
Voici une petite doc sur un classique : comment flasher le WRT54GL pour y mettre OpenWRT. En fait, c'est pas évident au premier abord, surtout qu'il n'y a pas beaucoup de documentation francophone.
Récupérer une image
Comment bien choisir son image d'OpenWRT, en fait après avoir pas mal tourné en rond dans le wiki, (qui n'est pas forcément à jour par rapport au système, mais ça viendra) les images qui vont bien sont :
- Pour White Russian, la version précédente : .../whiterussian/.../openwrt-wrt54g-squashfs.bin
- Pour Kamikaze, la version actuelle stable 7.09 : .../kamikaze/.../openwrt-wrt54g-2.4-squashfs.bin
- Pour Kamikaze, la dernière version 8.09_RC1 : .../kamikaze/.../openwrt-wrt54g-squashfs.bin
Avant la version 8.09_RC1, il n'y a pas de driver libre pour le wifi dans le noyau 2.6.
Flasher le routeur depuis l'interface web Linksys
La première chose à faire est de se connecter à l'interface web de gestion du routeur, il faut une adresse IP dans la plage 192.168.1.0/24, l'adresse du routeur étant 192.168.1.1 par défaut, par exemple :
# ifconfig eth1:1 inet 192.168.1.2 up
Pour installer une image, la première fois :
- Il faut connecter le cable sur un port ethernet de 1 à 4 sur le routeur.
- Aller sur http://192.168.1.1, on ne met pas de user, et “admin” comme mot de passe. Puis dans Administration > Firmware upgrade.
- Choisir l'image à uploader dans le routeur et faire upgrade. Le routeur se flashe et reboot tout seul, il faut attendre un peu et tenter la connection telnet ou web sur 192.168.1.1
Flasher le routeur par TFTP
Il faut d'abord installer un client TFTP, comme “atftp” :
# aptitude install atftp
Ensuite, il faut vérifier que le boot_wait est activé. Ce paramètre indique au routeur d'attendre de recevoir des réquêtes TFTP au boot, ce qui permet de pouvoir le flasher :
routeur# nvram show | grep boot_wait size: 2475 bytes (30293 left) boot_wait=on
Sinon, il faut l'activer, mais pour moi c'était déjà fait :
routeur# nvram set boot_wait=on routeur# nvram commit && reboot
Normalement, avec Kamikaze, on n'a pas besoin de trafiquer le nvram pour configurer le routeur.
Pour flasher le routeur :
- Débrancher l'alimentation du routeur
- Lancer la commande suivante :
atftp --trace --option "timeout 1" --option "mode octet" --put --local-file openwrt-wrt54g-squashfs.bin 192.168.1.1
- Brancher l'alimentation, le transfert TFTP doit commencer presque immédiatement
- A la fin, le routeur reboote tout seul, lorsqu'il est de nouveau disponible, c'est prêt.
Configuration basique
Le plus simple est d'aller sur l'interface graphique (http://192.168.1.1), la première fois il est demandé de mettre un mot de passe root. On peut ensuite se connecter en SSH, sinon c'est telnet. L'interface graphique permet de tout configurer, ça permet d'avoir quelque chose de fonctionnel très vite, les paramètres par défaut sont corrects.
Nettoyer la nvram
D'abord, il faut mettre un mot de passe root costaud et utiliser SSH.
Ensuite, on peut lancer les commandes suivantes pour nettoyer la nvram, quand le routeur est connecté au Net :
cd /tmp wget http://downloads.openwrt.org/people/kaloz/nvram-clean.sh chmod a+x nvram-clean.sh ./nvram-clean.sh nvram commit rm nvram-clean.sh
Le script de nettoyage m'a donné ça à la fin :
Before: size: 9603 bytes (23165 left) After: size: 2475 bytes (30293 left)
C'est toujours ça de gagné
Conclusion
L'opération est somme toute assez simple quand on a bien compris le principe et qu'on ne panique pas. Il est aussi important de récupérer la bonne image pour ne pas rendre le routeur inutile (quoiqu'il est beau avec ses antennes, mais de là à le transformer en objet décoratif…)
Le seul soucis de WRT54GL vient de l'espace disque disponible, surtout que les fichiers de configuration sont bien organisés. Refaire une image vraiment minimale devient vite nécessaire, pour s'amuser à réduire la taille du système au maximum.