Ma configuration d'un Raspberry Pi 4B + OS sur SSD pour acceuillir Jeedom

Tags: #<Tag:0x00007fe320e6ee88>

Débutant en la matière pour la partie domotique, j’ai pu configurer Jeedom sur un Raspberry PI 4 B et y ajouter un disque dur SSD pour servir de support à l’OS.
Pour rappel, pour le moment le boot sur disque SSD n’est pas possible, il faut laisser la SDCard qui sert juste pour la phase de démarrage.
Ce “tuto” n’est pas destiné à être super détaillé sur certaines options évidentes (time zone, adresse email, …) qui peuvent être demandé à certains endroits.
Il compile toutes les commandes Linux que j’ai dû effectuer via à vis de mon matériel.
Une connaissance minimale de Linux est nécessaire.
Cette configuration fonctionne avec mon matériel, si vous désirez tester chez vous je ne saurais trop que vous conseiller de faire ceci sur une SDCard + disque SSD autres que ceux que vous utilisez en production. Car tout le contenu va être effacé.

Config Jeedom sur SSD

Matériel

Raspberry PI 4 B avec alimentation dédiée

SIGMA DESIGNS Contrôleur Z-Wave Plus dongle USB

Rfxcom Émetteur-récepteur USB 433,92 MHz avec Support Somfy Version XL

SDCard 64 Gb Classe 10 (une 8 Go devrait suffire mais j’ai pas sous la main)

Crucial CT120BX500SSD1(Z) SSD Interne BX500

UGREEN USB 3.0 Boîtier Disque Dur Externe 2.5 Pouces SATA HDD SSD 7mm à 9.5mm 6To Max 5Gbps UASP Compatible

Après l’installation les 2 clés USB ont été connectées sur un hub auto alimenté

AUKEY HUB USB 3.0 7 Ports ( 4 * USB 3.0 + 3 * Charge 2,4A ) Hub USB SuperSpeed

Les liens qui m’ont aidé

https://www.balena.io/etcher/

https://www.raspberrypi.org/downloads/raspbian/

https://www.tomshardware.com/news/boot-raspberry-pi-from-usb,39782.html

https://jamesachambers.com/raspberry-pi-4-usb-boot-config-guide-for-ssd-flash-drives/

https://nechry-automation.ch/2018/01/22/modifier-cle-de-securite-zwave/

https://www.domo-blog.fr/securiser-jeedom-https-certificat-ssl-dote-nouveau-challenge-http-01/

https://www.domoticz.com/wiki/PersistentUSBDevices

https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=196778

Actions à faire

Copier l’image Raspbian Buster Lite sur une SDCard

Utiliser Balena Etcher

Copier sur la SDCard un fichier ssh (vide et sans extension) directement dans la racine (le tout 1er niveau).

Mettre la SDCard dans le Raspberry et ne pas connecter pour le moment le SSD

Prendre la main en ssh sur le Raspberry

ssh -l pi 192.168.1.2 —> Adapter l’IP

Password par défaut : raspberry

sudo raspi-config

Changer password
Configurer wifi si nécessaire
Configurer localisation
Claviers : uniquement les 3 fr-fr, avec celui en UTF8 par défaut
Advanced option, expand file system
Update

sudo reboot

Upgrade des packages Raspbian

sudo apt update
sudo apt full-upgrade
sudo reboot

Connecter le disque SSD

sudo fdisk -l

sudo fdisk /dev/sda —> si SSD sur sda, adapter si sdb par exemple

p —> Pour voir les partitions
d —> pour deleter les partitions (répéter pour toutes) --> Attention ça efface tout ce qu’il y a sur le disque SSD
n —> pour créer une nouvelle partition. Prendre toutes les options par défaut.
w —> pour sauvegarder. Si erreur busy, rebooter et recommencer la commande

Formatage du disque

sudo mkfs.ext4 /dev/sda1 --> Ne pas oublier de rajouter le 1 à la fin de sda

Noter la valeur PARTUUID du disque SSD

sudo blkid

/dev/mmcblk0p1: LABEL_FATBOOT=“boot” LABEL=“boot” UUID=“5203-DB74” TYPE=“vfat” PARTUUID=“6c586e13-01”

/dev/mmcblk0p2: LABEL=“rootfs” UUID=“2ab3f8e1-7dc6-43f5-b0db-dd5759d51d4e” TYPE=“ext4” PARTUUID=“6c586e13-02”

/dev/sda1: UUID=“38aea4c9-5f32-4120-80d0-fa52b79fbd91” TYPE=“ext4” PARTUUID=“6c586e13-01

/dev/mmcblk0: PTUUID=“6c586e13” PTTYPE=“dos”

