Construction d’une image pour un Pi Bureautique et/ou Domotique

Pour cet article, je vais reprendre la création d’une image à partir de zéro et essayer d’automatiser certaines étapes car je me rends compte, avec l’expérience, que c’est une opération qui se renouvelle plus que je ne l’imaginais. Les changements de versions majeures de Raspbian, les évolutions suite aux nouvelles versions des Raspberry ou le passage de 32 à 64 bits sont des étapes où il n’est pas toujours possible de modifier l’image existante. Il faut repartir tout au début et ce n’est pas facile (pour moi !) de retrouver tous les éléments utilisés au fil du temps.

Pour commencer, il faut télécharger la version de Pi OS (nouveau nom de Raspbian) qui va servir de base à notre image, c’est ici que cela se passe en général :  Versions de Pi Os

mais comme je veux partir sur une version 64 bits qui est encore en beta, je vais aller là :

Versions beta 64 bits de Pi Os

Après le téléchargement, on copie le fichier téléchargé sur une carte SD pas trop grosse, 16Go de préférence, car sinon les opérations de copie seront plus longues. J’utilise Raspberry Pi Imager qui est déjà sur toutes les images « bureautique ». On peut le télécharger pour PC ou Mac à partir de cette page : Pi Imager

ou l’installer sur un Pi avec interface graphique avec cette commande :

On installe la nouvelle carte SD dans un Pi qui dispose d’une connexion réseau et d’un écran/clavier pour le premier démarrage. Une phase d’initialisation débute pour le paramétrage et les premières mises à jour.

 

Après avoir re booté en validant le Restart proposé (image 14), il faut activer SSH (Choix Préférences + Configuration du Raspberry Pi + onglet Interfaces : image 15) pour permettre la connexion distante et la copie des fichiers nécessaires à la poursuite de l’initialisation. Avec la commande ifconfig lancée dans une fenêtre Terminal, on récupère les adresses IP pour la connexion et, depuis un PC (ou un autre raspberry) on copie avec FileZilla les fichiers du répertoire /image/init dans /home/pi/domoticz/scripts/image/init de la machine à initialiser. Depuis l’image H, tous les fichiers nécessaires sont inclus dans ce répertoire. Après la copie, il faut mettre les fichiers .sh en mode exécutable avec la commande sudo chmod +x *.sh (en étant positionné sur le répertoire /init de la nouvelle machine).

Il faut d’abord rajouter les repository (ou dépôts) nécessaires pour les logiciels qui ne sont pas présents sur le dépôt de base. Cela permet d’avoir accès à des versions plus récentes avec le dépôt « backports » ou à des logiciels non présent sur le dépôt général. On va donc lancer le shell pi_ajout_depots.sh ci-dessous.

Il faut ensuite installer les logiciels additionnels dans l’ordre ci-dessous, l’ordre est important car il y a des dépendances entre les logiciels. Le principe, c’est de lancer le shell et de répondre aux questions, en donnant le nom du fichier de paramètres à utiliser. Lors des phases d’installation, il est parfois nécessaire de répondre à quelques questions pour le paramétrage de certains logiciels (Pi-Hole par exemple). Certaines erreurs apparaissent car la configuration n’est pas complète (nginx par exemple), ce n’est qu’a la fin de l’installation que la configuration est correcte :

  1. liste_domotique_1.txt avec le shell pi_init.sh
  2. liste_domotique_backports.txt avec le shell pi_init_backports.sh
  3. liste_domotique_2.txt avec le shell pi_init.sh
  4. liste_bureautique-1.txt avec le shell pi_init.sh
  5. liste_bureautique_backports.txt avec le shell pi_init_backports.sh
  6. liste_bureautique-2.txt avec le shell pi_init.sh
  7. puis lancer le shell pi_init_hors_depots.sh 

Les shells pi_init.sh et pi_init_backports.sh permettent l’installation en fonction des listes à utiliser (avec ou sans backports) et le shell pi_init_hors_depots.sh installe les logiciels qui ne sont pas dans les dépôts.

Voici les shells et les listes :

La commande : apt-cache policy nomdulogiciel permet de vérifier les versions disponibles sur les différents dépôts installés.

Autres commandes qui peuvent être utiles dans la phase d’initialisation :

  • sudo dpkg –configure -a
  • sudo apt –autoremove
  • sudo apt clean
  • sudo dpkg –force-all –purge nomdulogiciel
  • sudo apt -f install
  • dpkg –audit

Pour la version Bureautique, il est indispensable d’utiliser un Pi4 avec 4 ou 8Go de mémoire, la mémoire limité à 1Go sur les Pi3 n’est pas suffisante pour la bureautique. La méthode de boot sur disque externe étant différente entre les Pi 1/2/3 et le Pi 4, il ne sera peut-être pas possible de conserver une image commune pour les Pi 3 et 4. Je ferai peut-être une image Domotique 64bits pour les Pi 3 et une image Domotique/Bureautique 64 bits pour les Pi 4. Dans tous les cas, cette image 64 bits ne fonctionnera pas sur les Pi 1/2.

Pour la bureautique, dans mon utilisation l’accès à des disques en NFS est indispensable, voici le fichier fstab que j’utilise pour l’accès vers le Synology :

La version 64 bits de Pi OS (nouveau nom de Raspbian) est toujours en version beta aussi je ne diffuse pas cette image – sauf pour ceux qui disposent d’un Pi4 avec + de 2Go et qui souhaitent tester – mais tout est prêt pour une mise à disposition rapide lorsque la version stable sera disponible. Je compléterai mes tests avec la version stable. L’avantage de cette méthode, c’est qu’il sera plus simple de rajouter des composants dans l’image et qu’il sera plus difficile d’en oublier :-).

La liste des logiciels principaux inclus dans cette image sera mise à jour dans cet article : Qui se cache dans les images ? 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *