[RTEX] installation Odroid-C4 avec Armbian Buster Kernel 5.9 et migration Jeedom V4

Bonjour,

Voici un retour d’expérience sur l’installation d’Armbian Buster sur un odroid C4 équipé d’une carte eMMC, puis de l’installation de jeedom V4, avec la restauration d’une conf jeedom existante.

Cette doc s’inspire très fortement de la doc d’@akenad concernant l’installation d’Armbian Buster sur un odroid C2. La procédure d’installation diffère principalement dans le choix de l’image à installer sur la carte eMMC et de la partie migration jeedom ; plus quelques options qui sont totalement personnelles, et liées à une utilisation de l’Odroid pour d’autres usages.
A noter que, contrairement à l’installation de @akenad, je n’ai pas de carte d’extension reliées au GPIO ; je n’ai, pour la partie jeedom, que 2 dongles USB raccordés aux ports usb de l’Odroid.
si vous avez des cartes d’extensions reliées au GPIO, reportez-vous à sa doc pour ces spécificités.

Je vais pomper outrageusement sur la doc et le plan de de doc de @akenad.

Équipements et logiciels utilisés :

  • PC Windows et BalenaEtcher
  • adaptateur USB/eMMC
  • Odroid-C4 avec mémoire eMMC hardkernel 32 Go
  • Armbian Buster Kernel 5.9
  • Jeedom V4
  • Dongle USB Z-Wave+ Aeotec Z-Stick Gen5
  • Dongle USB ConBee V2

Les étapes sont les suivantes :

  1. Préparation de l’eMMC
  2. Installation de Armbian Buster Kernel 5.9 sur l’eMMC
  3. Installation de l’eMMC sur l’Odroid-C4 et configuration du système
  4. Installation de Jeedom V4 sur l’Odroid-C4
  5. Sauvegarde ancienne installation
  6. restauration de Jeedom sur l’Odroid-C4
  7. spécificités liées au plugin Deconz et au dongle USB ConBee V2
  8. spécificités liées au plugin Z-Wave et au dongle USB Aeotec Z-Stick Gen 5

Préparation de l’eMMC

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

Au 19/01/2021, j’ai supprimé le contenu de cette section
Elle consistait à supprimer les partitions déja existantes sur l’eMMC, à l’aide de diskpart, sous Windows.
C’était une opération délicate, qui en fait, n’est pas nécessaire : balenaEtcher écrase l’ancien partitionnement.

Installation de Armbian Buster Kernel 5.9 sur l’eMMC

La documentation de Armbian est ici : https://docs.armbian.com ; la doc dédiée à l’odroid-c4 est ici : https://www.armbian.com/odroid-c4/.
Dans cette dernière page, se rendre dans la section ‹ Recommended download ›, et choisir Buster - stable - 5.9.y ; au 12/12/2020, ceci va télécharger le fichier Armbian_20.11.1_Odroidc4_buster_current_5.9.12.img.xz

  • 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/
    (balenaEtcher crée une partition EXT4 d’environ 2 Go et le reste est « Non alloué »)
  • Ejecter l’adaptateur USB/eMMC.

Installation de l’eMMC sur l’Odroid-C4 et configuration du système

  • Connecter l’eMMC sur l’Odroid-C4.

Eventuellement pour suivre les sorties consoles, connecter écran HDMI et clavier USB mais ce n’est pas indispensable. C’est même plus compliqué, car le clavier sera reconnu en qwerty ; dans ce cas, faire attention aux mots de passe.

  • Brancher le cable réseau puis le cordon d’alimentation.

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.

Si tout se passe bien, au bout d’une minute, l’Odroid-C4 est visible sur le réseau.
Trouver l’adresse IP allouée par le serveur DHCP à l’Odroid-C4 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.
Comme demandé, créer un utilisateur. Cet utilisateur aura le droit de passer administrateur ; @akenad propose comme nom d’utilisateur jeedom ; un autre nom est possible.

Appuyer plusieurs fois sur la touche ENTER.

Pour configurer quelques éléments système lancer la commande :

# armbian-config
Nous allons configurer la TimeZone, le Hostname, le clavier, et mettre éventuellement une adresse IP fixe (ce n’est pas mon option ; je positionne l’IP en DHCP, dans mon routeur) :

  • option Personal :
    Timezone : Europe Paris
    Locales : ajouter fr_FR.UTF8, puis choisir cela comme défaut
    Keyboard : choisir PC générique 105 touches (internat.). Puis Francais, puis Francais, puis Disposition par défaut
    Hostname : choisir un nom qui vous convient. Ne prendre que des caractères simples pour ce nom.
  • option Network :
    IP static (pour ceux qui ne veulent pas utiliser DHCP)