Afin d’éviter la confusion sur le PARTUUID de la SDCard on va changer le PARTUUID du disque SSD

sudo fdisk /dev/sda

x —> rentrer en mode expert
I —> changement de l’ID
0xd34db33f —> Nouvel ID, rajouter 0x au début et ne pas prendre le -01 de la fin
r —> quitter le mode expert
w —> pour sauvegarder

Noter la nouvelle valeur PARTUUID du disque SSD

sudo blkid

/dev/mmcblk0p1: LABEL_FATBOOT=“boot” LABEL=“boot” UUID=“5203-DB74” TYPE=“vfat” PARTUUID=“6c586e13-01”

/dev/mmcblk0p2: LABEL=“rootfs” UUID=“2ab3f8e1-7dc6-43f5-b0db-dd5759d51d4e” TYPE=“ext4” PARTUUID=“6c586e13-02”

/dev/sda1: UUID=“38aea4c9-5f32-4120-80d0-fa52b79fbd91” TYPE=“ext4” PARTUUID=“d34db33f-01

/dev/mmcblk0: PTUUID=“6c586e13” PTTYPE=“dos”

Noter également la valeur ID du disque SSD

sudo lsusb

Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. Name: ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

On indique qu’on veut désormais avoir l’OS sur le disque SSD
Les informations PARTUUID et ID relevés précédemment vont nous permettre d’indiquer exactement le disque qui va contenir l’OS. Sans ceci, en cas par exemple de changement de port usb du disque, celui-ci ne pourrait plus être référencé de la même manière par l’OS (sdb à la place de sda par exemple)

sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak --> Création d’une copie avant modification
sudo nano /boot/cmdline.txt

Ligne d’origine :

console=serial0,115200 console=tty1 root=PARTUUID=6c586e13-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Remplacer par :

usb-storage.quirks=174c:55aa:u console=serial0,115200 console=tty1 root=PARTUUID=d34db33f-01 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

Editer également le fichier /etc/fstab

cat /etc/fstab —> Pour voir l’état actuel du fichier

proc /proc proc defaults 0 0
PARTUUID=6c586e13-01 /boot vfat defaults 0 2
PARTUUID=6c586e13-02 / ext4 defaults,noatime 0 1

sudo nano /etc/fstab

Remplacer la deuxième ligne (celle avec ext4) par le PARTUUID d34db33f-01 du disque SSD

cat /etc/fstab —> Pour voir le nouvel état du fichier

proc /proc proc defaults 0 0
PARTUUID=6c586e13-01 /boot vfat defaults 0 2
PARTUUID= d34db33f-01 / ext4 defaults,noatime 0 1

Copie des données de la SD Card vers le disque SSD

sudo mkdir /media/ssddrive
sudo mount /dev/sda1 /media/ssddrive
sudo rsync -avx / /media/ssddrive
sudo reboot --> A partir de là, il faut qu’au démarrage du Rapsberry que la SDCard + le disque dur soient connectée. Sinon ça ne marche pas.

Installation Jeedom

wget -O- https://raw.githubusercontent.com/jeedom/core/master/install/install.sh | sudo bash

Notez à la fin le mot de passe MySQL, il change à chaque nouvelle installation

sudo reboot

Lancer le navigateur Internet et aller sur l’adresse http://192.168.1.2 —> Adapter l’IP

Par défaut : User = admin & Password = admin
Changer le mot de passe comme proposé

Se connecter au Jeedom Market, créer un compte si nécessaire.

Installer les modules nécessaires

Changement de la clé de sécurité par défaut de Zwave

cd /var/www/html/plugins/openzwave/resources/openzwaved/ozwave

cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//'

Noter la clé générée et la remplacer dans le fichier manager_utils.py
sudo cp manager_utils.py manager_utils.bak --> Création d’une copie avant modification
sudo nano manager_utils.py

Valeur d’origine (vers la ligne 24) : globals.options.addOptionString(“NetworkKey”, “0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10”, True)

Remplacer la chaine “0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10” par la nouvelle clé

Dans Jeedom redémarrer le démon ZWave

Sécuriser le site web Jeedom en https

Prérequis avoir un nom de domaine ( domotique.jeedom.fr dans l’exemple ci-dessous)

sudo nano /etc/hosts

Rajouter cette ligne : ServerName domotique.jeedom.fr

sudo nano /etc/apache2/apache2.conf

Rajouter cette ligne : ServerName domotique.jeedom.fr

cd /etc
sudo wget https://dl.eff.org/certbot-auto
sudo mv /etc/pip.conf /etc/pip.conf.bak --> Renommage du fichier car dans mon cas il fait planter la génération du certificat
sudo chmod a+x ./certbot-auto
./certbot-auto --apache -d domotique.jeedom.fr

