Introduction et contexte

Dans le précédent article, je vous expliquais que je me lançais dans la domotique et que je partais sur une solution basée sur un Raspberry Pi et la solution logicielle Jeedom. Dans cet article, je vais comme promis vous détailler la procédure à suivre pour installer et configurer un Raspberry Pi 4B?

Installation de Raspian

Configuration de la carte SD

 La première étape consiste à télécharger l’image de Raspian. Plusieurs versions existent. Personnellement, j’ai choisi la version desktop sans les logiciels): https://www.raspberrypi.org/downloads/raspbian/

Une fois le téléchargement terminé, on passe à l’installation du système sur la carte mémoire en suivant les étapes suivantes:

  • Insérez la carte mémoire dans votre chromebook (ou utilisez un lecteur externe)
  • Lancez l’application <Recovery>
  • Une fois l’application démarrée, il faut cliquer sur la roue dentée en haut à droite et sélectionner l’option <Utiliser une image locale>
  • Sélectionnez alors le fichier .zip téléchargé précédemment
  • Sélectionnez le support dans la liste et cliquez sur le bouton <Continuez>
  • Le système vous informer que le contenu de la carte sera effacé. Validez via le bouton <Créer>
  • Le système s’installe alors sur la carte:

Au bout de quelques minutes, la carte est prête.

  • Cliquez sur le bouton <OK>. L’application se ferme
  • Allez dans l’application fichier et sur la carte mémoire. Vous verrez que deux dossiers ont été créés: <boot> et <rootfs>

Il va nous falloir accéder au RP à distance et pour cela, nous utiliserons le protocole SSH. Pour permettre cela, suivez les étapes suivantes:

  • Lancez l’application <Text>. Sans taper le moindre texte, cliquez sur <Save as> et allez dans le dossier <root> de la carte mémoire
  • Nommez ce fichier <ssh> (pas d’extension, le nom par défaut est <Untitled 1.txt>, il faut donc remplacer ce nom par <ssh>)
  • Cliquez sur le bouton <ENREGISTRER>

Configuration du disque dur (optionnel)

Si comme moi, vous préférez utiliser un disque dur externe pour Jeedom, il faut alors brancher le disque dur externe sur le chromebook (sur un autre port USB dans le cas où vous utilisez un lecteur de carte SD) et refaire les deux manipulation précédentes:

  • Installation de Raspian en sélectionnant cette fois le disque dur
  • Création du fichier SSH dans la partition boot (vous pouvez simplement faire une copie du fichier de la carte SD vers le disque dur)

Insertion de la carte SD dans le RP

Retirez la carte de votre chromebook (ou du lecteur) en n’oubliant pas au préalable de faire un clic droit sur la carte depuis l’application <fichiers> afin de s’assurer que le chromebook ne soit plus en train d’écrire dessus. Faites de même avec le disque dur (si besoin).

Insérez ensuite la carte dans le RP. Attention, il faut retourner le RP, le lecteur se trouvant sur la largeur du RP, de l’autre côté des ports USB ou réseau. La carte dépasse un peu, c’est normal.

A ce stade et sans risque, vous pouvez éteindre votre RP en enlevant l’alimentation.

Configuration initiale

A ce stade et si vous envisagez une installation sur le disque dur, NE BRANCHEZ PAS le disque sur le RP !

Reliez votre RP via un câble réseau à votre box et alimentez-le. Le RP démarre tout seul. Deux lumières s’allument: Une rouge indiquant que le RP est alimenté et une verte indiquant l’écriture d’information sur la carte SD.

Pour se connecter au RP, il va nous falloir identifier son adresse IP. Pour cela, vous pouvez aller dans l’interface de votre box et identifier l’IP pour l’équipement nommé raspberrypi. L’autre solution consiste à “pinger” l’équipement sur base de son nom. Je recommande cette solution car il va de toute manière falloir passer par des lignes de commandes linux pour les étapes suivantes.

Identifier l’adresse IP du RP

Lancez sur votre ChromeBook l’application <Terminal> et tapez la commande suivante:

ping raspberrypi

Vous devriez alors voir une liste de lignes du type:

<64 bytes from raspberrypi.home (192.168.1.59): icmp_seq=1 ttl=62 time=6.46 ms>

Dans mon cas, l’adresse IP de mon RP est donc 192.168.1.59 (à noter quelque part)

Appuyez sur les touches [crtl] et [c] pour stopper la commande.

Connexion en SSH au RP

Toujours dans le terminal, tapez la commande ssh pi@adresseip donc dans mon cas

ssh pi@192.168.1.59

Une clé publique est générée et le système vous demande de confirmer que vous voulez vous connecter. Tapez yes puis appuyez sur la touche [entrée].

Un mot de passe vous est demandé, tapez raspberry

Branchement du disque dur (optionnel)

