Jouer avec “La Fonera…” – 3ème partie : OpenWrt Kamikaze

Nous avons vu, dans la 2ème partie de « Jouer avec ‘La Fonera’ », comment activer ssh sur une Fonera, afin d’accéder au système de la bête.
Il est temps d’aller un peu plus loin et de « Flasher » complètement la Fonera avec une distribution vierge d’OpenWrt (ie non « tunée » par Fon)… En version Kamikaze pour être plus précis…
Pour plus d’infos sur Openwrt, Kamikaze et toultoutim, je vous invite à consulter Wikipedia ou directement le site officiel du projet.
Remarques :
- Après cette manipulation, notre Fonera contiendra un OS embarqué n’ayant plus aucun rapport avec Fon; elle sera donc complètement déconnectée du réseau communautaire FON et ne jouera plus son rôle initial de partage wifi.
- Fonera+ : OpenWrt Kamikaze en version stable actuelle (0.9) s’installe sur une fonera+, mais n’est pas complètement fonctionnel. Les derniers snapshots semblent être fonctionnels, je n’ai pas encore testé. Je vous renvoie pour plus d’infos sur le blog de notre amis Lefinnois.
Nous allons flasher la Fonera grace au Redboot de celle-ci. L’accès au Redboot via l’interface Ethernet est activé par défaut sur les versions récentes de la Fonera (220x). Les processeurs de la version 2100 devront utiliser le port série ou patcher le noyau et la configuration du redboot pour l’activer.
Cette procédure est très bien décrite sur ce blog.
La méthode est similaire à celle décrite dans l’article précédent, chapitre : La méthode par Redboot (Modèles 2200)
- Disposer d’un serveur tftp pour le téléchargement du nouveau firmware. Un bon tuto pour l’installation d’un serveur ftp est disponible pour Ubuntu sur le http://doc.ubuntu-fr.org.
- Télécharger la dernière version du noyau et du système pour le chip Atheros sur le site d’OpenWrt,
- Copier ces deux fichiers dans le répertoire racine du serveur tftp.
- Installer fping et perl-Net-Telnet,
- Récupérer le script perl redboot.pl,
Tout est prêt… C’est parti !
- Eteindre la fonera,
- Configurer une adresse IP en 192.168.1.x sur le PC,
# ifconfig eth0:1 192.168.1.254
- Lancer le script redboot,
$ ./perl redboot.pl 192.168.1.1
192.168.1.1 is unreachable
ICMP Host Unreachable from 192.168.1.254 for ICMP Echo sent to 192.168.1.1
ICMP Host Unreachable from 192.168.1.254 for ICMP Echo sent to 192.168.1.1
ICMP Host Unreachable from 192.168.1.254 for ICMP Echo sent to 192.168.1.1
192.168.1.1 is unreachable
- Rebrancher la Fonera,
ICMP Host Unreachable from 192.168.1.254 for ICMP Echo sent to 192.168.1.1
ICMP Host Unreachable from 192.168.1.254 for ICMP Echo sent to 192.168.1.1
192.168.1.1 is unreachable
192.168.1.1 is unreachable
192.168.1.1 is unreachable
192.168.1.1 is alive
-> == Executing boot script in 1.950 seconds - enter ^C to abort
<- ^C
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
RedBoot>
Nous avons maintenant la main sur le redboot.
- Paramétrer l’adresse IP du serveur (le tftp) et lancer l’initialisation,
RedBoot> ip_address -l 192.168.1.1/24 -h 192.168.1.254 IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0 Default server: 192.168.1.254 RedBoot> fis init About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: . RedBoot>
- Flasher le noyau :
RedBoot> lo -r -b %{FREEMEMLO} openwrt-atheros-2.6-vmlinux.lzma Using default protocol (TFTP) Raw file loaded 0x80040800-0x801007ff, assumed entry at 0x80040800
RedBoot> fi cr -e 0x80041000 -r 0x80041000 vmlinux.bin.l7
... Erase from 0xa8030000-0xa80f0000: ............
... Program from 0x80040800-0x80100800 at 0xa8030000: ............
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
- Un coup d’oeil sur l’espace disponible pour le système de fichier,
RedBoot> fis free 0xA80F0000 .. 0xA87E0000 - Petit calcul : 0xA87E0000 – 0xA80F0000 = 0x6F0000,
- Chargement et Flash :
RedBoot> lo -r -b %{FREEMEMLO} openwrt-atheros-2.6-root.squashfs Using default protocol (TFTP) Raw file loaded 0 x80040800-0x801607ff, assumed entry at 0x80040800 RedBoot> fi cr -l 0x6F0000 rootfs ... Erase from 0xa80f0000-0xa87e0000: ..................... ... Program from 0x80040800-0x80160800 at 0xa80f0000: .................. ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: . - Enfin, chargement du noyau et exécution pour booter la « nouvelle Fonera » :
RedBoot> fis load -l vmlinux.bin.l7 RedBoot> exec
Notre nouveau système OpenWrt tout fraîchement installé est maintenant accessible via telnet ou ssh.
Ne pas oublier ensuite de changer le mot de passe (passwd), configurer le réseau (/etc/config/network) et de mettre à jour la liste des paquets (ipkg update)
OpenWrt dispose de nombreux paquets, la commande « ipkg list » permet d’en avoir la liste…
Références :
- http://bulles.topgame.be/bubble/Kamikaze,
- http://openwrt.org,
- http://blog.coldtobi.de/blog/coldtobis-blog/la-fonera/2008/01/21/la-fonera-a-better-way-to-enable-redboot-via-telnet-ethernet-safely-howto
Laissez votre message après le bip...Biiiiip
Commentaires
J’ai pas mal trimé avant d’arriver à activer le redboot sur une 2100, mais finalement c’est passé…
Merci pour cette page !
~Gargamel~
Bonjour, j’ai installer avec « succes » openwrt
A chaque boot je dois me loguer sur redboot taper « fis load -l vmlinux.bin.l7″ puis « exec » sans cela ca ne boot pas
une idée du soucis ?
merci et bonne soirée
Bonjour,
Je pense que le script d’init n’est pas bon. Tu peux essayer de le réécrire depuis le redboot, avec la commande fconfig :
RedBoot> fconfig
Run script at boot: true
Boot script:
.. fis load -b 0×80100000 loader
.. go 0×80100000
Enter script, terminate with empty line
>> fis load -l vmlinux.bin.l7
>> exec
>>
Boot script timeout (1000ms resolution): 2
Use BOOTP for network configuration: false
Gateway IP address:
Local IP address: 192.168.1.1
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.1.254
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration – continue (y/n)? y
Ha merci c’etait effectivement ca, j’avais « fis load -l linux » a la place de « fis load -l vmlinux.bin.l7″ c’etait une partie restante de dd-wrt ![]()
merci et bonne soirée
Bonsoir,
j’ai flasher ma Fonera+ en suivant vos instructions. Tout à l’air de bien se passer.
Mais j’ai comme l’impression que rien ne se passe quand je boot la chose : pas d’adresse ip trouvée sur le réseau correspondant au nouveau système.
Je ne connais pas redBoot, aussi, je ne sais pas comment debugger tout ça.
Si vous avez une piste, je suis preneur.
Cordialement,
Jacques-Daniel PILLON
PS : Je ne sais pas quelle informations vous fournir. Si besoin, je peux vous envoyer le déroulement du flash.
Bonsoir,
Quelle version de Kamikaze utilisez-vous ? Je ne suis pas sûr que la version stable (7.09) détecte bien automatiquement les spécificités de la Fonera+ (switch et vlan)… Préférez une version SVN ou un snapshot.
http://downloads.openwrt.org/snapshots/atheros/
Ensuite, la fonera+ dispose d’une phase supplémentaire dans le script de boot, qu’il faut supprimer pour Kamikaze : En bref, il faut simplifier le script d’init. C’est ce qui est décrit un peu plus haut dans les commentaires.
Que ce passe-t’il quand vous chargez le noyau à la main ?
( fis load -l vmlinux.bin.l7 )
Sinon, la manip décrite pour la Fonera 2.0 ( http://www.jopa.fr/index.php/2.....c-openwrt/ ) devrait fonctionner avec une fonera+
S’il n’y a pas d’erreur lors du flash, il n’y a pas de raison…
Bonsoir,
je suis en train de tester avec une version snapshot en me basant sur la manip pour le Fonera2. La version que j’utilisais était la version 7.09.
J’ai bien modifier le script de boot.
Quand je charge le noyau à la main, redboot m’indique bien qu’il en charge l’image :
Image loaded from 0×80041000-0×80290085
Mais ensuite, lorsque le tape la commande exec, plus rien…
La seule différence (qui n’a aucune importance à mon sens) c’est que j’utilise http (option -m HTTP de lo) pour transférer les images en lieu et place de tftp.
Suite au prochain épisode…
Merci
Cordialement,
Jacques-Daniel PILLON
Re bonsoir,
je confirme que la procédure indiquée pour la Fonera2.0 fonctionne pour la Fonera+ en utilisant un snapshot atheros de openwrt (la version du 04-Nov-2008 05:57 en ce qui me concerne).
Merci à vous.
Cordialement,
Jacques-Daniel PILLON
Hello !
Je viens d’acquérir une fonera 2.0 end user (2202) (fin avril) et je galère
installer openWrt ! j’ai l’impression que RedBoot est désactivé. et je n’arrive pas à reflasher « RedBoot config » (mtd can’t open device for writing)
Aurais-tu quelques astuces à me confier !?
Je suis sous ubuntu, et j’ai essayé de me connecter à redboot en
ethernet et via un adaptateur USB->UART à base de cp2101 sur le port série de la fonera.
Pour l’heure je reste donc en flipper 2.2.5.0 en mode dev avec du ssh
En tous les cas merci de ton sens du partage ! C’est très instructif !



[...] Fonera, précédemment installée sous Kamikaze (cf ce billet) est prête à remplir une multitude de fonctions…(Chouette !). La première mission que je [...]