Renouvellement automatique du certificat

whereis certbot-auto —> Permet de vérifier le chemin du certificat

sudo nano crontab -e --> La crontab est l’équivalent du gestionnaire de taches de Windows.

Ajouter la ligne suivante : 0 1 30 * * /etc/certbot-auto renew >> /var/log/ssl-renew.log

Attribuer un port USB de manière permanente

Cela évite qu’entre deux reboot d’avoir son périphérique USB sur un autre port système. Les ports des plugins Jeedom seront configurés avec les noms symboliques créés (SYMLINK+)

sudo lsusb -v | grep 'idVendor\|idProduct\|iProduct\|iSerial

idVendor 0x 0658 Sigma Designs, Inc.
idProduct 0x 0200 Aeotec Z-Stick Gen5 (ZW090) - UZB
iProduct 0
iSerial 1 E3040A02-4A02-0115-201B-041600CC95C0

idVendor 0x 0403 Future Technology Devices International, Ltd
idProduct 0x 6015 Bridge(I2C/SPI/UART/FIFO)
iProduct 2 RFXtrx433XL
iSerial 3 DO3ZB3XA

Création d’un fichier de regles pour le nomage.
sudo nano /etc/udev/rules.d/99-usb-serial.rules

Ajouter les 2 lignes ci-dessous en prenant les valeurs trouvées avec la commande précédente

SUBSYSTEM=="tty",ATTRS{idVendor}=="0658",ATTRS{idProduct}=="0200",ATTRS{serial}=="E3040A02-4A02-0115-201B-041600CC95C0", SYMLINK+="ttyUSB-ZWave"

SUBSYSTEM=="tty",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6015",ATTRS{serial}=="DO3ZB3XA", SYMLINK+="ttyUSB-RFX433"

sudo reboot

Et volià c’est fini :slight_smile:

4 J'aimes

les 3 points aussi… mise en forme qui fout le bordel

Merci, j’ai modifié la mise en forme des commandes pour éviter ce genre d’erreur.

Bonjour,

Pour faire un Pi4 SSD, pour ceux qui ont aussi un Pi3+ sous la main, une autre méthode ici : https://community.jeedom.com/t/2512

akenad :slight_smile:

1 J'aime

alors ? la différence avec le pi3 du coup ? vitesse accrue pour l’affichage de la page web ou pas ?

Aucune idée, j’avais pas de Raspberry avant.

Bonjour,
Petite question sur le AUKEY HUB USB 3.0 7 Ports, nous sommes bcp à l’utiliser et le pb en cas de coupure de courant c’est qu’il reste à l’état éteint il ne reprend pas sa position ON, qqun aurait il une solution à part changer le hub ?

Merci

Bonjour,
Une solution est de tout mettre sous onduleur…Il en existe de petite puissance.
Cela permet aussi d’augmenter la longévité du matériel !

Bonjour,

Excellent tuto, très exhaustif

@alientouch Autre solution utiliser la carte subtronics X85 (il existe plusieurs version M2, msata…) dédiée au PI

Merci mais moi le hub usb Aukey qui me pose pb :grinning:

Bonjour,

J’ai suivi le tuto jusqu’au dernier reboot avant l’installation de Jeedom mais impossible de me connecter au pi j’obtiens : « opération time out »
Une idée?
Merci

Salut,
Tu es sur de l’adresse ip de ton pi ?
Essaye déjà de faire un ping dessus

ping 192.168.*.* -c 3

où tu remplace les * par les bons chiffres bien sur :wink:

Bonjour,
Très bon tuto
J’ai trouvé sur Domo-blog une explication plus imagée à comparer à la votre
Voici le lien

J’ai tout refait à partir d’un autre tuto et cette fois ci (au même endroit) j’ai le message :« connection refused »
Le ping est bon
Merci, je pense avoir un souci avec le SSD, je vais retourner à l’utilisation sur carte SD en attendant l’upgrade pour rpi4 … :cry:

Lesson du jour … ne jamais être défaitiste trop vite !
C’était simplement la disparition du fichier SSH de la carte
Je retourne à l’action :star_struck:

Bonjour a tous,
J’ai migré ce jour sur ssd , mon soucis est que je ne vois plus mon CC2531 pour zigbee2mqtt, j’ai fait des recherches mais je seche??? Un avis svp…

Bonjour.

Arrêtez tout. Permutez les ports USB, testez de nouveau.

Veillez aussi à avoir une alimentation suffisamment puissante.

Bonsoir @Fabrice,
J’ai tenté la permutation mais ça n’a rien donné. J’ai refait La procédure de root ssd et une installation complète, et c’est Ok… Merci quand même du conseil😉.
Bonne soirée.