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. Moi la compilation marche pas … 🙁

    100%[======================================>] 31 136 728 250K/s in 2m 11s

    2013-07-19 11:53:02 (233 KB/s) – written to stdout [31136728/31136728]

    mkdir -p /home/fho/fonera/FONbasic-0.6.8/toolchain_build_mipsel
    bzcat /home/fho/fonera/FONbasic-0.6.8/dl/linux-2.4.30.tar.bz2 | tar -C /home/fho/fonera/FONbasic-0.6.8/toolchain_build_mipsel -xf – \
    linux-2.4.30/include \
    linux-2.4.30/Makefile \
    linux-2.4.30/Rules.make \
    linux-2.4.30/arch/mips/Makefile \
    linux-2.4.30/scripts \
    linux-2.4.30/arch/mips/config*.in \
    linux-2.4.30/*/*/Config.in \
    linux-2.4.30/*/Config.in
    tar: Pattern matching characters used in file names
    tar: Use –wildcards to enable pattern matching, or –no-wildcards to suppress this warning
    tar: linux-2.4.30/arch/mips/config*.in: Not found in archive
    tar: Pattern matching characters used in file names
    tar: Use –wildcards to enable pattern matching, or –no-wildcards to suppress this warning
    tar: linux-2.4.30/*/*/Config.in: Not found in archive
    tar: Pattern matching characters used in file names
    tar: Use –wildcards to enable pattern matching, or –no-wildcards to suppress this warning
    tar: linux-2.4.30/*/Config.in: Not found in archive
    tar: Exiting with failure status due to previous errors
    make[2]: *** [/home/fho/fonera/FONbasic-0.6.8/toolchain_build_mipsel/linux/.unpacked] Error 2
    make[2]: Leaving directory `/home/fho/fonera/FONbasic-0.6.8/toolchain/kernel-headers’
    make[1]: *** [kernel-headers-prepare] Error 2
    make[1]: Leaving directory `/home/fho/fonera/FONbasic-0.6.8/toolchain’
    make: *** [toolchain/install] Error 2
    fho@fho-OptiPlex-755-NB4:~/fonera/FONbasic-0.6.8$ ^C
    fho@fho-OptiPlex-755-NB4:~/fonera/FONbasic-0.6.8$

    • Quelle est votre version de la commande tar (tar --version) et sous quelle distribution Linux faites-vous la compilation ?

      Sinon vous pouvez tenter d’ajouter l’option –wildcards à la commande tar en ligne 25 du fichier FONbasic-0.6.8/toolchain/kernel-headers/Makefile mais c’est peut-être pas le seul endroit :

      bzcat $(DL_DIR)/$(LINUX_HEADERS_SOURCE) | tar --wildcards -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) - \

  2. Bonjour René,

    Merci pour votre page et vos compilations!
    En vue d’un voyage prochainement en France, j’ai flashé un ancien WRT54GL pour pouvoir profiter des hotspots FON présent sur place.
    La flashage s’est déroulé sans aucun problème.

    Malheureusement je n’arrive cependant pas à faire fonctionner la bête.
    On dirait que le mode DHCP ne fonctionne pas pour une connexion WAN.
    Il me renvoie systématiquement sur le message « No Network Access ».

    Y a t-il des choses à rajouter dans la rubrique Hosts?
    Mon routeur principal porte une adresse 192.168.2.1/255.255.0.0, ne tente t-il pas par défaut de se connecter sur le 1.1 ??
    Ce routeur fonctionne bien mais à eu un problème sur son port WAN (je n’utilise plus ce port), je le connecte donc sur le port LAN4, est bon comme cela également?

    Merci pour vos réponses,

    J.

    • Le routeur utilise le port WAN pour y chercher sa route par défaut. Les autres ports sont utilisés pour le réseau privé local. Le wifi sert de point d’accès aux foneros mais reste isolé du réseau local. Sans le port WAN, le fonctionnement en fondra est impossible

  3. Bonjour, après plusieur mois de recherche et de question a FON impossible de vérifier la validité d’un compte SFR ou autre fournisseur partenaire sur le site FON ou SFR. Je leur ai demander si une page de « check » id compatible FON exister. Leur réponse était non. Enfaite je souhaiterai trouver et avoir une page ou tu rentre ton login (SFR, oi, Belgacom ou autre)/ MDP et tu obtient une réponse si oui ou non le compte est compatible sur les réseau FON.
    J’espère que tu me comprendra, merci pour ton travail

  4. J’ai récupéré hier un routeur Linksys WRT54G qui était dans un placard. J’ai déjà un autre qui fonctionne en Fonera depuis des années (j’ai même posté à ce sujet plus haut).

    J’ai installé le firmware 0.6.8 sans souci, puis au reboot je peux me connecter au routeur via ethernet. J’ai pu configurer le nom du wifi, etc. Le routeur est connecté au web via son port WAN et en filaire ça marche nickel – j’écris ces lignes sur ce site en étant connecté ainsi.

    Par contre, en wifi, ça ne marche pas. Je vois bien le réseau Wifi, mais impossible d’obtenir une adresse IP. Le Macintosh fini par m’en donner une auto-assignée, mais pas d’accès au web. Je commence à me demander si FON n’a pas fermé l’accès aux nouveaux routeurs WRT et autres. Ou alors j’ai oublié la procédure pour ajouter ce routeur à mon compte et ainsi lui donner une existence officielle auprès de FON…

    • Aux dernières nouvelles l’accès aux nouveaux routeurs FON est réservé aux foneras qui sont en quelque sorte pré-enregistrées. Je n’ai pas le détail mais il ne semble plus possible de déclarer l’adresse mac d’un routeur Linksys transformé en Fonera. De plus, de par mon expérience personnelle je constate que le réseau FON est moribond. Je me suis rendu en Espagne cert été, pays fondateur du réseau FON et j’ai constaté qu’en 4 ans toutes les wifi FON que j’avais pu croisé dans les rues des grandes villes n’existent plus. En fait je n’ai croisé aucun fonspot! Dans ce pays, le modèle wifi de FON a vécu et la page est tournée. En France il n’a jamais réellement percé. Mon Linksys fonera tourne encore mais ses jours sont comptés. Voila des années que personne ne s’y connecte plus.

      • Merci René,
        C’est probablement un truc du genre, bien que le service Support de FON m’ai répondu :
        Hi,
        Thank you for contacting us,
        No we are not blocking open WRT users at all.
        There probably must be an issue with your WRT setup.
        Feel free to contact me again for further assistance,
        Kind regards
        Fon Customer Care

        Mais bon, ça ressemble à du gars pas informé ou alors qui renvoie vers un problème qui serait de ma faute.
        Je suis bien d’accord avec vos commentaires sur l’état de FON. C’est bien dommage, d’autant qu’avec les partenariats, ils auraient pu prendre un vrai envol. Ma Fonera ne me sert plus qu’à avoir un compte fonctionnel pour les fois où je vais en Angleterre et ou il reste des Hotspots grace au partenariat BT (et encore ça fait un an et demi que je n’y suis pas retourné, c’est peut être mort…).

Laisser un commentaire

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