cClaude.rocks ☕ Le blog

[Nouvelles technologies, sciences et coups de gueule…]

Menu
đŸ˜€ Ce billet a Ă©tĂ© Ă©ditĂ© le : 2022-11-12

Suite de l’article Installation d’un Raspberry PI sans Ă©cran, ni clavier


ඏ

Préalables

Le cas Windows !

Si vous partez d’un Windows, je vous encourage Ă  installer « Windows Sub System 2 », n’ayant que parcouru l’article, je vous propose une seconde source : Installer WSL 2 sous Microsoft Windows 10 / Windows 11 pour profiter de Linux ou Docker ?.

Comme alternative vous pouvez utiliser putty, vous pouvez mĂȘme vous contenter de l’exĂ©cutable putty.exe permettant d’effectuer des connexions ssh.

Les cas : Mac et Linux

Si vous partez d’un Mac ou d’un Linux ce sera beaucoup plus simple, puisque vous avez dĂ©jĂ  tout ce qu’il faut pour vous connecter sur le PI, le support du protocole ssh Ă©tant natif.


ඏ

La carte SD

Initialisation

Pour préparer la carte SD, je vous propose de regarder les pages Operating system images et Products qui vous aideront à identifier la version de votre Raspberry PI (Ne téléchargez pas les images depuis ces pages).

L’information de fond que vous devez rĂ©cupĂ©rer est le type de processeurs disponible sur votre Raspberry :

En gros, vous devrez savoir si votre Raspberry contient un processeur ARM 64 bits (A ce jour, seul les RPi 4 sont concernés) ou un processeur ARM 32 bits (tous les autres).

La seconde question que vous devrez vous poser est souhaitez-vous avoir une interface graphique sur votre PI (dans ce cas vous devrez prendre en compte la configuration VNC)

Ensuite pour installer le systĂšme sur la carte utiliser l’un des outils suivant pour tĂ©lĂ©charger l’image et mettre Ă  jour la carte SD :

  • Raspberry Pi Imager un outil graphique disponible pour Ubuntu (Linux), macOS et Windows. Limitation: les versions 64 bits ne sont pas disponibles Ă  ce jour via cet outil.
  • prepare-raspbian-sd un outil en ligne de commande pour Linux (support des versions 64 bits).

Une fois l’image dĂ©posĂ©, la carte SD contiendra 2 partitions.

Attention, si vous utilisez l’environnement Microsoft :
Windows ne reconnaissant pas la seconde partition (au format ext4), cette saloperie s’acharnera Ă  vous obliger Ă  la formater, ce qu’il ne faut pas faire, Ă©videment.

Configuration

Avant d’aller plus loin, nous allons devoir modifier le contenu de la carte SD afin que soit

Le nom des partitions sont boot et rootfs (Sous Windows vous ne verrez que la premiĂšre).

Pour que votre Raspberry lance le service ssh au démarrage, il vous suffit de créer un fichier ssh

Attention, si vous utilisez l’environnement Microsoft :
Il ne faut pas que le fichier se nomme ssh.txt. Windows ne sait pas crĂ©er de fichier sans extension sans une petite configuration prĂ©alable de l’explorateur. Dans les propriĂ©tĂ©s demandez l’affichage des extensions.

Sous Linux, la partition se trouvera probablement ici: /media/${USER}/boot et si c’est le cas vous pouvez crĂ©er le fichier depuis un terminal Ă  l’aide de :

touch /media/${USER}/boot/ssh

Pour la suite nous aurons besoin de l’adresse IP du RPI, il existe de nombreuses solutions pour rĂ©cupĂ©rer cette adresse, mais c’est extrĂȘmement dĂ©pendant de l’environnement (systĂšme et rĂ©seau). Je vous propose une solution qui nĂ©cessite de pouvoir Ă©crire sur la seconde partition (nommĂ©e rootfs).

