Firmware FONBasic modifié pour Linksys WRT54G

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.

Linksys WRT54G

Linksys WRT54G

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.

Update Firmware FON

Interface d’administration MAJ Firware

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.

Configuration OpenWRT

Configuration OpenWRT

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.

44 réflexions sur « Firmware FONBasic modifié pour Linksys WRT54G »

  1. 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 !

  2. 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.

  3. 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.

Répondre à Cyrille Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *