Domotique - MisterHouse sur un ReadyNAS Duo
Dans ce billet je vais vous expliquer comment j'ai fais fonctionner le module CM11 (la procédure est la même pour CM15) avec MisterHouse sur un serveur NetGear ReadyNas Duo.
Ce serveur tourne sur une Debian made by NetGear il me sert de serveur "fourre-tout". J'ai convaincu des collègues d'acheter le même, et il s'est avéré que l'un d'entre eux possédait déjà de la domotique au sein de son doux foyer. Et oui, encore ce fameux collègue !!! Bref, tout ça pour vous dire que con CM11 n'était pas reconnu sur ce serveur. En effet étant une installation minimaliste de Debian, beaucoup de modules ne sont pas présents, notamment le pl2303 et le usbserial. Ces modules, pourront surement me servir lors de l'installation de mon module plcbus ...
Nous avons donc le serveur d'un coté et de l'autre, ma station de travail (enfin mon portable) sous Fedora 11.
Voici les étapes à suivre afin de compiler ces 2 modules, notez que je ne décrirez pas le fichier de configuration de MisterHouse, une fois le module reconnu, il suffit de suivre la documentation afin de le faire fonctionner.
Sur la machine de compilation sous Fedora :
Installation de Cross-compiler dans /usr/local/.
Si le lien ne fonctionne pas, vous l'avez aussi ici !
Ensuite vérifiez que vous avez bien les paquets suivants d'installés :
gcc gdb g++ glibc glibc-devel ncurses-devel ncurses-term kernel-devel (il est possible qu'il en manque, je vous laisse user du yum install à votre guise!)
Pour la suite des opérations, vous aurez besoin de récupérer les sources sur ce lien : http://www.readynas.com/?page_id=2324.
Voici les opérations à effectuer :
wget -q http://www.readynas.com/download/GPL/RND4_***.zip
unzip -q RND4_***.zip -d ./GPL
cd GPL/linux-x86-2.6/
cp arch/padre/defconfig .config
make ARCH=padre CROSS_COMPILE=sparc-linux- menuconfig
Maintenant aller chercher le module que vous souhaitez compiler :
|||Required modules: -> Device Drivers -> |||| USB Support -> USB Serial Converter Support -> USB Prolific 2303 Single Port Serial Driver
make modules_install
Si je me souviens bien, il va y avoir une erreur de compilation à ce moment là dû à un bogue dans cette version de noyau < 2.6.18, il faut juste effectuer un changement dans le fichier suivant :
nano scripts/mod/sumversion.c
Ajouter : #include <limits.h>
en haut du fichier.
Puis on relance la compilation !
make && make modules_install
Vous trouverez GPL/linux-x86-2.6/drivers/usb/serial/usbserial.ko et drivers/usb/serial/pl2303.ko à copier/coller sur le ReadyNas Duo.
Sur le ReadyNas Duo :
cp usbserial.ko /lib/modules/2.6.17ReadyNas/kernel/drivers/usb/serial/
cp pl2303.ko /lib/modules/2.6.17ReadyNas/kernel/drivers/usb/serial/
Puis on va ajouter le chargement des modules au lancement du serveur :
nano /etc/modprobe.d/aliases
On ajoute le chemin vers les 2 modules, puis :
modprobe usbserial
modprobe pl2303
ou directement :
insmod /lib/modules/2.6.17ReadyNas/kernel/drivers/usb/serial/usbserial.ko
insmod /lib/modules/2.6.17ReadyNas/kernel/drivers/usb/serial/pl2303.ko
pour vérifier que les modules sont bien reconnus :
dmesg -c
Et voilà !!!
Au cas où pour la version 4.1.6 du firmware du ReadyNas Duo, voici les modules compilés : pl2303.ko et usbserial.ko, ça vous évitera le travail du dessus ;-) !