[RTEX] Odroid-C2 - eMMC - Armbian Buster - Jeedom V4

Tags: #<Tag:0x00007fbda21df058> #<Tag:0x00007fbda21def18>

Bonjour à tous, c’est akenad :slight_smile: ,

Aujourd’hui je vais vous présenter un retour d’expérience sur l’installation de Buster et Jeedom V4 sur un Odroid-C2 avec eMMC.

Équipements et logiciels utilisés:

  • PC Windows et BalenaEtcher
  • adaptateur USB3/eMMC
  • Odroid-C2 avec mémoire eMMC hardkernel 32 Go
  • Armbian Buster
  • Jeedom V4
  • Clé USB Z-Wave+ Aeotec Z-Stick Gen5 ZW090
  • Carte d’extension (GPIO) EnOcean Pi
  • Carte d’extension (GPIO) RaZberry v2 Z-wave+ pour Raspberry Pi ZWAVE.ME

Les étapes sont les suivantes :

  1. Nettoyage de l’eMMC
  2. Installation de Armbian Buster Kernel 5 sur l’eMMC
  3. Installation de l’eMMC sur l’Odroid-C2 et configuration du système
  4. Installation de Jeedom V4
  5. Associer l’Odroid-C2 au compte Market Jeedom
  6. Installer la clé USB Aeotec et le plugin Z-Wave
  7. Activation du port série du GPIO
  8. cartes GPIO RaZberry et EnOcean sur le port /dev/ttyAML1

1) Nettoyage de l’eMMC

  • Connecter l’eMMC sur l’adaptateur USB3/eMMC.
  • Connecter l’adaptateur sur le PC Windows.

Nous allons tout d’abord effectuer un « nettoyage » de l’eMMC, c’est-à-dire effacer la totalité des partitions éventuellement existantes.

Pour une eMMC hardkernel 32 Go neuve, il existe une partition FAT de 128 Mo, et une 2ième partition qui occupe le reste. Après nettoyage la totalité est « non alloué ».

Sous Windows, utilisation de DISKPART et du gestionnaire de disques.
Invite de commande Windows (Exécuter en tant qu’administrateur) :

> diskpart

DISKPART> list disk
N° disque Statut Taille Libre Dyn GPT
--------- ------------- ------- ------- --- ---
Disque 0 En ligne 238 G octets 2048 K octets
Disque 1 En ligne 29 G octets 23 G octets
>select disk 1
Le disque 1 est maintenant le disque sélectionné.

DISKPART> list disk
N° disque Statut Taille Libre Dyn GPT
--------- ------------- ------- ------- --- ---
Disque 0 En ligne 238 G octets 2048 K octets
* Disque 1 En ligne 29 G octets 0 octets
DISKPART> clean
DiskPart a réussi à nettoyer le disque.

DISKPART> list disk
N° disque Statut Taille Libre Dyn GPT
--------- ------------- ------- ------- --- ---
Disque 0 En ligne 238 G octets 2048 K octets
* Disque 1 En ligne 29 G octets 29 G octets

DISKPART> exit

Quitte DiskPart...

2) Installation de Armbian Buster Kernel 5 sur l’eMMC

La documentation de Armbian est ici : https://docs.armbian.com.

  • Télécharger l’image Armbian Buster disponible ici : https://dl.armbian.com/odroidc2/archive/
    J’ai téléchargé Armbian_19.11.3_Odroidc2_buster_current_5.3.11.7z
  • Désarchiver ce fichier avec 7-zip.
  • Flasher le fichier image (.img) résultant sur l’eMMC avec l’utilitaire balenaEtcher ici : https://www.balena.io/etcher/
  • 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 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.

Odroid-C2-Armbian-Buster-Kernel5

Nota : Les mise à jour éventuelles du système sont réalisés par la méthode Debian apt-get.

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 : https://community.jeedom.com/t/2510)

La documentation officielle de l’installation de Jeedom est ici : https://jeedom.github.io/documentation/installation/fr_FR/index

Au chapitre « 11) Autres » :
https://jeedom.github.io/documentation/installation/fr_FR/index#tocAnchor-1-32
Il est indiqué :

# wget https://raw.githubusercontent.com/jeedom/core/master/install/install.sh
# chmod +x install.sh
# ./install.sh

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.

Le port série du GPIO se nomme /dev/ttyAML1

Il devient alors visible avec la commande :

$ ls /dev | grep ttyAML

ttyAML0
ttyAML1

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://www.jeedom.com/forum/viewtopic.php?f=128&t=32932&start=40#p681583

Mais avec une Armbian Buster Kernel 5 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>';
}
?>

Odroid-C2-EnOcean
Odroid-C2-RaZberry2

Pour que le plugin Z-Wave soit éventuellement modifié à la source par le développeur de Jeedom SAS, j’ai fais une demande d’amélioration ici :
https://community.jeedom.com/t/9801

Voila j’espère que ce retour d’expérience sera utile aux membres Jeedom.

akenad :slight_smile:

1 J'aime