Si vous souhaitez utiliser un disque dur, il est alors temps de le brancher en USB sur le RP. Utilisez un des ports bleus (USB 3.0) puis assurez-vous que le disque dur est reconnu sur le RP en saisissant la commande suivante dans le terminal:

sudo lsusb

Comme vous pouvez le voir sur l’écran ci-dessous, la commande a été lancée avant et après le branchement du disque dur.

Une nouvelle ligne est donc apparue et indique la marque du disque dur. (dans mon cas, Seagate)

Notez l’ID de votre disque. Le mien a pour valeur 0bc2:2300

De base, le RP démarre sur la carte SD. Il faut donc changer cela en modifiant la table des partitions grâce à l’utilitaire fdisk. Lancez-le via la commande suivante:

sudo fdisk /dev/sda

La carte SD et le disque dur ont le même nom au niveau système. Pour remédier à cela, entrez dans le mode expert en tapant la lettre x puis la touche [Entrée].

Pour renommer le disque, suivez les étapes suivantes:

  • Définissez et notez un identifiant de disque comme par exemple 0xabcd1234 (il y a un format à respecter)
  • Tapez sur la  lettre [i] puis la touche [Entrée]
  • Saisir l’identifiant choisi puis validez avec la touche [Entrée]
  • Retournez au menu principal en tapant [r] puis la touche [Entrée]
  • Sauvegardez les changements en tapant [w] puis la touche [Entrée]

L’étape suivante consiste à indiquer au RP qu’il doit démarrer sur le DD et non la carte SD. Pour cela, il va falloir modifier le fichier /boot/cmdline.txt. Effectuez les actions ci-dessous:

  • Effectuez une copie de sauvegarde du fichier que nous allons modifier via la commande:
sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak
  • Lancez la commande
sudo nano /boot/cmdline.txt
  • Un éditeur de texte va s’ouvrir. Ajoutez la ligne suivante en début de fichier en prenant soin d’y modifier l’ID du disque par le votre (0bc2:2300 pour moi) et laissez un espace après le dernier caractère (Attention il n’est pas possible de copier-coller la ligne):
 usb-storage.quirks=0bc2:2300:u
  • Recherchez (manuellement à l’aide des flèches) la valeur PARTUUID dans le fichier et remplacez la valeur après le caractère [=] par la valeur définie quelques lignes plus haut en enlevant les deux premiers caractères (cela donne donc abcd1234 pour moi).
  • Sauvegardez et quittez nano en tapant les combinaisons de touches [ctrl] + [x] puis [Y] puis la touche [Entrée]

Vérifier le contenu de votre fichier en saisissant la commande suivante:

sudo cat /boot/cmdline.txt

Redémarrez le RP via la commande suivante:

sudo reboot

Pour confirmer que votre RP a bien redémarré, le plus simple est de lancer un ping continu sur son adresse IP. La commande est donc:

ping adresse_ip_de_votre_rp_comme_noté_précedement

Lorsque le RP répond, connectez-vous en SSH sur votre RP comme déjà effectué précedement.

NOTE :

Durant la rédaction de cet article, le RP n’était plus joignable en SSH mais répondait au ping. J’ai donc dû éteindre le RP, retirez la carte mémoire et recréer le fichier SSH sur celle-ci. Au redémarrage, le RP a mis plus d’une minute pour être joignable via ping et SSH. De plus, la clé SSH avait changé et il a fallu taper une commande supplémentaire pour corriger cela. Cette commande démarre par <ssh-keygen -f> et est indiquée. Une fois cette commande tapée, j’ai pu relancer la commande ssh sans soucis.

 L’étape suivante consiste à éditer le fichier fstab via nano et donc la commande suivante:

sudo nano /etc/fstab

Deux lignes apparaissent, une pour la partition / et l’autre pour la partition /boot:

Allez au niveau de la partition / et changez la valeur de PARTUUID avec la valeur de l’ID du disque (abcd1234 dans mon cas). Vous devriez donc avoir ce type de changement:

Sauvegardez et quittez en tapant les combinaisons de touches [ctrl] + [x] puis [Y] puis la touche [Entrée] et redémarrez le RP via la commande

sudo reboot

Une fois le redémarrage effectué, reconnectez vous au RP en SSH. La dernière étape consiste à redimensionner la partition.

Pour cela, saisissez les commandes qui apparaissent dans l’image ci-dessous:

Je ne rentre pas dans le détail mais si vous avez déjà manipulé des partitions, cela devrait être assez clair pour vous. Les commandes successives à saisir sont donc:

sudo fdisk /dev/sda 
d puis 2 puis n puis p puis 2
532480
tapez la touche [Entrée] pour sélectionner la valeur par défaut
N puis w

Un nouveau redémarrage est nécessaire pour appliquer ces changements. Pour cela, exécutez la commande suivante:

sudo rebootsudo reboot

Une fois le RP redémarré, reconnectez vous en SSH et lancez la commande suivante:

sudo resize2fs /dev/sda2