Attention, si vous utilisez l’environnement Microsoft :
Windows ne reconnaissant pas la seconde partition (au format ext4), vous devrez rechercher comment « monter une partition ext4 sous Windows » et a priori c’est possible avec [WSL](https://www.malekal.com/acceder-partition-de-disque-linux-ext4-depuis-windows-10/).
  • Logger l'adresse du RPI sur le RPI

    Le fichier /etc/rc.local est exĂ©cutĂ© au dĂ©marrage du RPI, dans ce fichier nous allons exĂ©cuter un second script /etc/rc.local.find-ip.sh que nous allons lancer en parallĂšle du premier – le script /etc/rc.local continuera son traitement sans attendre la fin du nouveau script.

    La ligne que nous allons ajouter est :

    sh /etc/rc.local.find-ip.sh &
    

    Modifier le fichier /etc/rc.local à partir de la racine ROOTFS afin d’obtenir quelque chose comme suit :

    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will "exit 0" on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.
    
    # Print the IP address
    _IP=$(hostname -I) || true
    if [ "$_IP" ]; then
      printf "My IP address is %s\n" "$_IP"
    fi
    
    sh /etc/rc.local.find-ip.sh & # Lance dans un nouveau processus
    
    exit 0
    

    Créer le fichier /etc/rc.local.find-ip.sh à partir de la racine ROOTFS

    #!/bin/sh -e
    #
    # /etc/rc.local.find-ip.sh
    #
    
    exec 1>/var/log/rc.local.log 2>&1  # send stdout and stderr to a log file
    set -x                             # tell sh to display commands before execution
    
    IP=
    while [ -z "${IP}" ] ; do
      sleep 1
      IP=$( ip -br -4 addr show | grep 'UP' | rev | cut -d'/' -f2 | cut -d' ' -f1 | rev )
      echo "${IP}"
      hostname -I
      ip addr
    done
    
    exit 0
    

    Ce nouveau script Ă©crit tout ce qu’il fait dans le fichier /var/log/rc.local.log et que fait-il d’autre ?

    Il cherche Ă  rĂ©cupĂ©rer une adresse IPv4 et s’arrĂȘte lorsqu’elle a Ă©tĂ© trouvĂ©e.

    Pour rĂ©cupĂ©rer l’adresse IP du PI, il suffira de le dĂ©marrer d’attendre une bonne grosse minutes puis de l’éteindre (dĂ©brancher l’alimentation).

    Ensuite vous mettrez la SD dans votre ordinateur personnel et sur la partition rootfs vous irez voir le contenu du fichier /var/log/rc.local.log pour obtenir l’adresse IP.


ඏ

RĂ©cupĂ©ration de l’adresse IP du RPi

La documentation se limite à des réseaux supportant IPv4 (généralement une adresse de la forme 192.168.1.10), pour des réseaux en IPv6 uniquement, vous devrez adapter le code

Sous Linux, je vous conseille depuis un terminal la commande nmap (la commande est Ă©galement disponible pour Windows et macOS):

nmap -sn <Your LAN Subnet>

Par exemple :

nmap -sn 192.168.1.0/24

Attention sous Linux, pour obtenir les adresses MAC, vous devez ĂȘtre root sur la machine et donc utiliser la commande sudo :

sudo nmap -sn 192.168.1.0/24

Il est probable que sous Windows ou Mac-OS quelque chose de similaire soit requit.


ඏ

Connexion « ssh »

Pour la connexion ssh. vous aller avoir besoin de l’adresse IP de votre Raspberry PI. Si vous disposer d’un terminal avec la commande ssh, vous devrez faire :

Par dĂ©faut le nom d’utilisateur est pi et le mot de passe est raspberry.

Vous vous connecterez à l’aide de l’adresse IP de votre RPi comme suit :

ssh pi@192.168.?.???

ඏ

VNC (facultatif)

Si vous souhaitez accĂ©der Ă  l’interface graphique de votre PI, vous devrez utiliser le protocole VNC.

Activer le protocole VNC et le configurer sur le Raspberry

Rendez-vous sur l’article Connexion VNC à un Raspberry avec remmina et suivez la partie concernant le PI.


Le client VNC

L’article Connexion VNC à un Raspberry avec remmina contiends les informations pour Linux (et probable pour la Pomme aussi).

Concernant Windows, il faut rĂ©cupĂ©rer un client VNC. Je vous conseille de n’installer que la partie cliente de VNC.

Attention, sur Windows les clones de VNC servant finalement a piraté votre machine sont légion)


ඏ

Merci pour vos commentaires


኿


â„č 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog