Table des matières

Distribution minimaliste linux embraquée sur les WRT

OpenWRT

Documentation OpenWRT : http://wiki.openwrt.org/OpenWrtDocs/

Comportement du système de fichier OpenWrt utilise deux systèmes de fichiers : squashfs et jffs2.

La première fois qu'OpenWrt boote, il va se charger depuis la partition squashfs en lecture seule qui est embarqué dans le firmware. Le script firstboot va ensuite se lancer et créer une partition jffs2 accessible en lecture/écriture dans la portion de flash disponible. La partition jffs2 devient ensuite la partition racine, cela peut prendre plusieurs minutes.

La taille de la partition jffs2 dépend de la quantité de flash disponible dans les puces et de la taille du firmware chargé. Le wrt54g a environ 4Mo de flash qui laissent environ 2Mo pour la jffs2, le wrt54gs a 8Mo de flash qui laissent 6Mo pour la jffs2. Il est important de noter que la jffs2 est une partition compressée ce qui signigie que pour le wrt54gs, les fichiers dans leur état compressé ils peuvent prendre jusqu'à 6Mo.

Manipuler les fichier Afin d'économiser de l'espace disque sur la jffs2, les fichiers sont en fait des liens symboliques vers leurs originaux dans la rom; Cela signifie aussi que vous serez redirigé vers les fichiers en lecture seule si vous ouvrez un fichier. Si vous voulez editer les fichiers vous devez enlever le lien symbolique et copier la copie en lecture seule.

Ipkg L'utilitaire ipkg est un gestionnaire de paquetage minimaliste capable de télécharger et d'installer des packages précompilés pour OpenWRT; Les utilisateurs Linux habitués au système apt-get seront vites surpris de reconnaître de nombreuses similarités.

Mettre à jour la liste de paquetage Ipkg maintient une liste de paquetages qu'il faut périodiquement mettre à jour en récupérant une nouvelle liste :

Voir les paquetages disponibles Pour lister les paquetages actuellement disponibles :

Installer un paquetage
Enlever un paquetage

- ipkg remove dropbear

Plus de paquetages...

Un nombre supplémentaire de paquetages est disponibles par des tierces parties. La liste complète des paquetages offerts pour OpenWRT peut être trouvée ici: OpenWrtPackages. Ajoutez juste les lignes suivantes à votre fichier /etc/ipkg.conf. NVRAM

Dans le firmware d'origine, toute la configuration est sauvegardeé dans la partition nvram dans un format simple : nom=valeur. Dans la mesure où OpenWrt a une partition jffs2 pour sauvegarder les fichiers de configuration, beaucoup des paramètres de la NVRAM sont ignorés et conservés dans le seul but de donner des paramètres réseaux faciles d'accès.

/!\Attention: Si vous changez certains paramètres de la NVRAM vous pouvez rendre votre routeur non bootable; si vous n'êtes pas srû de la valeur à mettre laissez la telle qu'elle.

L'utilitaire nvram L'accès à la partition nvram est effectué via l'utilitaire nvram, tous les changements sont mis en cache dans la ram et perdus lors du prochain reboot à moins que vous les inscriviez dans la nvram.

Les changements ne sont pas immédiatement effectifs; si vous changez l'adresse IP vous devez rebooter le routeur ou redémarrer les scripts de configuration réseau pour prendre en compte les changements.

Pour voir la liste (longue) des paramètres disponibles: La liste de paramètres NVRAM utilisé par OpenWRT peut être visualisée ici: OpenWrtNVRAM

pour voir une valeur spécifique:
Pour imposer une valeur:

Assurez vous d'utiliser l'opérateur égal (=) lorsque vous désirez imposer une valeur.

Pour inscrire les paramètres dans la partition:

Forcer un reset de la NVRAM

Bien que ca ne soit recommandé dans aucun cas, il est possible de remettre à défaut la NVRAM sur certaines version des WRT54G(S) en appuyant sur le bouton reset pendant que vous rebrachez l'alimentation. Notez que cela va désactiver le boot_wait et que ca rend la récupération du firmware bien plus difficile.

Mode sans échec

Occasionellement après une manipulation de l'administrateur ou un changement de firmware,la partition jffs2 devient non bootable ou les paramètres réseau sont erronés. Pour forcer le routeur à booter sur la partition squashfs en utilisant les paramètres par défaut vous pouvez utiliser le mode sans-échec.

Pour booter en mode sans-échec, rebootez le routeur et attendez que la diode DMZ s'allume, ensuite appuyez sur le bouton reset pendant 2 secondes. OpenWrt va ensuite ignorer la partition jffs2 et booter entièrement depuis la partition squashfs, ne tenant pas compte d'aucun changement que vous ayez pu faire dans les scripts de démarrage. Pendant que vous êtes en mode sans-échec vos paquetages installés ne sont pas disponibles.

Monter la jffs2 depuis le mode sans-échec

Vous avez ensuite accès à la partition jffs2 depuis le point de montage /jffs.

COMMANDES UTILES

Activer Boot_Wait

Reinitialisez la Nvram de son WRT :

Pour casser le Pont entre les interfaces du WRT :

Interfaces OpenWRT :

http://wiki.openwrt.org/OpenWrtDocs/Configuration#NetworkInterfaceNames

WRT54G v2/v3 & WRT54GS v1/v2:50WRT54G v4 & WRT54GS v3:50

Sauvegarde son ancien OpenWRT en tant qu'image firmware

dd if=/dev/mtdblock/1 of=/tmp/firmware.trx

This will produce a pseudo-trx file containing the firmware (trx) followed by a dump of the JFFS2 filesystem – basically everything except the bootloader and NVRAM. Copy this to a safe place and only restore it to a device with the same size flash chip.

If you don't have enough space to backup the firmware to /tmp, you can use ssh from another machine. Replace $GATEWAY with the hostname or IP address of your OpenWrt system:

Upgrading / Restoring

To reflash from within OpenWrt you will need to use a trx file:

mtd -r write firmware.trx linux

The ”-r” will force an automatic reboot after the reflashing.

Mise a jour d’un Freifunk existant

Mise à jour d’un ancien FFF avec un fichier trx

wget -O /tmp/linux.trx http://212.222.128.68/sven-ola/ipkg/_trx/openwrt-freifunk-xxx-fr.trx
mtd unlock linux && mtd write linux.trx linux && reboot

Puis apres le reboot du routeur

mtd erase nvram && firstboot&& reboot

Le routeur est en config usine ( ip : 192.168.1.1 et login/pass : root/admin

Pour casser le Pont entre les interfaces du WRT :

nvram set lan_ifname=vlan2
nvram unset lan_ifnames
nvram commit

Activer Boot_Wait

nvram set boot_wait=on
nvram commit

basé sur Openwrt

Divers