« Le routeur en tête réseau PI » : différence entre les versions

De knowledge
Aller à la navigation Aller à la recherche
mAucun résumé des modifications
Ligne 159 : Ligne 159 :


=== Configuration de l'écran ===
=== Configuration de l'écran ===
[[Fichier:Adafruit 2.8''.png|vignette|263x263px|L'écran Adafruit 2.8 pouces]]
Adafuit le fabricant de l'écran donnait autrefois une distribution spécifique pour cet écran. C'était rapide mais pas très "propre".
Maintenant il y a un script python pour faire ce travail. Adafuit donne le process ici: https://learn.adafruit.com/adafruit-2-8-pitft-capacitive-touch/easy-install-2
Je suis bon camarade je donne ici la méthode.
==== Installation des outils ====
Il faut d'abord installer les outils python de virtualisation d'environnement.<syntaxhighlight lang="bash">
sudo apt install python3-venv
python -m venv env --system-site-packages
source env/bin/activate
</syntaxhighlight>Ensuite on installe le script qui installera lui même l'écran.<syntaxhighlight lang="bash">
cd ~
sudo apt-get update
sudo apt-get install -y git python3-pip
pip3 install --upgrade adafruit-python-shell click Flask-SQLAlchemy
git clone https://github.com/adafruit/Raspberry-Pi-Installer-Scripts.git
cd Raspberry-Pi-Installer-Scripts
</syntaxhighlight>Bon je penses que certains <code>apt-get install</code> sont superflus mais je ne prends pas de risques.
===== Installation elle même =====
Ici chez Adafruit donne une instruction pour chaque modèle d'écran.
Pour l'écran 2.8<nowiki>''</nowiki> capacitif :<syntaxhighlight lang="bash">
sudo -E env PATH=$PATH python3 adafruit-pitft.py --display=28c --rotation=90 --install-type=console
</syntaxhighlight>SI j'avais utilisé la version résistive <syntaxhighlight lang="bash">
sudo -E env PATH=$PATH python3 adafruit-pitft.py --display=28r --rotation=90 --install-type=console
</syntaxhighlight>Ca se termine<syntaxhighlight lang="text">
PITFT Updating console to PiTFT...
Remove fbcp from /etc/rc.local, if it's there...
Configuring boot/config.txt for default HDMI
Installing console fbcon map helper...
Installing console fbcon map service...
PITFT Created symlink '/etc/systemd/system/multi-user.target.wants/con2fbmap.service' → '/etc/systemd/system/con2fbmap.service'.
PITFT Job for con2fbmap.service failed because the control process exited with error code.
See "systemctl status con2fbmap.service" and "journalctl -xeu con2fbmap.service" for details.
Turning off console blanking
Setting raspi-config to boot to console w/o login...
PITFT Success!
Settings take effect on next boot.
REBOOT NOW? [Y/n] Reboot started...
Connection to 192.168.0.77 closed by remote host.
Connection to 192.168.0.77 closed.
</syntaxhighlight>En rebootant le PI.
Et l'écran est actif.
Un dernier problème: Lorsque on reboote sans l'écran HDMI... l'écran LCD ne marche pas c'est ballot

Version du 3 décembre 2025 à 22:11

Présentation

La première étape sera de créer ce qui sera la tête du réseau.

Datacenter-schema-front.png

Schématiquement on a un raspberry PI en frontal. Il n'a en aucun cas besoin de wifi donc un simple Raspbery PI2 sera suffisant.

En revanche il lui faudra deus "pattes" réseau donc un adaptateur USB - Ethernet sera nécessaire. De plus un écran Adafruit 2.8' sera utilisé pour le "status".

Architecture réseau:

  • eth0 (le port Ethernet standard) sera relié au WAN en tant que client DHCP. C'est sur le routeur auquel il est relié que le serveur DHCP attribuera (ou pas) une IP fixe.
  • eth1 (le port Ethernet sur USB) sera relié au LAN. Il sera configuré en serveur DHCP et s'occupera du sub-net 10.11.11.0/24. Les autres raspberry seront reliés à ce port via un switch.

Derrière on aura toute sorte de serveurs basés sur des raspberry PI du genre:

  • Serveur node-red
  • Serveur MariaDB
  • Serveur MediaWiki
  • ce dont on aura besoin...

Modules installés

Sur ce serveur "front" on aura donc installé:

  • Un serveur DHCP pour eth1
  • Un serveur ssh sur eth0 et eth1 utilisé comme "rebond"
  • Un reverse proxy pour faire suivre les demandes vers les serveurs sur le "LAN 10.11.11"
  • Un broker MQTT ouvert sur eth0 et eth1
  • Un driver d"écran Adafruit é.8'

Installation

La carte SD

On utilise Raspberry Pi Imager https://www.raspberrypi.com/software/

Datacenter-sd-1.png

On choisit le modèle (moi c'est un raspberry PI 2 y'a pas besoin de mieux). Puis "SUIVANT"

Datacenter-sd-2.png

On ne veut pas de "desktop" on choisit "Raspberry PI OS (other)

Datacenter-sd-3.png

On choisit la dernière version sans desktop puis "SUIVANT"

Datacenter-sd-4.png

Moi j'ai qu'un seul port SD il n'y a pas d'ambiguïté je le sélectionne puis "SUIVANT"

Datacenter-sd-5.png

On donne le nom à notre serveur puis "SUIVANT"

Datacenter-sd-6.png

On donne la localisation puis "SUIVANT"

Datacenter-sd-7.png

On définit le nom de l'utilisateur et son mot de passe puis "SUIVANT"

Datacenter-sd-8.png

On peut ignorer le wifi dans notre cas (un raspberry PI 2 n'est pas équité!) "SUIVANT"

Datacenter-sd-9.png

On s'arrête un peut sur cette page.

On a définit un login que n'est pas "pi" mais qui peut être aisément trouvé. Notre mot de passe est sûrement très sécurisé mais toujours faillible. Comme le routeur sera probablement acessible de l'extérieur il est nécessaire, a mon avis, de sécuriser le process de login ssh par une clé. J'ai mis la clé publique du PC que j'utilise habituellement pour la maintenance. Une seconde clé pourra être ajouté ultérieurement.

"SUIVANT"

Datacenter-sd-10.png

Je ne penses pas que ce soit nécessaire d'utiliser Pi Connect, d'autant plus que le PI devra être le moins chargé possible. "SUIVANT"

Datacenter-sd-11.png

On a un dernier récapitulatif. "WRITE".

Datacenter-sd-12.png

Oui je comprends, on efface et on flashe la carte!

Datacenter-sd-13.png

Ca s'écrit... si une fenêtre proposant de formater la carte s'ouvre... fermez là.

Datacenter-sd-14.png

Apres avoir écrit la carte, on la vérifie (c'est indispensable pour être sûr de la qualité de la carte)

Datacenter-sd-15.png

C'est terminé. On peut soit en faire une seconde (un backup? mais il faudrait plutôt faire la copie après les étapes suivantes). "FINISH"

La carte est prête on peut lancer le premier boot.

On insère la carte dans le PI2 en question. On y branche un clavier et un écran (ne pas brancher l'adaptateur USB Ethernet la première fois) et GO! On blanche le courant.

Premier boot

Il boote correctement.

Moi il bloque un moment sur Network Manager mais continue (je penses que c'est eth1 sur le port USB qui n'est relié a rien qui le gène)

Il boote normalement, affiche la progression sur la console sur l'écran HDMI.

La fin est un succinct :

[ OK ] Reached target cloud-init.target - Cloud-init target.

Et rien ne se passe. C'est normal, pas de panique.

La console à l'écran se limite à... la console de base pour voir les erreurs. Pour se loguer il y a deux solutions :

  • Par ssh depuis une autre machine
  • en allant sur une autre console de login "hardware" grâce a <ctrl> + <F2> jusqu'à <F6>. La première <ctrl> <F1> sera toujours là ou seront affichés les messages.

On va configurer les trucs de base.

raspi-config

On lance le programme "raspi-config". On a fait beaucoup du travail au moment de la préparation de la carte SD mais il en reste un peu.

sudo raspi-config

On a le "classique"

Raspi-config.png

Dans 1 "System options" choisir S6 "Autologin"

Raspi-config-autologin.png

Selectionner <Yes> qui nous réponds "Console autologin is enabled".

Oui si quelqu'un rentre chez nous, branche un écran et un clavier sur la machine il sera logué automatiquement... c'est un risque que je prends car, comme ces machines marchent très bien et durent des années il m'arrive d'oublier leur mot de passe.

Dans 6 "Advanced Options" on choisit A1 "Expand Filesystem"

Et le PI nous réponds :

Root partition has been resized.
The filesystem will be enlarged upon the next reboot

On valide par <OK>

Au cas ou on lance un 8 "Update" mais si on vient de faire la carte il ne doit pas se passer grand chose.

On branche l'adaptateur USB Ethernet et on reboote

sudo reboot

on voit le shutdown se dérouler sur la console et le redémarrage.

Le boot bloque un moment sur le démarrage du network manager sur eth1 mais on peut utiliser le serveur quand même.

On peut vérifier que le "resize filesystem" est bien passé:

df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p2  229G  2.6G  217G   2% /

J'ai utilisé une carte de 256 Go on y est presque!

Configuration de l'écran

L'écran Adafruit 2.8 pouces

Adafuit le fabricant de l'écran donnait autrefois une distribution spécifique pour cet écran. C'était rapide mais pas très "propre".

Maintenant il y a un script python pour faire ce travail. Adafuit donne le process ici: https://learn.adafruit.com/adafruit-2-8-pitft-capacitive-touch/easy-install-2

Je suis bon camarade je donne ici la méthode.

Installation des outils

Il faut d'abord installer les outils python de virtualisation d'environnement.

sudo apt install python3-venv
python -m venv env --system-site-packages
source env/bin/activate

Ensuite on installe le script qui installera lui même l'écran.

cd ~
sudo apt-get update
sudo apt-get install -y git python3-pip
pip3 install --upgrade adafruit-python-shell click Flask-SQLAlchemy
git clone https://github.com/adafruit/Raspberry-Pi-Installer-Scripts.git
cd Raspberry-Pi-Installer-Scripts

Bon je penses que certains apt-get install sont superflus mais je ne prends pas de risques.

Installation elle même

Ici chez Adafruit donne une instruction pour chaque modèle d'écran.

Pour l'écran 2.8'' capacitif :

sudo -E env PATH=$PATH python3 adafruit-pitft.py --display=28c --rotation=90 --install-type=console

SI j'avais utilisé la version résistive

sudo -E env PATH=$PATH python3 adafruit-pitft.py --display=28r --rotation=90 --install-type=console

Ca se termine

PITFT Updating console to PiTFT...
Remove fbcp from /etc/rc.local, if it's there...
Configuring boot/config.txt for default HDMI
Installing console fbcon map helper...
Installing console fbcon map service...
PITFT Created symlink '/etc/systemd/system/multi-user.target.wants/con2fbmap.service' → '/etc/systemd/system/con2fbmap.service'.

PITFT Job for con2fbmap.service failed because the control process exited with error code.
See "systemctl status con2fbmap.service" and "journalctl -xeu con2fbmap.service" for details.
Turning off console blanking
Setting raspi-config to boot to console w/o login...
PITFT Success!

Settings take effect on next boot.

REBOOT NOW? [Y/n] Reboot started...
Connection to 192.168.0.77 closed by remote host.
Connection to 192.168.0.77 closed.

En rebootant le PI.

Et l'écran est actif.

Un dernier problème: Lorsque on reboote sans l'écran HDMI... l'écran LCD ne marche pas c'est ballot