Voici un articles pour les foneros utilisant un routeur wifi Linksys WRT54G comme moyen d’accès au réseau communautaire FON. Si vous utilisez le firmware officiel FONBasic 0.6.6 beta disponible sur le site de FON, vous êtes régulièrement confrontés à un problème de dysfonctionnement lié à une mauvaise configuration envoyée au routeur par les serveurs FON. Je vous propose ici un firmware qui permet de résoudre ce problème.
Mise en garde
Les informations contenues dans cet articles sont délivrée « telle qu’elles » . C’est à vos risques et périls que vous pouvez utilisez les firmwares proposés en téléchargement. Je ne peux être tenu responsable de dysfonctionnements liés à leur utilisation. La mise à jour d’un firmware est une opération critique pouvant endommager l’appareil.
Les Symptômes
Pour le propriétaire du routeur tout semble fonctionner. Le routeur est bien marqué comme actif dans l’interface de gestion et son status est UP sur la cartes des hotspots. Pour les clients c’est une autre histoire. Le hotspot est bien visible sur un canal wifi mais impossible de s’y attacher, il ne donne pas d’adresse IP (comme si le service DHCP ne fonctionnait pas).
La Cause
La faute au processus Chillispot qui est embarqué dans le routeur. C’est lui qui est en charge d’attribuer les adresses IP avec un DHCP intégré. Au lancement, il télécharge sa configuration d’un serveur FON sur internet qui lui dit comment identifier les utilisateurs (quel serveur radius, quelle page d’accueil, quelles URL accessibles sans authentification).
Ce fichier de configuration comporte parfois des erreurs de syntaxe et le processus Chillispot ne se lance pas. Vous ne pouvez pas le corriger puisque le fichier est hébergé sur un serveur distant. Parmis les erreurs que j’ai déjà rencontré : un nom de machine qui n’existe plus dans la liste des URL autorisées sans authentification, ou alors un nom de domaine DNS avec une étoile (ce qui est interdit).
Les foneras récentes utilisent la version modifiée Chillispot-Coova qui interprète le fichier de configuration d’une façon plus laxiste. L’erreur dans la configuration est signalée mais le processus se lance quand-même en les ignorant.
La Solution
J’ai téléchargé les sources du firmware FONBasic-0.6.6 et je les ai modifiées pour que cette fois le processus Chillispot se comporte comme la version coova. Les erreurs de syntaxe relatives aux noms de machines ou de domaines sont ignorées.
Liste des évolutions
0.6.7 – 13/02/2011
- Corrections mineurs pour rendre possible la compilation du firmware
- Accepte la présence de noms DNS inexistants dans la liste des options uamallowed de /etc/chilli.conf . Ces noms sont ignorés.
0.6.8 – 19/03/2011
- Accepte la présence d’options newdomain dans /etc/chilli.conf . Ces options sont ignorées.
Téléchargements
Firmware 0.6.8 pour Linksys WRT-54G/GL (non testé) :
Télécharger “FONbasic-WRT54GL-0.6.8.bin” FONbasic-WRT54GL-0.6.8.bin – 1,78 Mo
Firmware 0.6.8 pour Linksys WRT-54GS V1-V3 (non testé) :
Télécharger “FONbasic-WRT54GS-0.6.8.bin” FONbasic-WRT54GS-0.6.8.bin – 1,78 Mo
Firmware 0.6.8 pour Linksys WRT-54GS V4 (testé) :
Télécharger “FONbasic-WRT54GS_v4-0.6.8.bin” FONbasic-WRT54GS_v4-0.6.8.bin – 1,78 Mo
Firmware 0.6.8 pour Buffalo WZR-RS-G54 / WHR-G54S / HP-G54 (non testé) :
Télécharger “FONbasic-BUFFALO-0.6.8.trx” FONbasic-BUFFALO-0.6.8.trx – 1,78 Mo
Sources 0.6.8 du firmware (ne contient pas les dl) :
Télécharger “FONbasic-0.6.8-src.tar.gz” FONbasic-0.6.8-src.tar.gz – 2,27 Mo
Sources 0.6.6 officielles du firmware (contient les dl) :
Télécharger “FONbasic-0.6.6.tar.bz2” FONbasic-0.6.6.tar.bz2 – 93,38 Mo
Patch à appliquer aux sources FONBasic 0.6.6 pour obtenir la version 0.6.7 :
Télécharger “FONbasic-0.6.6-0.6.7.patch” FONbasic-0.6.6-0.6.7.patch – 12,95 Ko
Patch à appliquer aux sources FONBasic 0.6.7 pour obtenir la version 0.6.8 :
Télécharger “FONbasic-0.6.7-0.6.8.patch” FONbasic-0.6.7-0.6.8.patch – 2,24 Ko
Les checksum MD5 sont les suivants :
379f373cbb0d169f11139aa502c5fc19 FONbasic-0.6.6-0.6.7.patch 4b5b4403ee58d584ca2ebc9014df895a FONbasic-0.6.7-0.6.8.patch c33de3a68f0b4dc7b9beb81de09d737b FONbasic-0.6.8-src.tar.gz 82f1719c11c5e526a9b46d0ab34a54c8 FONbasic-BUFFALO-0.6.8.trx 6a8ebd5001427cc7544530173321d945 FONbasic-WRT54GL-0.6.8.bin d4baa3a5334ad263cc10e93072d24090 FONbasic-WRT54GS-0.6.8.bin dddf214a95a598bc4f5cbfca6c381341 FONbasic-WRT54GS_v4-0.6.8.bin
Note : les dl sont les archives des sources des composants GNU du firmware. Le processus le compilation les télécharge automatiquement s’ils ne sont pas déjà présents dans le répertoire dl des sources. Comme cela représente un gros volume, je ne les ai pas inclus dans les sources. Si vous ne pouvez pas les télécharger à partir de votre plate-forme de compilation, utilisez les sources officielles 0.6.6 qui contiennent déjà ces archives.
Mise à jour du firmware
Utilisez le firmware correspondant à votre modèle de routeur Linksys. Certains modèles ne sont pas supportés (comme les WRT54GS V5 et plus). Rendez-vous sur la page de mise à jour du firmware dans l’interface d’administration http. Inutile de cocher la case pour purger la zone JSFF, le firmware ne l’utilise pas.
La procédure de mise à jour dure quelques minutes. N’éteignez surtout pas l’appareil pendant la mise à jour ! Une fois terminé vous pouvez vous reconnecter à l’interface de gestion. Le mot de passe d’administration est réinitialisée avec sa valeur par défaut (utilisateur: admin, mot de passe: admin). Les noms d’hôtes qui ont éventuellement été saisis manuellement sont supprimés (correspond au fichier /etc/hosts dans le routeur). En revanche le reste de la configuration est conservée (SSID, canal wifi, adresses des serveurs DNS, configuration IP/DHCP, …).
La clé du service ssh étant recalculée après la mise à jour, ne soyez pas surpris par un message d’avertissement vous signalant que la clé d’authentification a changé. Vous ne serez confrontés à cet avertissement que si vous êtes un utilisateur averti qui a l’habitude de se connecter en ssh au routeur.
Compilation
Si vous vous sentez l’âme d’un développeur et souhaitez améliorer le code voici quelques instructions pour compiler vous-même le firmware.
Voici la plate-forme que j’ai utilisé pour compiler le firmware :
- Une petite machine virtuelle sous VMWare ESXi 4.1 : 512 Mo de RAM, 1vCPU (Intel XEON 3,6 GHz), 5 Go de disque.
- Linux CentOS 5.5 32 bits avec toutes ses mises à jour sans desktop (eh oui, je travaille en mode texte, à la dure, question d’habitude).
- Packages optionnels installés : gcc, gcc-c++, zlib-devel et toutes leurs dépendances (utilisez la commande yum install suivi du nom du paquet)
La partition sur laquelle vous compilerez doit disposer de 1,5 Go d’espace libre.
Les sources sont en réalité un firmware openwrt customisé par FON, la licence GPL2 s’applique donc à mes modifications que je dois vous mettre à disposition. La base openwrt utilisée ici est déjà assez ancienne (elle date de 2005 je crois).
Une fois l’archive décompressée, placez-vous dans le répertoire des sources et tapez make. La première fois, vous entrerez dans le menu de configuration de OpenWRT (la base du firmware). Laissez la configuration par défaut et quittez ce menu en sauvegardant.
Tapez une seconde fois la commande make. Le processus de compilation ira jusqu’à son terme. Cela peut durer plusieurs dizaines de minutes en fonction de la puissance de votre machine.
Le processus de compilation est divisé en trois grandes étapes :
- La création du kit de compilation croisée pour processeur mipsel (c’est plutôt long).
- La compilation des composants du firmware en utilisant le kit de compilation croisée (moins long)
- L’assemblage des composants dans un firmware spécifique à chaque modèle de routeur.
Chaque composant est téléchargé d’internet en utilisant la commande wget. J’ai corrigé les URL car certaines n’étaient plus valides. Si vous devez utiliser un proxy http vous pouvez le préciser dans le fichier /etc/wgetrc ou dans $HOME/.wgetrc . Une fois téléchargé il est placé dans le répertoire dl, il ne sera plus téléchargé si vous relancez la compilation.
Les composants sont extraits dans un répertoire de compilation et des patchs leur sont appliqués, ces patchs sont dans le répertoire packages/nom/patches . Leur nom ont un numéro qui indique dans quel ordre ils seront appliqués aux sources avant compilation. Ceux qui portent la mention rgc sont de mon cru !
Les firmwares produits sont dans le répertoire bin. Utilisez ceux qui portent le nom squashfs (leur taille est de 1,8 Mo environ).
Si vous souhaitez recompiler les firmwares après avoir modifié un composant supprimer les fichiers build_mipsel/stamp/.package-prepare et build_mipsel/stamp/.package-compile correspondant au composant retouché puis refaites make depuis la racine des sources.
make clean : permet de supprimer tous les objets de compilation du firmware mais pas le kit de compilation croisée ni les téléchargements.
make distclean : supprime les objets de compilation, le kit de compilation croisé ainsi que les téléchargements.
is it possible to make a version for a buffalo WHR-G54s???
many thanks
Yes, the compilation process creates a firmware file for Buffalo WZR-RS-G54 / WHR-G54S / HP-G54 with the trx extension. I can send it to you but this is at your own risk as I can not test it (I have no buffalo router).
Can you send me the 0.6.8 version for whr-g54s or maybe post a link?
I’m having troubles compiling from the source.
Thanks.
Added in this post
I’ve just installed your version of the firmware for WRT54GS v4. It works well. Thanks for taking the time to upgarde this code.
Bonjour,
Je tenais simplement à vous remercier pour ce travail remarquable.
Je suis tombé par hasard sur votre blog et j’ai pu ressortir mon vieux WRT54GL inactif dans sa boîte depuis deux ans grâce à votre firmware !
Cela fonctionne parfaitement !
Je vous fais part de mes tests sur un WRT54GL:
Le firmware fonctionne parfaitement sur mon PC, quelque soit le navigateur utilisé.
En revanche, sur un navigateur mobile (smartphone windowsphone ou iphone par exemple), il y a un portail mobile FON adapté aux petits écrans. Et là, ça ne passe pas, a priori à cause du protocole de sécurité utilisé sur la page.
Le portail d’identification ne fait pas partie du firmware. Il est téléchargé depuis le réseau FON sur http://www.fon.com
Je viens de faire un test avec un ipod touch sous iOS 5 et je tombe sur le même portail que pour un PC. Ce n’est pas adapté aux petits écrans mais ça fonctionne.
Essayer de forcer avec m.fon.com/gateway.
Le mobile ne parvient pas à basculer en https tout seul apparemment, alors que cela fonctionne avec une Fonera 2100.
Je n’y arrive pas. Le mobile me redirige sur le portail captif http://www.fon.com sans avoir le choix.
Essayer de forcer avec m.fon.com par exemple.
I would like to confirm that the Firmware 0.6.8 pour Linksys WRT-54G/GL is up and running.
Thanks a lot!
Fokko
It works fine on router Linksys WRT54GL v1.1 with Firmware 0.6.8 Linksys WRT-54G/GL!
Thanks a lot!
/Magnus
I was saved because it was in trouble that we will not be able to function firmware Ver0.6.6 official. Thank you.
WHR-G54S installed this firmware, this router could serve as FON.
As a matter of fact, there is a high market share is the most BUFFALO router made in Japan.
Therefore, those who are in need of this firmware modification René’s what some people.
Because of this, I was Please let me introduce any FON Unofficial Wiki for Japan.
Although the reports was after, please acknowledge it.
I’m pleased that my modified firmware works for you. I have no buffalo router to test it but some other user has already told me that it works.
Dear Rene,
I have flashed my Buffalo WHR G54S with your firmware and it worked first time.
Thank you very much for the information.
Fonctionne nikel sur WRT54GL !!
1 Fon Spot de plus avec ma Fonera 2100 😀