Echanges et conseils en électricité | |||||||||||
Dernières publications
Derniers messages |
Domos sur un routeur LinuxArticles les plus lus de cette rubrique
Confort Domotique- Tous les articles - Dernières parutions dans cette rubrique
Commenter, imprimer, partager cet article
Ce tutoriel a pour but d'indiquer les étapes nécessaires à
l'implantation de notre projet domos de domotique maison sur un appareil
avec
un Linux embarqué.
Pour faire suite à notre article expliquant l'emploi d'une carte de commande à distance d'appareils électriques, nous avons créé le projet domos. Le choix pertinent d'utiliser Linux comme support, nous permet aujourd'hui d'implanter ce même projet sur un routeur personnalisable, un Linksys WRT54 GL. L'idée : La simplicité de mise en oeuvre de domos tant en terme de réactivité et choix d'action qu'en terme de programmation horaire, quotidienne, hebdomadaire ou autre, nécessite malgrès tout l'emploi d'un ordinateur. Aussi minimaliste qu'il soit, une consommation minimale de l'ordre de 40 à 50 Watts est inévitable. En utilisant un micro système embarqué, cette consommation tombe à 12 Watts. De plus, pour fonctionner correctement, la carte relai de GCE Electronics nécessite l'usage d'un routeur ; alors pourquoi ne pas y inclure domos ? Description du matériel : Le routeur Wifi Wireless G de chez Linksys possède toutes les fonctions évoluées de ce type d'équipement. La version WRT54GL est gérée par un système d'exploitation Linux minimaliste. Ce minimalisme n'est pas une tare, c'est tout l'inverse. Là où d'autres systèmes mettent en place des programmes lourds, gourmands en ressources et impénétrables, les linux embarqués offrent légéreté, robustesse et personnalisation à volonté. Les composants du système sont réduits au stricte nécessaire et intégrés dans un micro-processeur. Tout le travail dévolu habituellement aux périphériques d'un ordinateur est accompli par cette seule puce. Le routeur dispose de deux espaces de mémoire :
La mémoire vive héberge le système Linux en fonctionnement, les programmes lancés, et tous les documents temporaires dont la pérennité n'est pas nécessaire. Durant le fonctionnement, l'utilisateur et le système peuvent enregistrer à volonté dans l'une ou l'autre des mémoires. La connectivité est principalement axée sur le réseau informatique à l'origine (quatre ports Ethernet, wifi, port modem Wan). Le matériel dispose de possibilités d'évolution par ports série. Tout cela tiens dans 186 mm x 154 mm x 48 mm ! Description du système : Les fabricants, Broadcom pour le microprocesseur et Linksys pour le boitier, ont choisit la voie du logiciel libre pour faire fonctionner leurs matériels. Le système d'exploitation Linux présent d'origine est adapté aux composant et au travail demandé par l'usage "routeur wifi". Il est également personnalisé dans la présentation (ce que l'on voit sur l'interface web) et dans la latitude laissée à l'utilisateur pour modifier le comportement du matériel. Le principe du logiciel libre étant que tout un chacun peux modifier à sa guise les logiciels, le système embarqué sur le routeur est modifiable et personnalisable. C'est le travail qui est réalisé par l'équipe du projet OpenWRT. A partir des sources des programmes, ils ont réalisé un linux propre à ce matériel. ![]() La distribution de ce linux est gratuite, librement modifiable et dispose d'un stock de programmes prêt à être ajoutés à la présentation par défaut. Nous avons choisi Open WRT pour ses capacités de paramètrage. D'autres distributions existent. Dans un premier temps, il faut installer cette distribution linux sur le routeur. Ensuite, il faut placer les programmes dont nous aurons besoin. Toutes les étapes sont réalisables avec un ordinateur standard, disposant de Windows ou de Linux. Ce dont vous aurez besoin : Les outils et programmes nécessaires sont tous gratuits et disponibles sur internet.
Le plan de mise en oeuvre
I_a Installer la machine : I_a_1 Le matériel : Le routeur est livré avec un cordon réseau et un tranformateur. Le transformateur va sur l'arrivée secteur, le câble informatique ira à l'ordinateur... rien de compliqué. Le routeur est fourni avec une version personnalisée de Linux arborant les couleurs de Cisco Linksys. Il faut récupérer l'image disque du système modifiée par la communauté Open WRT. L'image compatible avec notre matériel est disponible à cette adresse. Il faut l'enregistrer sur l'ordinateur dans un premier temps. Il est absolument impératif d'employer la version prévue pour votre matériel. Au besoin consultez la documentation en ligne pour vérifier la compatibilité, la page dévolue au WRT54GL est accessible depuis le sommaire des modèles à cette adresse. Nous avons choisi dans un premier temps d'utiliser une version Kamikaze 8.09 Open WRT avec un noyau linux 2.4. Ce choix est imposé par :
Le projet X-Wrt fournit cette même distribution avec des pages supplémentaires et une présentation au goût du jour des divers réglages. I_a_2 Le système : La méthodologie est la suivante :
Après ce premier changement, vous pouvez recharger la page d'accueil du routeur qui présente un graphisme différent du précédent.
A présent la première manipulation consiste à prendre en main le routeur par l'entremise d'une console Telnet. Ouvrez une fenêtre de console. Sur un windows la console de commande s'obtiens par exemple en lançant "Exécuter" (alias Win+R) et "cmd". Tapez ensuite à l'invite de commande : telnet 192.168.1.1Tadaa, vous y êtes. Les commandes de la consoles sont directement appliquée au système du routeur. Il faut modifier deux paramêtres de démarrage nous assurant la tranquilité d'esprit pour la suite. Tapez les commandes suivantes, validation par un retour chariot à la fin de chaque ligne. nvram set boot_wait=on nvram set boot_time=10 nvram commit && reboot De cette manière, lors des redémarrages, le routeur patiente 10 secondes dans l'attente d'une action extérieure. Lors du redémarrage Telnet indiquera "Connexion perdue". La matériel peut désormais être branché comme il faut pour bénéficier d'un accès internet (cela sera utile pour la suite). Paramétrez le routeur pour qu'il ai une adresse IP un point au dessus de celle de la box. Pour de nombreux fournisseurs, la box est la passerelle 192.168.1.1, le routeur linux sera dans ce cas 192.168.1.2 (il ne faut pas de doublons). Une box qui serait à l'adresse 192.168.0.254 nécessiterait donc de modifier le réglage du routeur vers une IP du type 192.168.0.2, puis de l'ordinateur sur une adresse de la même étendue (192.168.0.x). Dans les pages de réglage du routeur indiquez l'adresse de la passerelle (Gateway) et du serveur DNS (la passerelle par exemple). I_b Implanter les paquets optionnels : Pour la suite, il faut une nouvelle console Telnet. Elle s'ouvre sur la racine "/". L'installation des logiciels se passe par l'entremise d'un script employant le gestionnaire de paquetages opkg. Les commandes sont placées dans ce script, l'installation est ainsi rapide et automatique. Dans la console, tapez ces commandes : wget -P /tmp http://choletinformatique.perso.sfr.fr/domos/Open_WRT/implantation.sh chmod a+x /tmp/implantation.sh /tmp/implantation.sh Vous pouvez décomposer les étapes afin d'être sûr que tout est en ordre, par exemple après la commande chmod modifiant l'attribut du script, nous obtenons un script exécutable, qui s'affichera en vert avec la commande de listing ls -l. Comparez avant et après la commande. Vous remarquerez que le paquetage de Gawk 3.1.7 n'est pas disponible sur le serveur de OpenWRT, il est donc nécessaire d'aller chercher celui du projet Nslu 2. Encore un avantage de l'utilisation d'un linux, la multiplicité des sources. A l'issue de cette installation, il nous reste 160 ko de mémoire statique disponible. Cette information s'obtiens avec la commande df -h Les raccourcis sont implantés dans la zone mémoire statique /jffs/bin, lorsque le système démarre, il copie le contenu de cet espace dans le répertoire /bin qui accueille les outils du système. Il faut relancer la machine pour effectuer simplement cette agencement ; entrez la commande suivante : reboot I_c Modifier les services : I_c_1 Vérification de Crond : Comme pour le domos sur ordinateur, celui sur routeur fait un grand usage du service de tâches planifiées crond. Par défaut le service est démarré. Il faut modifier le fichier de planning pour le faire travailler. L'interface Web permet d'accèder au planning, dans la portion Administration, Services, "Scheduled Tasks" alias tâches plannifiées en anglais. Il suffit de remplir la zone de texte comme on le ferait avec un éditeur de texte. Les activités de cron sont répertoriées dans le log du système, accessible dans l'onglet Status, "System log". I_c_2 Configuration de Elinks : Elinks est un navigateur internet en ligne de commande par la console. Les flèches de circulation servent à se déplacer, la barre d'espace pour valider, et la tabulation pour passer d'un champ à l'autre. La console se lance avec l'icône idoine dans la barre des tâches. Ouvrez elinks par un appel simple dans la console : elinks Puis demandez les options par 'o'. Circulez avec les flèches de circulation les bien nommées, déployez l'onglet "User interface", descendez jusqu'au "Timer options". Là dans les trois champs il faut choisir :
A partir de là Elinks s'arrête au bout de 5s d'inactivité. II_d Implanter le projet Domos : Ici également, nous avons opté pour l'usage d'un script pour copier les dernières versions des règles sur le routeur. Les commandes sont placées dans ce script, l'installation est ainsi rapide et automatique. Dans la console, tapez ces commandes : wget -P /tmp http://choletinformatique.perso.sfr.fr/domos/Open_WRT/domos.sh chmod a+x /tmp/domos.sh /tmp/domos.sh Les règles à jour sont regroupées et librement accessibles dans le répertoire /encours de l'archive du projet. Ce sont les mêmes qui sont présentes dans le fichier .tar.gz le plus récent. Si les fichiers sont déjà présents sur le routeur, un message de confirmation demande si il faut les remplacer ou non. Les règles seront placées dans l'arborescence /jffs/usr/tux sur le routeur, un lien symbolique est créé vers ce dossier afin de garder l'organisation connue /home/tux.
II_e Régler le planning : Par l'entremise de l'interface web, accèdez au réglages du planning dans la portion Administration, Services, "Scheduled Tasks". L'utilité d'un planning est d'agir à des heures fixes, des jours ou des dates. Hors le routeur ne contiens aucun dispositif de sauvegarde de l'heure en cas de coupure de courant. Il faut remédier à cela en employant le service de mise à l'heure par internet, NTP. Le service informatique de l'université de nice le fournit. Lors du démarrage, le routeur se met à une heure quelconque. Celui qui sert pour nos tests affiche systématiquement 2h48. La première ligne du planning peux donc être : 55 2 * * * rdate -s ntp.unice.fr Ainsi même en cas de redémarrage le routeur reprend l'heure exacte 5 minutes après l'incident. Pour le reste, les horaires et actions à mener seront à votre discrétion. Vous avez la possibilité de lire le fichier domos.cron.txt Pour chaque nouvel événement il faut une ligne suplémentaire. Toujours les cinq paramêtres définissant les minutes, les heures, la date, le mois et le jour de la semaine puis la commande de la tâche planifiée. Dans la version pour ordinateur nous utilisons un fichier cronlog pour mémoriser les actions ; sur le routeur le manque d'espace mémoire incite à ne pas utiliser ce log. II_f Activer le planning : Avec l'interface web, il suffit de cliquer sur "Submit" pour appliquer vos modifications. Vous pouvez ainsi très facilement voir et retoucher votre planning Domos. Pour que le routeur tienne compte des changements intervenus, il est préférable de le redémarrer. Voilà, à présent, vous avez un petit routeur qui gère selon sa programmation horaire les actions de la carte relai IP. Pour plus d'astuces sur les usages et les règles spéciales, faites un tour sur le forum. | ||||||||||