nicolas.perenne.free.fr

Accueil Monitorage
CV3F
Etats Finis Seamer95


U.K. flag

N.B. J'utiliserai ici la nomenclature habituelle avec les systèmes embarqués: l'hôte est l'ordinateur qui sert au développement (en l'occurrence un PC avec Ubuntu), la cible est le système embarqué (le routeur WL-500Gp avec OpenWrt).

Installation du système d'exploitation

OpenWrt est une des distributions Linux qui ont été portées sur le router WL-500Gp. Des images prêtes à l'emploi (c'est-à-dire à être "flashées" sur le WL-500Gp) sont disponibles sur l'Internet et je me suis basé sur les instructions du wiki d'OpenWrt, avec quelques variantes toutefois:

  1. Télécharger l'image openwrt-brcm-2.4-squashfs.trx: il s'agit d'une version de OpenWrt "for end users", c'est-à-dire intégrant une interface web permettant d'administrer le router en mode graphique. Cette interface baptisée webif peut être installée après OpenWrt mais comme elle est bien pratique, par exemple pour régler le fuseau horaire sans passer par des manipulations en ligne de commande, autant le faire tout de suite!
  2. Installer sur l'hôte un client tftp (j'ai pris le tftp-hpa préconisé par la distribution Ubuntu).
  3. Débrancher le cordon d'alimentation du routeur, connecter le PC sur une de ses interfaces LAN, utiliser un stylo pour maintenir le bouton noir (RESTORE) appuyé pendant que vous re-brancherez l'alimentation du routeur, attendre que la diode PWR clignote lentement avant de relâcher le bouton RESTORE.
  4. Sur l'hôte, dans le répertoire où a été téléchargée l'image OpenWrt:
    >tftp 192.168.1.1
    tftp>binary
    tftp>put openwrt-brcm-2.4-squashfs.trx
    tftp>quit
    
  5. Le wiki précise qu'il faut alors attendre 5 bonnes minutes pour être sûr que l'écriture en mémoire flash soit bien terminée, puis on peut éteindre et rallumer le routeur (cordon d'alimentation).
  6. Sur l'hôte, pointez votre navigateur favori sur http://192.168.1.1/. Comme il s'agit du premier accès à webif, celui-ci commencera par vous demander de choisir un mot de passe pour le compte root.

Composants additionnels

Ces étapes demandent que la connection WAN (Internet) du routeur soit opérationnelle (rien de particulier à savoir, sauf de penser à connecter votre *box!). Visitez la section System/Packages de webif pour installer les paquets logiciels suivants, directement de l'Internet sur le routeur (!):

Pour régler l'heure du routeur, il faut se rendre dans la section System/Settings et:

Alors à chaque redémarrage le routeur se connectera au serveur ntp pour initialiser l'heure système, qu'il fera ensuite évoluer grâce à son horloge interne. Par contre si l'accès Internet n'est pas fonctionnel au moment du reboot, j'ai constaté que l'heure système était systématiquement re-initialisée à 00:00 le 01/01/2000.

Installation de l'application

Télécharger getwind_install.zip sur votre hôte et après l'avoir "détarée" rendez-vous dans le répertoire cv3f où vous trouverez le script install qui permet d'automatiser les opérations suivantes (en demandant deux fois le mot de passe root):

Vous pourrez alors naviguer vers http://192.168.1.1/cv3f/ pour observer le fonctionnement du système. Le mini-site est mis à jour une fois par minute mais il faut demander au navigateur de recharger la page pour s'en rendre compte. L'acquisition des données et la mise à jour du site démarrent automatiquement à chaque reboot du WL-500Gp.

Compilation de getWind

L'archive getwind_install.zip contient une version exécutable de getWind mais si vous voulez modifier ce programme, la façon la plus simple de faire une compilation croisée consiste à suivre la procédure suivante:

  1. Téléchager le SDK de OpenWrt et décompresser l'archive sur l'hôte;
  2. Télécharger le code-source de getWind (menu latéral), après décompression cela donne un répertoire CV3F;
  3. Dans le répertoire CV3F, modifier la macro prefix du Makefile pour choisir entre le compilateur de l'hôte (pour exécution locale, auquel cas prefix doit rester vide) et le compilateur croisé du SDK (cf. l'exemple fourni dans le Makefile);
  4. Sur l'hôte, taper make dans CV3F, voire make install pour copier l'éxecutable directement sur la cible.