• 20 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 23/12/2019

Testez Domoticz sur une véritable Raspberry PI

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Préparez votre image

Comme nous avons vérifié que nous étions capables de générer une image fonctionnelle de GNU/Linux intégrant Domoticz sous QEMU, passons maintenant à la génération d'une image que nous testerons sur une Raspberry PI 3.

Pour cela, préparez un dossier buildroot-rpi3-armhf-domoticz afin de générer une image, à partir de Buildroot d'un GNU/Linux hébergeant Domoticz pour Raspberry PI 3.

cd ~/Development-tools/
cp -R buildroot buildroot-rpi3-armhf-domoticz

Commencez par appliquer les paramètres par défaut de Buildroot pour Raspberry PI 3 via le fichier raspberrypi3_64_defconfig. Puis lancez l'interface de configuration de Buildroot.

cd buildroot-rpi3-armhf-domoticz
make raspberrypi3_64_defconfig
make menuconfig

Ajoutez Domoticz à votre image

Par défaut, notre image a été configurée pour utiliser la uClibc. Comme l'activation de Domoticz nécessite la glibc, commencez par faire ce changement dans le menu Toolchain.

Activation de la glibc
Activation de la glibc

Activez le support de Lua et Domoticz comme dans le chapitre précédent. Pour activer Lua, rendez-vous dans le menu Target packages, puis Interpreter languages and scripting. Revenez dans le menu Target Package, puis Miscellaneous et activez le paquet Domoticz. Finalement, dans le menu Filesystem images, augmentez la taille à 200 Mo ((200M) exact size).

Configuration de l'accès réseau

Votre box domotique sera accessible depuis un portail web (celui de Domoticz), et votre Raspberry PI ne sera pas connecté à un écran. Afin de permettre un accès distant au système, ajoutez le paquet OpenSSH depuis le menu Target packages, puis Networking applications.

Ajout de openssh
Ajout de OpenSSH

La Raspberry PI 3 possède une interface RJ45 (Ethernet) mais aussi une interface wi-fi. Si vous souhaitez utiliser le wi-fi pour connecter votre Raspberry PI à votre réseau, vous devez installer les paquets iw et wpa_supplicant et le firmware qui gère la carte wi-fi. Il faudra aussi créer un fichier contenant vos informations d'accès.

Commencez par activer le paquet iw dans le menu Networking applications.

Activation de iw.
Activation de iw.

Puis dans ce même menu, le paquet wpa_supplicant.

Activation de wpa_supplicant.
Activation de wpa_supplicant.

Pour activer le support du firmware (pilote) de la carte wi-fi, entrez dans le menu Target packages, puis Hardware handling et Firmware. Dans ce menu, activez l'option Install DTB overlays et l'option rpi-wifi-firmware.

Activation du micro-logiciel de la carte Wifi.
Activation du micrologiciel de la carte wi-fi.

Désormais, votre carte wi-fi sera reconnue par votre système et elle vous permettra de vous connecter à votre réseau wi-fi. Il ne vous restera qu'à modifier le fichier qui contient les informations d'accès à votre réseau. Nous reviendrons sur cette configuration après avoir généré l'image.

Finalisez la configuration

Étant donné que votre box domotique sera installée dans votre réseau privé et que son rôle sera de gérer votre équipement (interrupteurs, chauffage...), il serait problématique de laisser un accès OpenSSH non protégé au système. Afin de fixer un mot de passe à l'utilisateur root (par défaut il n'y en a pas), rendez-vous dans le menu System configuration, puis fixez un mot de passe dans l'entrée Root password (xxxxxxxx).

Modification du mot de passe administrateur.
Modification du mot de passe administrateur.

Dernière étape avant la génération, afin que le système gère correctement le matériel de la Raspberry PI, activez le support des périphériques dynamiques via mdev. Dans le menu System configuration, puis /dev management, activez l'option Dynamic using devtmpfs + mdev.

Gestion des périphériques.
Gestion des périphériques.

Vous pouvez maintenant quitter et sauvegarder votre configuration dans Buildroot. Afin d'activer le service de gestion de périphérique mdev sur votre système, vous devez modifier le fichier board/raspberrypi3/post-build.sh et ajouter, à la fin du fichier, ces 3 lignes :

cp package/busybox/S10mdev ${TARGET_DIR}/etc/init.d/S10mdev
chmod 755 ${TARGET_DIR}/etc/init.d/S10mdev
cp package/busybox/mdev.conf ${TARGET_DIR}/etc/mdev.conf

Votre fichier doit alors correspondre à :

Modification du fichier post-build.sh.
Modification du fichier post-build.sh.

