Bonjour à tous, c’est akenad ,
Aujourd’hui je vais vous présenter un retour d’expérience sur l’installation de l’Armbian et Jeedom V4 sur un Odroid-C2 avec eMMC.
(EDIT 22/09/2024 : fonctionne aussi avec l’image JeedomSmart Debian11.)
Équipements et logiciels utilisés:
- PC Windows et BalenaEtcher
- adaptateur USB3/eMMC
- Odroid-C2, avec mémoire eMMC hardkernel 32 Go (C2 Linux, carré rouge)
- Armbian
- Jeedom V4
- Clé USB Z-Wave+ Aeotec Z-Stick Gen5 ZW090 (Hardware Version 3)
- Carte d’extension (GPIO) EnOcean Pi
- Carte d’extension (GPIO) RaZberry v2 Z-wave+ pour Raspberry Pi ZWAVE.ME
Les étapes sont les suivantes :
- eMMC/USB
- Installation de Armbian sur l’eMMC
- Installation de l’eMMC sur l’Odroid-C2 et configuration du système
- Installation de Jeedom V4
- Associer l’Odroid-C2 au compte Market Jeedom
- Installer la clé USB Aeotec et le plugin Z-Wave
- Activation du port série du GPIO
- cartes GPIO RaZberry et EnOcean sur le port /dev/ttyAML1
1) eMMC/USB
- Connecter l’eMMC sur l’adaptateur USB3/eMMC.
- Connecter l’adaptateur sur le PC Windows.
2) Installation de Armbian sur l’eMMC
La documentation de Armbian est ici : https://docs.armbian.com.
/!\ ATTENTION le bon fonctionnement de l’interface série du GPIO (sur laquelle peuvent être connectée des cartes internes, en général zwave, zigbee et Enocean) dépend de la version du kernel installé (c’est pourquoi on « Freeze » l’upgrade du kernel).
-
En décembre 2022 j’ai téléchargé
Armbian_22.05.4_Odroidc2_bullseye_current_5.10.123.img.xz (=> debian 11.3, kernel 5.10.23, 01-Jul-2022)
pour le télécharger, voir ici : Index of /oldarchive/odroidc2/archive/
(ne pas oublier de faire un apt update --allow-releaseinfo-change) -
Pour mémoire, en novembre 2019 J’avais téléchargé une BusterArmbian_19.11.3_Odroidc2_buster_current_5.3.11.7z
pour le télécharger, voir ici : [RTEX] Odroid-C2 - eMMC - Armbian - Jeedom V4 - #95 par ClassicRed
(pour ceux qui n’utilise pas de carte GPIO, prendre la dernière version)
- Flasher l’image sur l’eMMC avec l’utilitaire balenaEtcher ici : balenaEtcher - Flash OS images to SD cards & USB drives
(le fichier .img.xz est directement reconnu dans balenaEtcher) - Saisir le mot de passe administrateur.
(balenaEtcher crée une partition EXT4 d’environ 2 Go et le reste est « Non alloué ») - Ejecter l’adaptateur USB3/eMMC.
3) Installation de l’eMMC sur l’Odroid-C2 et configuration du système
- Déconnecter l’eMMC de l’adaptateur USB3/eMMC.
- Connecter l’eMMC sur l’Odroid-C2.
Éventuellement pour suivre les sorties consoles, connecter écran HDMI et clavier USB mais ce n’est pas indispensable.
- Brancher le cable réseau puis le cordon d’alimentation.
La led rouge doit s’allumer. Au bout de quelques secondes la led bleue doit clignoter et la led du port réseau doit s’allumer.
(Nota : Lors du premier démarrage la partition système qui était environ de 2 Go est automatiquement étendue au maximum de la capacité de l’eMMC, soit ici d’environ 32 Go)
Si tout se passe bien, au bout d’une minute, l’Odroid-C2 est visible sur le réseau.
Trouver l’adresse IP allouée par le serveur DHCP à l’Odroid-C2 en consultant le serveur DHCP (la Box Internet si c’est le serveur DHCP) ou par exemple avec l’outil NMAP.
Accéder par SSH (par exemple avec Putty sous Windows) en root (mot de passe : 1234).
Au premier login il est demandé de changer le mot de passe de root et de créer un utilisateur (qui sera « sudo enable ») :
Changer le mot de passe de root (par exemple Mjeedom96).
Comme demandé, créer un utilisateur :
username : jeedom
password : Mjeedom96 (par exemple)
Appuyer plusieurs fois sur la touche ENTER.
Pour configurer quelques éléments système lancer la commande :
# armbian-config
(C’est le même principe que le raspi-config pour Raspbian avec son écran bleu et ses options dans une fenêtre grise.)
Nous allons configurer la TimeZone, le Hostname, mettre éventuellement une adresse IP fixe :
- option Personal :
Timezone Europe Paris
Hostname modifier odroidc2 en jeedom3 (enfin pour mon cas c’est la 3ième Jeedom) - option System :
-Freeze (pour bloquer les upgrades du kernel)
-Hardware (sélectionner uartA)
- option Network :
IP static (pour ceux qui ne veulent pas utiliser DHCP)
Si une IP statique est configurée, différente du DHCP, la session SSH est interrompue.
Se reconnecter en ssh, sur la nouvelle adresse IP, avec le compte jeedom.
/!\ ATTENTION : Les mise à jour éventuelles du système sont réalisés par la méthode Debian apt update, mais ne pas utiliser apt upgrade si vous avez l’intention d’utiliser le GPIO, et ainsi rester en kernel 5.3.
Voici la version système :
jeedom@jeedom3:~# uname -a
Linux jeedom3 5.3.11-meson64 #19.11.3 SMP PREEMPT Mon Nov 18 20:10:57 CET 2019 aarch64 GNU/Linux
jeedom@jeedom3:~# cat /etc/issue
Armbian 19.11.3 Buster \l
La liste des sources installée dans /etc/apt/sources.list est la suivante :
deb http://deb.debian.org/debian/ buster main
deb-src http://deb.debian.org/debian/ buster main
deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main
deb http://deb.debian.org/debian/ buster-updates main
deb-src http://deb.debian.org/debian/ buster-updates main
La liste des sources installée dans /etc/apt/sources.list.d/armbian.list est la suivante :
deb http://apt.armbian.com buster main buster-utils buster-desktop
4) Installation de Jeedom V4
Connexion SSH avec le compte jeedom, et passage en root :
$ su -
/!\ ATTENTION : le tiret est très important. (la raison est expliquée ici : [RTEX] Debian 10 - Buster - netinst - amd64 - Jeedom V4)
La documentation officielle de l’installation de Jeedom est ici : https://doc.jeedom.com/fr_FR/installation/cli
Installation en ligne de commande :
# wget https://raw.githubusercontent.com/jeedom/core/master/install/install.sh
# chmod +x install.sh
# ./install.sh
/!\ ATTENTION : pour rester en kernel 5.3.11 (pour que l’interface série du GPIO puisse fonctionner), avant de lancer install.sh, il faut mettre en commentaire la ligne :
apt-get -y dist-upgrade
(sauf si vous avez bien fait armbian-config/System/Freeze, voir plus haut)
Au cours de l’installation s’affiche une fenêtre “Samba server and utilities”. Taper sur la touche Entrée.
A la fin de l’installation de Jeedom, bien noter le mot de passe root MySQL indiqué.
L’installation de Jeedom V4 est OK. Elle a installé entre autres php7.3.
L’installation de Jeedom ajoute le composant “non-free” sur toutes les sources de paquets (dans /etc/apt/sources.list).
Le paquet “libav-tools” a été remplacé par le paquet “ffmpeg”, c’est donc ce dernier qu’il faut installer pour effectuer du codec stream audio video.
5) Associer l’Odroid-C2 au compte Market Jeedom
Ayant déjà une JeedomSmart j’ai déjà un compte Market et il est possible d’y associer aussi la l’Odroid-C2.
(on peut en avoir jusqu’à 5 avec un service pack Power) .
Se connecter avec un navigateur sur l’Odroid-C2 à partir de son IP. On obtient la mire de login Jeedom.
L’identifiant par défaut admin est aussi le mot de passe par défaut.
Sélectionner Réglages → Système → Configuration
Dans l’onglet « Général », apparaît des champs déjà renseignés :
- Système : DIY
- Clef d’installation : […] (identifie l’Odroid-C2 quand elle communique avec le Market)
et des champs à renseigner :
- Nom de votre Jeedom : jeedom3
- Langue : French
Dans l’onglet « Mises à jour » puis le sous-onglet « Market », cocher la case « activer Market ».
Si ce n’est pas déjà fait, et remplir le champ « Nom d’utilisateur » et « Mot de passe » en fonction des identifiants du Market (identifiants du Market et non pas de Jeedom).
Ensuite cliquez sur « Tester ». Doit afficher « Test réussi ». puis cliquez sur bouton Sauvegarder.
Retourner dans l’onglet « Général ».
Cliquer sur le bouton rafraîchir.
Se connecter ensuite au Market Jeedom pour s 'assurer que dans l’onglet « Mes Boxs » l’Odroid-C2 de nom jeedom3 à bien été ajoutée.
Si ce n’est pas le cas recommencer à cliquer sur le bouton rafraîchir évoqué précédemment, attendre un peu le temps de la prise en compte sur internet et rafraîchir la page du Market.
Maintenant que la l’Odroid-C2 est associée au compte Market Jeedom, il est possible d’utiliser le centre de mise à jour et la Gestion des plugins.
6) Installer la clé USB Aeotec et le plugin Z-Wave
Dans Jeedom, cliquer Réglages → Système → Eteindre
Débrancher le cordon d’alimentation de l’Odroid-C2.
Connecter la clé USB AeoTec sur un port USB
Rebrancher le cordon d’alimentation, l’anneau lumineux de la clé Aeotec clignote.
Nous allons installer le plugin Z-Wave.
Se connecter avec un navigateur sur l’IP de l’Odroid-C2.
Cliquer Plugins → gestion des plugins → Market
Sélectionner le plugin Z-Wave et cliquer installer.
Il ne reste plus qu’a configurer le plugin :
Cliquer le bouton « Activer ».
Cliquer le bouton « Relancer » les Dépendances (environ 15 minutes).
Sélectionner le Port clé Z-Wave : /dev/ttyACM0
Cliquer le bouton « Sauvegarder ». Le démon passe au statut OK.
Cliquer sur l’icône « Santé ». Le statut doit être à « Complete ».
Cliquer sur l’icône « Réseau Zwave ». L’État actuel doit être à « Network ready ».
7) Activation du port série du GPIO
Sur l’odroid-C2, le SoC Amlogic S905 expose 2 ports série (UART).
Le premier est relié a un connecteur (4 broches) et est utilisé comme port console.
Le deuxième est relié au connecteur GPIO (pin 8/10).
Avec l’image précédemment installée (Armbian_19.11.3_Odroidc2_buster_current_5.3.11.7z), le port console est actif par défaut et se nomme /dev/ttyAML0.
Il est visible avec la commande :
$ ls /dev | grep ttyAML
ttyAML0
/!\ ATTENTION : Par contre le port série du GPIO n’est pas actif par défaut.
Pour l’activer il convient d’ajouter dans le fichier /boot/armbianEnv.txt la ligne :
overlays=uartA
et de rebooter.
(sauf si vous avez bien fait armbian-config/System/Hardware/uartA, voir plus haut)
Le port série du GPIO se nomme /dev/ttyAML1
Il devient alors visible avec la commande :
$ ls /dev | grep ttyAML
ttyAML0
ttyAML1
/!\ ATTENTION : si vous utilisez une autre image que :
Armbian_19.11.3_Odroidc2_buster_current_5.3.11.7z
(ce qui donne dans Jeedom Analyse → Santé : Version OS : Linux hostname 5.3.11-meson64 #19.11.3 SMP PREEMPT Mon Nov 18 20:10:57 CET 2019 aarch64 GNU/Linux [10.2])
ou si vous faites un « apt upgrade », il se peut que /dev/ttyAML1 ne monte plus !
8) cartes GPIO RaZberry et EnOcean sur le port /dev/ttyAML1
Des cartes comme le RaZberry ou l’EnOcean Pi se montent sur le connecteur GPIO et utilisent le port série pour fonctionner.
Lors de la configuration du plugin Z-wave ou EnOcean, il est présenté une liste déroulante pour choisir le port.
Dans la liste déroulante, « Odroid C2 (/dev/ttyS1) » est utilisable avec une image Armbian Stretch Kernel 3 ou la JeedomSmart. Voir ici :
https://forum.jeedom.com/viewtopic.php?f=128&t=32932&start=40#p681583
Mais avec une Armbian Buster Kernel 5.3 le port série du GPIO n’est plus monté sur /dev/ttyS1 mais sur /dev/ttyAML1.
Au jour ou j’écris ses lignes /dev/ttyAML1 est sélectionnable dans la liste déroulante du plugin EnOcean (bien aller vers la fin de la liste) mais pas du plugin Z-wave.
Pour que /dev/ttyAML1 apparaisse dans la liste déroulante du plugin Z-wave il convient d’ajouter à l’aide du plugin JeeXplorer 2 lignes de code dans le fichier
/plugins/openzwave/plugin_info/configuration.php
Extrait avant l’ajout :
<?php
foreach (jeedom::getUsbMapping('', true) as $name => $value) {
echo '<option value="' . $name . '">' . $name . ' (' . $value . ')</option>';
}
?>
Extrait après l’ajout :
<?php
foreach (jeedom::getUsbMapping('', true) as $name => $value) {
echo '<option value="' . $name . '">' . $name . ' (' . $value . ')</option>';
}
foreach (ls('/dev/', 'tty*') as $value) {
echo '<option value="/dev/' . $value . '">/dev/' . $value . '</option>';
}
?>
Pour que le plugin Z-Wave (ou le core Jeedom) soit éventuellement modifié à la source par le développeur de Jeedom SAS, j’ai fais une demande d’amélioration ici :
Plugin Z-Wave - Odroid-C2 - accès à /dev/ttyAML1
La demande d’amélioration ayant été prise en compte, il n’est plus nécessaire de faire la modification de code décrite plus haut.
Voila j’espère que ce retour d’expérience sera utile aux membres Jeedom.
akenad