Attends Josette… Ya la fonera+ qui marche pas !

Le film est fini, maman est couchée et il est temps pour moi d’aller voir si le dernier snapshot d’Openwrt tourne sur Fonera+, comme Lefinnois l’annonce dans son billet : Vas y Josette sort le crémant, y’a Openwrt qui tourne sur la Fonera+.

Je télécharge donc le tout dernier snapshot (celui du 22/09/2008). (http://downloads.openwrt.org/snapshots/atheros/)

Ne disposant pas d’adaptateur console pour la Fonera (il faut vraiment que j’en fasse un…), je privilégie la voie ethernet habituelle. Après tout, il n’y a pas de raison…

Je flashe méthodiquement le système, sans oublier le « fconfig » pour supprimer le second bootloader dans le script d’amorçage. Tout se passe sans encombre jusqu’au reboot… La fonera semble tourner parfaitement, mais  demeure totalement inaccessible… Argggg !

Après plusieurs essais, dont un sur une Fonera 2100, les résultats sont les mêmes. J’en conclus qu’il y a sûrement une coquille dans le build.

Je remarque cependant qu’une connexion Wifi non protégée est disponible, mais seul le port ssh semble ouvert et biensûr,  impossible de trouver le mot de passe root…  Re-Argggg…

Ca confirme au moins que la Fonera fonctionne et qu’il s’agit sûrement d’un problème dans la configuration de ce build.

Voyons voir ça de plus près…

Après deux bonnes heures de tripotage, je parviens enfin à monter l’image du rootfs sur une Debian :

1 – Installation de quelques utilitaires :

aptitude install mtd-tools mtd-utils

2 – Chargement de quelques modules (mtdblock pour pouvoir monter un périphérique mtd et y accéder comme avec un périphérique block et jffs2 pour prendre en charge le système de fichiers du même nom)

modprobe mtdblock
modprobe jffs2

3 – Création d’un périphérique mtd en ram,  grâce au module mtdram

modprobe mtdram erase_size=64 total_size=2500
cat /proc/mtd
     dev:        size         erasesize      name
    mtd0:     00271000   00010000   "mtdram test device"

J’avoue que le choix du « total_size » est un peu pris au pif… Le fichier image pèse 1,9 Mo, j’ai choisi une valeur légèrement au dessus pour être un peu plus à l’aise,  sans pour autant obtenir une image trop volumineuse.

4 – L’image jffs2 est en « big-endian« , il faut la convertir avant de la monter.

jffs2dump -b -r -c openwrt-atheros-root.jffs2 -e /dev/mtdblock0
mkdir /mnt/rootfs
mount -t jffs2 /dev/mtdblock0 /mnt/rootfs

Un léger coup d’oeil sur le fichier de config du réseau montre que l’interface lan est configurée en 192.168.13.1, alors que l’interface wan est en client dhcp.

etc/config/network

# Copyright (C) 2006 OpenWrt.org
 
config interface loopback
      option ifname   lo
      option proto    static
      option ipaddr   127.0.0.1
      option netmask  255.0.0.0
 
config interface lan
      option type     bridge
      option proto    static
      option ipaddr   192.168.13.1
      option netmask  255.255.255.0
 
config interface wan
      option ifname   eth0
      option proto    dhcp

A la vue du fichier etc/init.d/telnet et etc/passwd, on comprend facilement pourquoi telnet ne fonctionne pas : telnetd n’est démarré que si aucun mot de passe n’est défini pour root… Il semblerait que ce ne soit pas le cas !

etc/passwd

root:$1$w4R3qa0K$mvrDjmKzXPfJsT5KwTxDz.:0:0:root:/root:/bin/ash
nobody:*:65534:65534:nobody:/var:/bin/false
daemon:*:65534:65534:daemon:/var:/bin/false

etc/init.d/telnet

#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50
 
start() {
        if      [ ! -f /etc/passwd ] ||
                awk -F: '/^root:/ && ($2 != "") && ($2 !~ /!/) {exit 1}' /etc/passwd 2> /dev/null ||
                ( [ ! -x /usr/sbin/dropbear ] && [ ! -x /usr/sbin/sshd ] )
        then
                telnetd -l /bin/login
        fi
}
 
stop() {
        killall telnetd
}

Un petit coup d’oeil au firewall tant qu’on y est :

etc/config/firewall

config defaults
        option syn_flood         1
        option input               DROP
        option output             ACCEPT
        option forward            DROP
 
config zone
        option name             lan
        option input             ACCEPT
        option output           ACCEPT
        option forward          DROP
 
config zone
        option name             wan
        option input             DROP
        option output          ACCEPT
        option forward         DROP
        option masq              1
 
config forwarding
        option src       lan
        option dest     wan

Après suppression du password root, le réseau bien configuré et le firewall allégé, je génère une nouvelle image à partir du périphérique mtdblock0, sans oublier l’indianness.

umount /mnt/rootfs
jffs2dump -l -r -c /dev/mtdblock0 -e rootfs.jffs2

La Fonera refuse malheureusement de booter sur le rootfs créé à partir de cette nouvelle image.
Je dois faire quelque chose de travers… Donc la suite dans un prochain billet, après quelques recherches.

Laissez votre message après le bip...Biiiiip

Commentaires

[…] le billet précédent, j’évoque le problème du mot de passe root déjà renseigné dans le snapshot du 22/09/08 […]

Bien vu le coup du pass root
J’arrive aussi a me conecter en wifi, d’ailleur la fonera fonctionne en point d’accés
Pour le reste; j’aurais pas trouve !

Effectivement, si tu as un serveur dhcp, l’interface wan prends une adresse et le wifi est opérationnel en ap

Laisser un commentaire

(requis)

(requis)