Le script post-build.sh est exécuté par Buildroot avant la génération de l'image de la carte SD. Il est utile pour automatiser des actions qui ne sont pas gérées par Buildroot (modification de fichier de configuration...). Dans notre cas, nous recopions l'exemple de script de démarrage automatique de mdev dans le dossier /etc/init.d du système, afin qu'il soit exécuté automatiquement au démarrage du système et ainsi activer la gestion dynamique des périphériques.

Générez et transférez l'image sur une carte SD

La configuration pour Buildroot est maintenant terminée, passons à l'étape de génération de l'image avec le désormais classique :

make

Vérifiez que vous obtenez bien un fichier sdcard.img correspondant à votre image de carte SD :

Génération et vérification du système
Génération et vérification du système

Passons à la recopie de cette image sur une carte micro SD. Insérez une carte SD et utilisez la commande

sudo dmesg | grep sd 

afin de récupérer le nom du périphérique correspondant à votre carte SD (dans mon cas, sdb).

Identification du périphérique correspondant à la carte SD.
Identification du périphérique correspondant à la carte SD.

Recopiez ensuite l'image de la carte générée par Buildroot (sdcard.img)  sur votre carte micro SD via la commande dd :

sudo dd if=~/Development-tools/buildroot-rpi3-armhf-domoticz/output/images/sdcard.img of=/dev/sdb

Lorsque la copie est terminée, montez les deux partitions de la carte dans /mnt/boot et /mnt/system, afin de vérifier la taille de votre système via la commande du :

sudo mount /dev/sdb1 /mnt/boot
sudo mount /dev/sdb2 /mnt/system
sudo du -sh /mnt/boot/ /mnt/system/

Dans mon cas, la taille de la partition FAT32 (/mnt/boot)  est de 16 Mo et la partition ext4 est de 97 Mo (/mnt/system).

Vérification de la copie.
Vérification de la copie. 

Modifiez la configuration réseau

Profitons du fait que les deux partitions de la carte SD soient montées, pour modifier la configuration réseau et ainsi permettre à la Raspberry PI de se connecter à votre réseau.

Commencez par modifier la configuration des interfaces

sudo nano /mnt/system/etc/network/interfaces

 afin d'ajouter l'interface wlan0 pour le réseau wi-fi :

auto wlan0
iface wlan0 inet dhcp
    wireless-essid <ssid>
    pre-up wpa_supplicant -B w -D wext -i wlan0 -c /etc/wpa_supplicant.conf -dd
    post-down killall -q wpa_supplicant

 Vous devez obtenir ceci dans le fichier interfaces :

Configuration de wpa-supplicant
Configuration de de l'interface wi-fi.

Afin d'ajouter les paramètres liés à votre réseau wi-fi, modifiez ensuite le fichier wpa_supplicant.conf :

sudo vim /mnt/system/etc/wpa_supplicant.conf

 Ajoutez dans ce wi-fi les lignes suivantes, en remplaçant <ssid> par le nom de votre réseau wi-fi, et <wpa_passphrase> par votre mot de passe wi-fi.

network={
    ssid="<ssid>"
    scan_ssid=1
    proto=WPA RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP
    psk="<wpa_passphrase>"
}

Votre fichier doit maintenant correspondre à :

Configurez l'accès à votre réseau Wifi
Configurez l'accès à votre réseau wi-fi

Maintenant, modifiez la configuration du serveur SSH, afin d'autoriser la connexion au système en temps que root :

sudo vim /mnt/system/etc/ssh/sshd_config

Pour cela, modifiez la ligne suivante :

PermitRootLogin yes

afin d'obtenir :

Activation de l'accès ssh.
Activation de l'accès SSH

Votre système est maintenant prêt. Il se connectera à votre réseau wi-fi au démarrage, et vous pourrez vous connecter au système via une connexion SSH.

Il est maintenant temps de démonter proprement la carte SD, et de la retirer de votre ordinateur.

sudo umount /mnt/boot /mnt/system

Le test final

Vous êtes arrivé au test final de votre système. Insérez la carte SD dans votre Raspberry PI, connectez un écran et branchez l'alimentation de la Raspberry PI. Si tout se passe bien, votre système devrait démarrer comme sous QEMU et afficher à la fin l'adresse IP de votre système. Récupérez cette adresse.

Vous pouvez maintenant vous connecter en SSH sur votre Raspberry et vérifier que Domoticz fonctionne :

ssh root@ADRESSE_IP_DE_VOTRE_RPI
ps aux | grep domoticz
Vérification du système.
Vérification du système.

Votre Raspberry PI est maintenant pleinement fonctionnelle. Pour terminer ce cours, passons à la prise en main de Domoticz.

Exemple de certificat de réussite
Exemple de certificat de réussite