Cette opération peut prendre quelques minutes…

Une fois l’opération terminée, la carte SD ne sera donc utilisée que dans le cadre du démarrage du RP. Jeedom s’exécutera intégralement sur le disque dur.

Mise à jour de la liste des paquets ainsi que du système

Quitte à être branché en filaire, profitons-en pour mettre à jour le système Raspian. Pour cela, tapez dans le terminal la commande suivante:

sudo apt-get update && sudo apt-get upgrade

Attention, cette opération va prendre plusieurs minutes en fonction de votre débit Internet. Régulièrement, il faudra valider l’installation en tapant sur la touche [Y].

Configuration graphique des autres paramètres

Sur Raspian, de nombreuses options peuvent être configurées de manière graphique. Pour cela, Saisissez la commande suivante:

sudo raspi-config

Une fenêtre apparaît alors:

Je ne vais pas vous expliquer l’intérêt de tous les menus mais voici ce que j’ai configuré de mon côté:

  • Menu 1: permet de changer le mot de passe du user pi. Je recommande fortement de faire cela en premier lieu. En sélectionnant cette entrée, vous allez retourner dans le terminal où vous allez devoir saisir votre nouveau mot de passe. A noter que j’ai eu quelques soucis avec les chiffres sur mon chromebook lors de l’utilisation de l’interface graphique…
  • Menu 2: Permet de configurer le WiFi via le menu N2:
    • Sélectionnez votre pays
    • Saisissez votre SSID
    • Saisissez le mot de passe WiFi
  • Menu 8: Mise à jour de cet outil

L’appui sur la touche [Echap] permet de revenir en arrière et de quitter l’outil.

Maintenant que le WiFi est configuré, le RP peut être connecté sans fil. Attention, le passage en WiFi va certainement changer son adresse IP. Pour retrouver son adresse IP, j’ai dû aller voir dans l’interface de ma box… Une fois cela effectué, il est très simple au sein de votre box de définir une IP fixe pour votre RP.

Pour éteindre le RP, tapez la commande suivante:

sudo shutdown

Le RP va s’éteindre au bout d’une minute. Vous pourrez donc ensuite le déplacer et le rebrancher électriquement pour l’allumer.

Activer l’accès à une interface graphique à distance (optionnel)

Reconnectez-vous à votre RP en SSH via la console puis saisissez la commande suivante:

sudo apt-get install xrdp

Vous devrez valider l’installation de paquets. Une fois cette opération terminée, lancez l’application Android <Microsoft Remote Desktop> et cliquez sur le bouton + en haut à droite et sélectionnez <Desktop>. Dans la fenêtre qui apparaît, saisissez l’adresse IP de votre RP et appuyez sur <save> en haut à droite.

Une icône apparaît. Appuyez dessus pour lancer la connexion. La première fois, un message va apparaître. Cochez la case à cocher et appuyez sur CONNECT.

Dans la fenêtre suivante, saisissez le username (pi) et mot de passe de votre RP (que vous avez personnalisé précedement). Vous arrivez alors sur le bureau :-)

Enfin, lancez la commande ci-dessous depuis le terminal en étant connecté via SSH au RP:

vcgencmd otp_dump | grep 17

Vous devriez alors avoir une réponse équivalente à ce que l’on voit ci-dessous:

Si tel n’est pas le cas, il va falloir refaire les étapes de ce paragraphe car il y a dû y avoir un souci à un moment donné.

Installation de Jeedom

Le plus dur est fait. Dans la console, il ne reste plus qu’à saisir la commande suivante:

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

Si vous avez configuré votre RP pour que l’installation se fasse sur un disque dur, vous constaterez que la lumière verte du RP ne s’allume plus ce qui prouve que l’installation se fait bien sur le disque dur.

Au bout de quelques minutes, un message va apparaître. Cliquez sur la flèche de gauche pour aller sur [Yes] et appuyez sur la touche [Entrée]

Une fois l’installation terminée, il est indiqué un mot de passe root pour mySQL (A conserver au cas où même s’il ne m’a jamais servi) et il est demandé de redémarrer. On utilise donc la commande habituelle dans le terminal:

sudo reboot

Pour se connecter à Jeedom, il suffit de taper l’adresse IP du RP dans un onglet et de se connecter avec le user admin et le mot de passe admin. Enfin, le système devrait vous proposer de configurer un accès au Jeedom Market. Procédez alors à cette configuration qui nous servira par la suite.

L’installation est donc terminée…

Dans le prochain article, nous verrons comment sécuriser Jeedom. Merci pour votre lecture et à la semaine prochaine !

[googleapps domain= »docs » dir= »forms/d/e/1FAIpQLSd1Hti0zqh-Q_RilIAekcmhPJeD-UtiMboln5fABzl8nMB-rg/viewform » query= »embedded=true » width= »640″ height= »875″ /]
Shares:

5 Comments

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.