Le firmware libre Tomato est un mine de fonctionnalité et il est possible de créer votre propre thème. Mais à chaque reboot il faut le redéfinir dans l'interface comme actif.
Aujourd'hui je vous propose de rendre votre thème (quasi) persistant grâce à une simple clé USB. L'opération paraît complexe car je vous détaille tout, mais en réalité c'est très simple.
Principe de fonctionnement
Nous allons stocker le thème sur une clé USB connectée en permanence. J'utilise une vieille clé de 1go avec un débit tout pourri que j'ai recyclée juste pour cet usage.
Au démarrage un script va copier le contenu du thème dans un répertoire du routeur. Ce répertoire est en réalité monté en RAM, voilà pourquoi nous sommes obligés d'utiliser un stockage externe car son contenu est réinitialisé à chaque reboot.
J'aurai pu faire le choix d'utiliser la partition JFFS mais cette puce s'usant plutôt facilement lorsqu'elle est trop sollicité j'ai préféré utiliser ma clé USB qui me sert déjà pour d'autres choses (logs, tcpdump...). Pour activer JFFS : Administration > JFFS > Enable.
J'ai donc écrit un script shell qui va se charger de copier le thème de la clé vers le routeur à chaque boot. On trouve pas mal de thèmes en cherchant "thèmes tomato" dans un moteur de recherche.
Pour savoir comment monter votre clé USB sur le routeur consultez ce billet.
Activer le thème custom
Pour activer le thème personnalisé aller dans Administration/Admin access/Colour scheme : custom (ext/custom.css) :
Puis bouton Save.
Le script
Le script shell sera stocké en JFFS. Mes tests de stockage directement sur la clé n'étaient pas concluants car la clé n'est pas forcément montée par le système lors de cette étape de boot.
Le thème est stocké à la racine de la clé USB dans/themes/bm, il est composé de ces fichiers :
- /themes/bm/custom.css
- /themes/bm/img/*.(gif|png)
Voici le contenu du script à mettre dans /jffs/perso/themeBM.sh :
#!/bin/sh CLE=/tmp/mnt/CLE1GO/themes/bm RTR=/tmp/var/wwwext sleep 30 # copie du theme vers /tmp/var/wwwext/ cp ${CLE}/custom.css ${RTR}/custom.css || echo "erreur script themeBM.sh" >> /tmp/xhark.log cp -R ${CLE}/img ${RTR}/img || echo "erreur script themeBM.sh" >> /tmp/xhark.log
Note : pour accéder à la partition JFFS depuis l'explorateur Windows allez dans USB and NAS > File Sharing et vérifier qu'une ligne de montage correspondante à JFFS en RW est présente.
Exécuter le contenu du script en console (SSH) pour vérifier qu'il fonctionne. Pensez à vider le cache de votre navigateur (ou CTRL+F5) pour que le nouveau thème s'affiche. Il y a un délai de 30s pour attendre que la clé soit bien montée sur le linux embarqué dans le routeur, vous pouvez commentez la ligne pour le test.
Si tout est OK nous continuons.
Exécuter le script au boot
Dans Administration > Script > onglet Init saisir :
/bin/sh /jffs/perso/themeBM.sh
Grâce à cela notre script sera exécuté à chaque démarrage du routeur pour que le thème soit appliqué automatiquement.
Note : vous pouvez aussi mettre le script dans "WAN Up", surtout si votre thème accède à des ressources web et que la connexion est indisponible après le reboot, ça évitera de long timeouts de chargement des éléments en ligne comme les google font.
Alternatives
Il est aussi possible d'utiliser le site TTB ou bien de avec un partage réseau (CIFS).
Conclusion
Voilà comment donner un peu de couleur à l'interface de votre routeur Tomato ! Et si la bidouille ne vous intéresse pas alors installez plutôt l'excellent mod AdvancedTomato.
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
3 commentaires
Bonjour,
merci encore pour le tuto.
J'envisage de mettre tomato sur mon r7000 car aujourd'hui j'ai un vieux netgear sous ddwrt.
Est t-il possible de créer une règle qui dit que lorsque le routeur se déconnecte du client vpn le traffic se coupe ou se coupe sur tel adresse ip. un kill-switch en gros.
d'avance merci.
@nofnof: voici une piste https://vpn.ac/knowledgebase/82/Killswitch-for-Tomato-or-Tomato-Advanced.html
Merci pour l'info, c'est interessant