Le projet
En effet ce genre de petite carte à faible consommation revient généralement assez cher ! Vous trouverez quelques exemples dans mes bookmarks mais il est difficile de trouver quelque chose à moins de 60EUR port exclu. La Fonera se présente alors comme une alternative crédible même si ses possibilités sont assez limitées.
Mon but est, à terme, de l'utiliser comme mini-serveur web pour accéder aux données de ma station météo. Elle devrait pouvoir remplacer avantageusement un PC complet pour ce simple service. Ses capacités semblent tout-à -fait suffisantes :
- support de Linux et en particulier de l'excellent OpenWRT ;
- port série pour dialoguer avec la station ;
- interface réseau filaire et Wifi ;
- 4 GPIO disponibles sur lesquels on peut connecter une SD card pour la capacité de stockage.
Les étapes nécessaires à ce projet sont donc :
- réalisation d'un connecteur pour le port série ;
- flashage de la Fonera avec OpenWRT ;
- configuration/modification pour rendre le port série disponible pour la station météo ;
- compilation de open2300 sur la fonera ;
- réalisation du support de stockage de masse (SDcard) ;
- configuration du serveur web.
Connecteur série
Première étape, la réalisation d'un connecteur pour le port série.Je ne vais pas détailler le montage, tout est déjà très bien expliqué sur l'excellent blog de Denis Bodor[2] (y'a même un typon). Autant vous prévenir tout de suite, c'est une référence en ce qui concerne le hack de Fonera. D'ailleurs regardez le dernier article du GLMF de ce mois :)
D'abord, un petit test sur plaque d'essai. J'ai utilisé des transistors 2N2218 plutôt que les 2N2222 car c'est ce que mon fournisseur[3] avait en stock :)
Attention, sur le Wiki OpenWRT, RXD et TXD du port fonera correspondent au coté PC ! Chez Denis par contre c'est OK.
Ensuite, la mise en place sur plaque pastillée. Les composants sont assez serrés car je veux loger tout ça dans une petite boite. Comme l'ensemble du montage sera à coté de la station météo dans le salon, il faut que ça reste relativement propre.
La nappe coté fonera est découpée dans une nappe IDE, celle coté PC vient d'une poubelle. J'ai du acheter la boite chez Selectronic pour un projet oublié depuis :)
Et voila, la Fonera est branchée et dialogue avec le PC !
Quelques trucs avant de flasher
On peut commencer par se connecter en ssh[4] via le réseau filaire.# autorise les connections tcp iptables -A input_rule -i eth0 -p tcp -j ACCEPT iptables -t nat -A prerouting_rule -i eth0 -p tcp -j ACCEPT # lance dropbear /etc/init.d/dropbearOn attend un peu que les clefs soient générées, puis :
ssh root@192.168.0.149 ## bien sur remplacez par l'adresse de votre fonera ! root@192.168.0.149's password: adminVoila, c'est plus convivial que le lien série.
Ensuite, on sauvegarde les partitions actuelles. La méthode proposée sur le wiki OpenWRT ne fonctionne pas chez moi, j'en ai trouvé une autre ici
cd /dev/mtd for f in *ro; do echo -n "processing $f."; cat $f | gzip >/tmp/$f.gz; echo " Done."; done scp /tmp/*.gz jjl@penfret:/home/jjl/Conservez aussi le contenu du fichier /proc/mtd
Flasher avec OpenWRT
Je me propose d'utiliser ici la méthode RedBoot via port série. Une autre très courrue est via telnet.On installe un serveur tftpd, par exemple sur une ubuntu :
sudo aptitude install tftpdChez moi, il est lancé à la demande par inetd. Les fichiers à servir sont situés dans /srv/tftp[5], répertoire à créer. On récupère alors le noyau et le filesystem pour atheros (le processeur de la fonera)
cd /srv/tftp wget http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/openwrt-atheros-2.6-vmlinux.lzma wget http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/openwrt-atheros-2.6-root.squashfsLa, je vous conseille de suivre cette méthode. Ne recopiez pas directement les lignes suivantes, allez lire l'article pour avoir toutes les explications !
RedBoot> ip_address -h 192.168.0.105 -l 192.168.0.149/24 RedBoot> fis init RedBoot> lo -r -b %{FREEMEMLO} openwrt-atheros-2.6-vmlinux.lzma RedBoot> fi cr -e 0x80041000 -r 0x80041000 vmlinux.bin.l7 RedBoot> fis freeLa vous faites la différence entre les deux valeurs hexa données.
RedBoot> lo -r -b %{FREEMEMLO} openwrt-atheros-2.6-root.squashfs RedBoot> fi cr -l 0x6F0000 rootfs ## Remplacez la valeur par la différence précédement calculée RedBoot> fis load -l vmlinux.bin.l7 RedBoot> execNe reste plus qu'a adapter la configuration comme le dhcp, le password root à définir ...
Voila pour aujourd'hui. Prochaine étape, construire un environnement de cross-compilation pour régénérer un openwrt et open2300
Liens utiles
Je ne vais pas vous lister ici tous les liens sur la fonera ou OpenWrt, mais juste ceux qui me paraissent le plus pertinents dans mon cas.Tout d'abord ceux qui ont eu la même idée que moi :
- EquinoxeFR mais j'ai l'impression qu'il a changé de politique après l'étape 1
- Puis ici openwrt/open2300 mais sur un routeur Asus
- open2300 pour WhiteRussian
- Brancher une SD sur Fonera
- Liste de modifs très complète
- La doc du wiki openwrt
- Et bien sur le tag Fonera de Denis Bodor
- Telnet dans RedBoot
- Enfin OpenWrt pour Atheros
Notes
[1] sans le wifi[2] Quoi ? Il n'est pas encore dans vos flux RSS ! Mais ajoutez-le immédiatement !
[3] qu'il soit béni jusqu'à la 7ème génération
[4] en one-shot, au prochain démarrage, il faudra recommencer
[5] voir /etc/inetd.conf
Commentaires du post original
Aucun commentaire:
Enregistrer un commentaire