Redémarrer l’Odroid pour que l’ensemble de ces options soient valides.

# reboot

Je suppose que vous vous connectez maintenant avec le compte utilisateur prédédent.
Si vous avez indiqué un mot de passe simple pour les comptes root et le compte utilisateur, il faut maintenant impérativement les modifier, avec un mot de passe plus compliqué :

~$ passwd
Changement du mot de passe pour xxxxxxxx.
Current password:
Nouveau mot de passe :
Retapez le nouveau mot de passe :
passwd: password updated successfully

$ sudo passwd

[sudo] Mot de passe de xxxxxxxx :   // il s agit du nouveau mot de passe que vous venez de saisir
Nouveau mot de passe :
Retapez le nouveau mot de passe :
passwd: password updated successfully

On met à jour le système :

su -
# apt update && apt upgrade

Maintenant, on a un système opérationnel.

Installation de Jeedom V4

On va exécuter la procédure d’installation de jeedom ; ceci va installer jeedom, et tout ce qui est nécessaire à son fonctionnement.

Connexion SSH avec le compte utilisateur, 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

Sauvegarde ancienne installation

Depuis l’interface web de jeedom, onglet Réglages, choisir Système, puis Sauvegardes.
Cliquer sur Lancer une sauvegarde ; attendre la fin de la procédure. C’est rapide, 2 ou 3 mn.
Les backups de jeedom se trouvent dans /var/www/html/backup/ ; recopier ce dernier backup dans le dossier /var/www/html/backup/ du nouveau système

Faire également un backup de la configuration de la clé ConBee :
. ouvrir une page de navigateur à l’adresse http://192.168.x.y:8484/ (192.168.x.y correspond à l’adresse IP du jeedom)
. Menu - Settings - Show Advanced Settings . Cliquer sur ‹ Save Configuration ›. Ceci va télécharger le fichier de backup sur votre ordinateur.
chez moi, le nom de fichier est raspbee_gateway_config_AAAA-MM-JJ.dat
Note : ceci est une précaution. Ce fichier est identique au fichier qui se trouve dans /var/www/html/plugins/deconz/data, d’extension .tar.gz, qui est écrit tous les jours par jeedom et qui fait partie de son backup

Arreter ce serveur : onglet Réglages, choisir Système, puis Eteindre.

restauration de Jeedom

sur l’odroid c4, vérifier que /var/www/html/backup/ contient bien le backup précédent.
rendre www-data propriétaire du backup :

# chown www-data:www-data /var/www/html/backup/*

Si d’autres fichiers de backup sont présents dans ce dossier, il faut les sauvegarder ailleurs ; ce dossier ne doit contenir que le backup souhaité.
Lancer la restauration du backup ; ceci est rapide : moins d’une minute.

# php /var/www/html/install/restore.php
[START RESTORE]
***************Début de la restauration de Jeedom 2020-12-16 18:59:37***************
Envoi l'évènement de début de restauration...OK
Vérification des droits...OK
Fichier utilisé pour la restauration : /var/www/html/install/../backup/backup-VMjeedom-4.0.61-2020-12-16-18h07.tar.gz
Backup database access configuration...Can not copy /var/www/html/install/../core/config/common.config.php
OK
Disable all task OK
...
Temps de la restauration : 9s
***************Fin de la restauration de Jeedom***************
[END RESTORE SUCCESS]

# reboot

Vérifiez maintenant que vous pouvez vous connecter à l’interface web de jeedom. Pour le moment, les plugins Z-wave et Deconz ne fonctionnement pas.
Voir la suite

spécificités liées au plugin Deconz et au dongle USB ConBee V2

concernant le plugin
Ce plugin a besoin de dépendances pour fonctionner ; celles-ci ne font pas partie de la procédure de backup-restore jeedom.
. Dans la page de configuration du plugin, dans la section Dépendances, cliquer sur Relancer ; ceci va installer les dépendances nécessaires.
Si le démon ne s’est pas relancé quelques minutes après la fin de cette procédure, cliquer sur le bouton Redémarrer de la section Démon
. dans la section Configuration - Installation Deconz local, cliquer sur Lancer

concernant le dongle :
ou plutot, l’environnement logiciel de la clé (démon deconz) : il faut restaurer la configuration, que l’on a sauvegardé auparavant.
. ouvrir une page de navigateur à l’adresse http://192.168.z.w:8484/ (192.168.z.w correspond à l’adresse IP de l’odroid c4)
. ceci redirige vers phoscon il faut cliquer sur la clé Phoscon-GW, redéfinir le nom, et choisir un mot de passe.
La configuration de la clé est vierge ; il ne faut rien créer.
Menu - Passerelle - Options de sauvegarde. Cliquer sur le bouton Sauvegarde de la charge ; suivant. Choisir le fichier sauvegardé auparavant.
Par exemple, raspbee_gateway_config_AAAA-MM-JJ.dat , puis valider en cliquant sur le bouton Sauvegarde de la charge
. redémarrer l’odroid c4
. vérifier dans phoscon que la clé a retrouvé sa config.
. controler dans jeedom le réseau DeConz

