Fonera et le firmware alternatif DD-WRT
La fonera est le routeur utilisé par la communauté FON. Le routeur est livré avec un firmware réalisé par FON et basé sur OpenWRT.
On peut reflasher un firmware alternatif sur le routeur, comme DD-WRT.
On va voir comment le faire et cela sans ouvrir la Fonera et sans utiliser un cable série branché sur le port JTAG de la fonera.
Pré-requis
Pour réaliser cette mise-à-jour, on va utiliser un cable rj45 croisé pour se connecter directement sur la fonera. Une fois connecté, il faut configurer sa connexion réseau avec l'IP 169.254.255.2 (la fonera ayant 169.254.255.1).
Il faut ensuite un serveur tftp. Sous debian, on peut en installer un avec un simple apt-get install tftpd-hpa
Il faut aussi un serveur HTTP (comme apache par exmple).
Il faut ensuite télécharger les logiciels suivants :
- openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma et out.hex et les copier dans un répertoire accessible par le serveur HTTP
- la dernière version de root.fs et vmlinux.bin.l7 de DD-WRT et les copier à la racine du serveur TFTP (/var/lib/tftpboot dans le cas du serveur tftpd-hpa sous Debian).
Firmware FON
On doit avoir une version qui permet d'ouvrir la connexion ssh vers la FON. Pour ma part, j'ai utilisé les hack pour la version 0.7.1r1.
Si votre FON ne possède pas cette version :
- plus ancienne, regarder sur Internet pour voir s'il n'y a pas un hack pour votre version ou alors upgradé vers la version 0.7.1r1
- une version 0.7.1r2 : si votre FON est arrivée directement avec cette version, il va falloir attendre le hack pour cette version. Si votre FON s'est mis à jour, alors vous allez pouvoir revenir en arrière en faisant un reset de la fonera : il faut débrancher la FON, appuyer sur le bouton reset, rebrancher la FON et maintenir le bouton reset pendant au moins 10 secondes.
Pour vérifier la version de votre firmware, il suffit de se connecter sur http://169.254.255.1/ en se branchant sur le port Ethernet de la fonera.
Ouvrir le SSH
Pour cela on va utiliser les 2 fichiers step1.html et step2.html. Il suffit de les ouvrir sous un navigateur et de valider dans l'ordre step1.html puis step2.html (ces 2 fichiers utilisent l'IP de la fonera pour une connexion par le port RJ45).
On peut ensuite se connecter sur la fonera :ssh root@169.254.255.1
root@169.254.255.1's password: (le mot de passe est admin)
Il faut valider le démarrage du démon ssh à chaque reboot :mv /etc/init.d/dropbear /etc/init.d/S50dropbear
et modifier le firewall en décommentant les 2 dernières lignes dans /etc/firewall.user :### Open port to WAN
## -- This allows port 22 to be answered by (dropbear on) the router
iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT
iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT
Flasher
Il faut se conecter sur la fonera en ssh (ssh root@169.254.255.1).
On va remplacer le noyau de la fonera :cd /tmp
(J'ai copié mes fichiers dans /var/www/Fonera donc adapter l'URL en fonction de la localisation de vos fichiers).
wget http://169.254.255.2/Fonera/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7
L'écriture du noyau va se faire Unlocking vmlinux.bin.l7 ...
Erasing vmlinux.bin.l7 ...
Writing from openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma to vmlinux.bin.l7... [w]
et on reboot maintenant la fonera reboot
On se reconnecte sur la fonera en sshcd /tmp
A partir de cet instant, laFonera ne peut pas rebooter correctement.
wget http://169.254.255.2/Fonera/out.hex
mtd -e "RedBoot config" write out.hex "RedBoot config"
reboot
Mais pas de panique, on va quand même pouvoir se connecter dessus grâce à telnet cette fois-ci et sur le port 9000.
Pour cela, il faut que le PC ai une adresse dans la plage 192.168.1.0/24.
On va rebooter la Fonera et dans les 10 premières secondes, on va pouvoir se connecter sur le port 9000 avectelnet 192.168.1.254 9000
(si le prompt n'apparait pas, il suffit de taper sur entrée).
Trying 192.168.1.254...
Connected to 192.168.1.254.
Escape character is '^]'.
RedBoot>
On va configurer l'adresse IP de laFonera et du serveur tftpip_address -l 192.168.1.254/24 -h 192.168.1.6
On va passer maintenant au flashage proprement dit du firmware dd-wrt (les commandes à saisir sont en gras) :fis init
Ca y est, DD-WRT est flashé dans la fonera, on va relancer tout ça avec :
About to initialize [format] FLASH image system - continue (y/n)?
*** Initialize FLASH Image System
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
load -r -v -b 0x80041000 root.fs
Using default protocol (TFTP)
-
Raw file loaded 0x80041000-0x802fdfff, assumed entry at 0x80041000
fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs... Erase from 0xa8030000-0xa82f0000: ..........................................
..
... Program from 0x80041000-0x80301000 at 0xa8030000: ..........................
..................
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
load -r -v -b 0x80041000 vmlinux.bin.l7
Using default protocol (TFTP)
-
Raw file loaded 0x80041000-0x80100fff, assumed entry at 0x80041000
fis create -r 0x80041000 -e 0x80041000 -l 0x000E0000 vmlinux.bin.l7
... Erase from 0xa82f0000-0xa83d0000: ..............
... Program from 0x80041000-0x80101000 at 0xa82f0000: ............
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
fis create -f 0xA83D0000 -l 0x00010000 -n nvram... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .reset
Conclusion
On a maintenant une interface d'administration sur http://192.168.1.1 avec login = root et mot de passe = admin.
Pour accèder à cet interface, il faut d'abord se connecter en wifi sur le réseau ouvert dont le essid est dd-wrt que DD-WRT crée automatiquement.
A vous les joies de DD-WRT sur une fonera
Commentaires
Afficher les commentaires en Vue non groupée | Vue groupée
kitten13 sur :
tout d’abord merci pour ce tuto.
jai un probleme pour me connecter en telnet, faut t il taper directement la commande: telnet 192.168.1.254 9000 dans une fenetre dos? si oui je l’ai fait et sa me marque erreur de connection.
merci kitten
David sur :
oui il faut le faire directement sous DOS. Par contre, ton PC a-t-il bien une IP en 192.168.1.0/24 ?
David.
Cytelis sur :
RedBoot> load -r -v -b 0x80041000 root.fs
Using default protocol (TFTP)
TFTP timed out 1/15
Can't load 'root.fs': operation timed out
J'ai essayé sous linux & windows en vain
David sur :
As-tu bien installé le serveur tftp ? il est bien accessible ? ton fichier root.fr est bien copié dans le répertoire du serveur tftp ?
Nicolas sur :
Tout marche presque bien mais à l'éxec de la commande
load -r -v -b 0x80041000 root.fs
J'ai une erreur tftp...
J'ai telechargé un serveur tftp mais je sais pas quoi faire avec et je pense que le pb peut venir de la...Je suis sous windows...
Merci pour ton aide
David sur :
oui effectivement cela vient du serveur tftp. Lorsque l'on fait le load, il va chercher le fichier root.fs au travers de tftp sur le serveur dont on a donner l'IP avant (avec ip_address).
Il faut donc configurer le serveur tftp sous windows et mettre les fichiers à la racine du serveur : sous Windows, je ne sais pas où cela se trouve...
David.
Vincent sur :
bon j'ai complêtement raté l'étape "Flasher" ( j'étais pas dans /temp , oui je suis un peu boulet je sais... )
Comme je ne voulais pas rester avec une vilaine brique, j'ai finalement fabriqué un cable série (super facile ) et je me suis servi du tuto à partir de l'étape "flashage proprement dit"
finalement j'ai bien DD-WRT installé sur la boite
l'interface d'administration est bien accessible en wifi, nickel !
pour ceux qui galèrent, un cable de gsm ( j'ai pris un C-25 siemens ) un conecteur audio pour carte mère de pc, hyperterminal( sous windows ) et un client TFTP (PumpKIN, rien à configurer juste placer les fichiers dans le même repertoire que PumpKIN.exe) ne pas oublier de changer l'adresse ip sous windows et avec les commandes ci dessus ça marche.
pour le cable c'est ici :
http://cablefonera.blogspot.com/
ou si vous n'avez pas de cable de gsm ici :
http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_Serial-Cable-Port
merci encore.
Vincent
Nicolas sur :
Maintenant deuxieme étape, faire communiquer mes 3 foneras en wds pour étendre mon réseau.
moi sur :
David sur :
oui bien sur : on peut partager un réseau. D'ailleurs, par défaut DD-wrt crée un réseau ouvert et donc partageable.
David.
moi sur :
merci d'avance
Thomas sur :
Comment faire ?
Max sur :
Plus moyen de revenir au firmware d'origine.
J'ai tout essayé (http://www.francofon.fr/modules/mediawiki/index.php?title=La_Fonera/Reset) en vain.
Au secours !
Merci d'avance.
Mado sur :
fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs
Ne serait ce pas plutot :
fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 root.fs
attention car c'est plutot pénible un flashage raté...
et pour les lignes suivantes, c'est bon ?
David sur :
non il ne manque pas le point, il faut bien faire un fis create avec rootfs.
David.
Damien sur :
tout d'abord merci pour votre article qui est exactement ce que je recherchais.
Après l'avoir utilisé avec succès sur ma fonera je souhaiterais le publié sur mon blog afin d'éviter tous liens morts par la suite.
Vous en garderez bien sur la paternité et l'article comportera votre nom ainsi que l'adresse de cet article.
En attendant votre réponse.
Damien
David sur :
Je préférerais un lien. Et pas de soucis pour ls liens morts, je mets à jour plus que réguliérement mon blog, et il sera là bien après qu'il n'y ai plus de fonera
David.
henry sur :
super tuto mais comment reactiver le reseau public fon? peut tu nous faire un petit tuto?
David sur :
Je n'ai pas testé si on pouvait réactiver/utiliser le réseau public FON.
Par contre, on peut très bien créer un réseau public et le laisser ouvert (le problème dans ce cas là est le non contrôle des personnes qui se connectent et utiliser ta connexion).
David.
ElyXiR sur :
le tuto est nickel mais je rencontre une erreur ! : lorsque je tape :
fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs
La fonera plante mon putty ferme la fenêtre au bout de quelques minutes :/ je suis sur de ma frappe car j'ai essayer le copier / coller
pourriez vous m'aider ?
Cordialement,
Mado sur :
fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 root.fs
(avec un point avant fs)
pour la récup il faut ouvrir la Fonera et se connecter avec un cable série...
j'en ai un.
David sur :
NON, lors du fis create il faut bien indiquer rootfs (et non root.fs).
Il faut l'indiquer dans le premier cas car on charge ce fichier par tftp (et c'est son nom) et ensuite lors du create c'est le nom de la "partition".
David.
Mado sur :
pour ma part j'ai flashé avec le point (root.fs), et ça a marché.
cela peut il poser un problème à l'avenir (utilisation, upgrade de DD-WRT, ...)?
merci.
David sur :
Je ne sais pas trop si cela peut poser problème... Peut-etre avec l'upgrade web de dd-wrt : s'il veut effacer rootfs il va avoir du mal
David.
Mado sur :
ElyXiR sur :
qu'ai je fais de travers ... :/
Damien sur :
je confirme bien qu'il ne faut pas de point entre le root et fs lors du fis.
Je le répète car apparemment beaucoup se pose la question.
Par ailleurs cette étape prends environ 8 minutes donc pas de panique et soyez patient
Mado sur :
juste deux petites questions au passage :
1/ Peut on accéder à l'administration de la Fonera DD-WRT autrement qu'en Wifi (par cable ethernet) ?
Si oui, comment ?
Si non, lorsque l'on configure la Fonera en client Wifi (et non en AP), comment peut on encore avoir acces à l'administration dela Fonera ?
2/ Pour transformer la Fonera en repeater WiFi j'ai trouvé ça : http://www.dd-wrt.com/wiki/index.php/Universal_Wireless_Repeater
Mais le menu de DD-WRT de la Fonera ne correspond pas.
Est-ce néanmoins possible ?
Si oui, comment ?
Merci
Comete sur :
http://www.dd-wrt.com/wiki/index.php/FON_Hotspot
David sur :
Tu as déjà essayé sur une fonera ? car dans les "requirements" il y a ça : "Router: WRT54G, WRT54GL, WRT54GS, or any DD-WRT router capable of running Chillispot (so not La Fonera)."...
David.
Philippe P. sur :
Mado sur :
Il doit être possible de revenir au Firmware d'origine, mais je crois que c'est assez compliqué.
Mado sur :
si oui comment (par *quelle adresse IP*) ?
Merci.
Mado sur :
donc si ça peux aider qqu'un : 192.168.1.1 sur le port 8080, en configurant la carte ethernet de l'ordi sur 192.168.1.2 (par exemple).
Mado sur :
J'ai flashé avec le point (root.fs et non rootfs), et ça a marché. Mais comme tu l'avais prédit (bravo !) cela empèche la mise à jour du firmware à partir du menu Administration de DD-WRT.
As tu une idée pour remettre les choses d'aplomb et renomer le root.fs en rootfs ?
Sinon une solution où l'on écrase tout et on remplace me convient aussi.
(Note : j'ai accès à Redboot par Telnet.)
Merci pour ton aide.
David sur :
on ne peut pas renommer directement.
Je vois 2 solutions (en étant connecté en telnet et sur le prompt redboot) :
o utiliser un fis erase pour supprimer le root.fs et le recréé (faire un fis list pour avoir les paramètres à passer au fis erase),
o recommencer à partir du fis init pour tout supprimer.
David.
Mado sur :
Mais n'y a t-il pas de risque que des fichiers necessaires au flashage soient manquants (comme notament le vmlinux.bin.l7) ? Sont ils encore "dans" la Fonera ?
je n'ai aucune envie de transformer ma Fonera en joli presse papier !
Merci pour ton avis de spécialiste.
David sur :
Tes autres "partitions" sont déjà présente, pour moi, je ne reflasherais que la partie rootfs mais pour cela il faut avoir accès en telnet sur le shell RedBoot.
David.
bayan sur :
je possède une fonera et j'ai essayé d'installer le DD-WRT, je pense avoir suivi correctement le tuto,mais après avoir fait le reset de la fin du tuto, la fonera redémare mais j'ai l'impression que le firmware n'est pas executé, la led WLAN ne clignote pas et la fonera fais des requetes DHCP sur le réseau Ethernet, si je lui délivre une adresse en moins de 10 secondes après son allumage j'ai accès au telnet ...
J'ai recommenser plusieur fois a partir du ip_address le tuto mais cela ne change rien, j'ai aussi essayé plusieur version du firmware et cela ne donne rien ...
j'ai aussi essayer de faire des reset con indiquer sur francofon, mais cela n'a rien donné...
Que doit je faire afin de pouvoir installer correctement la fonera ???????
bayan sur :
help me ... please
David sur :
Je n'ai jamais eu ce comportement... je ne comprends pas trop ce qui peut se passer. Les flashages se sont bien passés ? Pas de messages "bizarres" ?
David.
bayan sur :
Je pense effectivement avoir mal flashé notament la partis ou il faut envoyer : openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma, je croi que j'ai zapé cette partis, et est continué malgré tout ...
aujourd'hui encore j'ai accès par telnet, mais pas au ssh ni a l'interface html et le voyant wlan ne s'allume plus ...
y'a t'il un moyen avec telnet de démarer manuelement le firmware ? enfin de reactiver certain service ...?
David sur :
Le mieux serait de refaire le flashage.
David.
Francesco sur :
Je voudrais insérer des pages en mode console sur le DD-WRT, mais ma commande VI ne focntionne pas ?
Quelle commande dois-je utiliser pour ouvrir un fichier et le modifier ?
Cordialement
Francesco
Marc sur :
j'ai plein de problèmes de déconnexion avec ma fonera (toutes les 20-30min environ...) et j'aurais voulu installer dd-wrt. Cependant j'ai la version 0.7.1r3 du firmware Fon qui me bloque tout
Y a-t-il eu de nouveaux cracks depuis ?
Cordialement/
GG sur :
Tout se passe bien jusqu'au
Unlocking vmlinux.bin.l7 ...
Erasing vmlinux.bin.l7 ...
Writing from openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma to vmlinux.bin.l7... [w]
ensuite, je tape la commande _reboot_,
et puis plus rien, dans les deux cas une connexions ssh donne droit à un joli ssh: connect to host 169.254.255.1 port 22: No route to host
Par ailleurs, plus moyen de se connecter en http non plus... Plus de reset possible non plus, Auriez vous un conseil?
Merci
Cordialement
GG
PS tout semble bien s'être passé, mais comment savoir si le fichier S50dropbear est bon?
Soupalognon sur :
le probleme est que le lien ne fonctionne plus, y aurais t'il un autre lien disponible pour le telechargement de ces fichiers ?
Merci
GG sur :
Dommage
GG
David sur :
quel site n'est plus maintenu ?
Si c'est mon blog, c'est vrai que je ne mets plus trop de nouvelle sur la fonera car la mienne tourne bien en DD-WRT
David.
GG sur :
ok, je voyais pas trop d'activité dans cette rubrique... j'ai mal compris désolé.
Juste une chose David, sais tu comment on peut récupérer une fonera partie en vrille... je peux trouver un JTAG, mais je ne sais pas quel logiciel utiliser pour piloter le port parallele. Je ne sais pas trop où trouver un firmware... ni comment procéder (j'ai pas trouvé sur la toile)
En fait, j'ai loupé ton guide (j'ai dû débrancher quelque chose avant la fin ou je ne sais pas trop.) et j'en ai bloqué deux...
À plus
GG
David sur :
En fait, si tu récupères un câble pour te connecter sur le port JTAG ça sera du série.
Pour gérer ça tu as par exemple minicom sous Linux ou HyperTerminal sous Windows.
David.
GG sur :
Merci, minicom, je vais jeter un œil, un jour...
Si tu mets la main sur un site intéressant (sur le flashage d'une fonera par JTAG), n'hésites pas à le poster, ça serait très intéressant, si j'en trouves un, j'en fairais autant
merci
A plus
GG
David sur :
En fait sous minicom, lorsque tu vas booter ta fonera, tu vas voir un message qui permet de suspendre le boot (en appuyant sur ctrl-c)
Ensuite, tu suis la procédure de flashage normal.
David.
GG sur :
merci
GG
Lucien sur :
j'avais le probleme de la mise a jour qui ne voulais pas ce faire a partir de l'interface web de dd-wrt, J'ai reflashe ma fonera, les mises a jour via l'interface ce passe sans probleme par contre apres le reboot il conserve l'ancien firmware. Auriez vous une idee d'ou cela pourrait venir.
Merci d'avance
racoon97 sur :
Pascal sur :
DD-WRT est tout de même un peu compliquer à comprendre lorsque l'on veut juste faire un AP sans autres services... du coup je vais voir ce que je peux en faire de plus intéressant.
Franck sur :
J'ai essayé d'ouvrir l'access SSH sur une version 0.7 r4 mais cela ne fonctionne pas.
J'ai utilisé la méthode du "DNS" trouvé sur le net en branchant ma Fonera sur le switch connecté à ma box.
Une idée pour m'aider?
Merci
David sur :
2 petites questions "bêtes" :
Es-tu sur d'être dans cette version ? Comment as-tu implémenté la méthode DNS ?
David.
abyss sur :
apres une grosse galere j'ai reussi a passer ma fonera en r1, mais certeins liens dans ce billet semble mort ! comment faire pour avoir out.hex et l'autre fichier ? merci
David sur :
Je vais regarder dans mes archives, je dois peut-etre pourvoir retrouver ça.
David.