Distribution minimaliste linux embraquée sur les WRT
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 :
- ipkg remove dropbear
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
Assurez vous d'utiliser l'opérateur égal (
lorsque vous désirez imposer une valeur.
Pour inscrire les paramètres dans la partition:
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.
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.
Activer Boot_Wait
Pour casser le Pont entre les interfaces du WRT :
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:
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 à 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
nvram set lan_ifname=vlan2 nvram unset lan_ifnames nvram commit
nvram set boot_wait=on nvram commit