spécificités liées au plugin Z-Wave et au dongle USB Aeotec Z-Stick Gen 5

concernant le dongle :
C’est un dongle qui a plusieurs années, et qui fonctionnait très bien avec l’odroid c2. Malheureusement, il n’était plus reconnu par le système de l’odroid c4.
C’est un problème similaire à celui rencontré avec le Rpi4 ; voir par exemple cette discussion : Compatibilité AEOTEC Zstick Gen 5 et RPI4B
Je l’ai réglé en raccordant le dongle à l’odroid par l’intermédiaire d’un hub USB non alimenté.
Je compte acheter plus tard une nouvelle clé Z-Stick Gen5+, pour éliminer ce hub

concernant le plugin
Ce plugin a besoin de dépendances pour fonctionner ; celles-ci ne font pas partie de la procédure de backup-restore jeedom.
Dans la page de configuration du plugin, dans la section Dépendances, cliquer sur Relancer ; ceci va installer les dépendances nécessaires.
Si le démon ne s’est pas relancé quelques minutes après la fin de cette procédure, cliquer sur le bouton Redémarrer de la section Démon

2 J'aimes

Voici quelques astuces concernant l’installation de l’Armbian, en supplément.

Ceci concerne les personnes ayant quelques compétences en linux - debian - …
Elles ne sont pas indispensables au bon fonctionnement de jeedom

partitionnement de la carte emmc

par défaut, après le flash de la emmc ; lors du premier démarrage de l’Odroid, la partition va être automatiquement étendue et occuper tout l’espace disponible ; dans mon cas, 32 Go.
Si vous souhaitez que la partition n’occupe pas tout l’espace, il suffit de créer auparavant un fichier /root/.rootfs_resize, et d’indiquer le pourcentage d’utilisation de la carte pour la partition root ; par exemple, 50%.
Ceci permet de créer ensuite une seconde partition, pour un usage spécifique.

On pourra supprimer ce fichier après le premier reboot du système

/etc/rc.local

Si vous l’aviez modifié dans le système précédent, pensez à le récupérer.

iptables

pour sécuriser l’accès au système.

crontab

A adapter, si vous avez modifié certains crons. Vérifier la crontab de root et de jeedom, et les crons dans /etc/cron.d

fail2ban

C’est un outil qui est installé lors de l’install jeedom, eet qui permet de bannir des adresses ip ayant tenté de se connecter au système, avec un mauvais mot de passe. Le but est de protéger le système des attaques.
Le problème, c’est que si vous vous connectez avec un mauvais mot de passe, votre propre PC est banni pour plusieurs minutes.
Afin de l’éviter, si votre propre PC a une adresse IP fixe, vous pouvez le mettre en liste blanche.
Pour cela, il suffit de créer un fichier /etc/fail2ban/jail.d/custom.conf, et d’y mettre ceci (je suppose que l’IP de votre PC est 192.168.0.150) :

[DEFAULT]
ignoreip = 127.0.0.1 192.168.0.150

mail

Plusieurs cron sur mon odroid sont susceptibles d’envoyer des mails, via la commande ‹ mail ›.
Pour relayer ces messages, j’utilise msmtp ; ca marche bien, avec quelques contraintes.
En particulier, au niveau des cron : j’ajoute en début de ces crons la ligne suivante :

MAILTO="<monAdresseMail>"

dyndns

Si besoins de dyndns géré par cet odroid ; J’utilise dynu ; gratuit, facile d’install, marche bien. voir https://www.dynu.com/

Bonjour, merci pour ce retex. Je suppose que les perfs sont au rendez-vous ?

Oui, bien sur.
Ceci dit, je n’avais pas de problèmes avec l’odroid c2 ; j’ai changé car j’envisage de l’utiliser en plus de jeedom à d’autres choses.
Mon odroid c2 a été recyclé pour une installation jeedom pour mon fils

Merci, ce sujet m’a bien aidé pour passer de rpi3b+ à Odroid C4.
Bonne journée.

Merci pour ce post, celui ci m’a fortement été utile pour l’installation d’un jeedom sur un rockpi 4b+ avec emmc embarqué. La démarche est très similaire.
Bravo pour ce post.

Bonjour mangles,

Pour le Rock Pi4B+ c’est ici :

akenad :slight_smile: