Pour avoir un fonctionnement optimal, la boîte domotique, par exemple un Raspberry Pi, doit avoir une adresse IP statique (aussi appelée adresse IP fixe) dans le réseau.
Si la boîte domotique a une adresse IP dynamique fournie par un serveur DHCP, comme c'est le cas par défaut quand vous la branchez à votre réseau, cette adresse pourrait être appelée à changer. Une fois l'adresse changée, vous ne pourrez plus vous connecter à distance à moins d'avoir acccès au Raspberry Pi ou au routeur pour retrouver l'adresse IP.
Une adresse IP fixe permettra également de préserver le bon fonctionnement du système après un redémarrage du réseau (j'ai connu des problèmes de ce type avec mon Raspberry Pi de même qu'avec mes haut-parleurs Alexa, le tout a été réglé par des adresses IP statiques).
Dans cette fiche :
Lors de la configuration d'une adresse IP statique, vous aurez besoin d'entrer l'adresse IP des serveurs de noms de votre réseau.
Sous Windows, vous pouvez connaître les serveurs de noms actuellements utilisés pour votre ordinateur à l'aide de cette commande :
ipconfig /all
...
Adresse IPv4............: 192.168.1.145 (préféré)
...
Passerelle par défaut...: 192.168.1.1
Serveur DHCP............: 999.999.999.999
999.999.999.999
...
Vous pouvez également obtenir l'information comme suit :
Get-NetIPConfiguration
...
IPv4Address : 192.168.1.145
...
IPv4DefaultGateway : 192.168.1.1
DNSServer : 999.999.999.999
999.999.999.999
...
Sous Mac, vous pouvez connaître les serveurs de noms à l'aide de la commande :
scutil --dns
resolver #1
nameserver[0] : 999.999.999.999
nameserver[1] : 999.999.999.999
...
Et sous Linux :
cat /etc/resolv.conf
# Generated by NetworkManager
search mondomaine.loc
nameserver 999.999.999.999
nameserver 999.999.999.999
Depuis Raspberry Pi OS Bookworm (2023), la gestion du réseau est réalisée avec NetworkManager. Auparavant, elle était faite avec dhcpcd.
Pour vérifier si le système d'exploitation du Raspberry Pi utilise NetworkManager, entrez cette commande :
nmcli device status
pi@raspberrypi:~ $ nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
lo loopback connected (externally) lo
wlan0 wifi disconnected --
p2p-dev-wlan0 wifi-p2p disconnected --
Dans la colonne STATE, si vous voyez connected ou disconnected, c'est que l'OS utilise NetworkManager.
Si vous voyez plutôt unmanaged, ou encore si la commande nmcli n'est pas reconnue, c'est que l'OS utilise un auytre système pour gérer le réseau.
Si votre système n'utilise pas NetworkManager, référez-vous à la fiche « Configurer l'adresse IP statique du Raspberry Pi avec dhcpcd (Vous ne possédez pas les droits pour accéder à cette fiche.) ».
Avec NetworkManager, vous avez plusieurs options pour configurer une adresse IP statique.
Il est possible d'effectuer les configurations réseau à l'aide de l'utilitaire nmtui (Network Manager Text UI).
sudo nmtui
Si vous sélectionnez
, l'utilitaire vous présentera les connexions existantes et vous offrira la possiblité d'en créer de nouvelles.Pour donner une adresse IP statique à une configuration réseau, sélectionnez la configuration désirée puis modifiez la ligne Manual.
pourSélectionnez ensuite
.Voici un exemple de configuration d'adresse IP statique pour Wired connection 1. Référez-vous à la section sur nmcli pour les détails des informations à entrer.
Pour configurer une adresse IP statique à l'aide de la commande nmcli :
sudo nmcli connection modify "Wired connection 1" \
pv4.method "manual" \
ipv4.addresses "192.168.1.145/24" \
ipv4.gateway "192.168.1.1" \
ipv4.dns "xxx.xxx.xxx.xxx,8.8.8.8,8.8.4.4"
Les informations sur les connexions sont enregistrées dans des fichiers dont l'extension est .nmconnection.
Il est possible d'éditer directement ces fichiers. Notez que cette technique est plus complexe que les précédentes.
Pour y arriver :
nmcli con show
pi@raspberrypi:~ $ nmcli con show
NAME UUID TYPE DEVICE
Wired connection 1 25d6bfa8-6c8c-3f8f-be53-516bece110e9 ethernet eth0
lo cfbfab11-be1b-448d-846e-23608dd88ed9 loopback lo
preconfigured e8a78fe4-2969-4cd7-9b20-295f3f8bb529 wifi --
ls /etc/NetworkManager/system-connections
On voit ici que seule la connection Wi-Fi a un seul fichier de configuration.
pi@raspberrypi:~ $ ls /etc/NetworkManager/system-connections
preconfigured.nmconnection
Remarquez que si le nom de la configuration comprend des espaces, il faut ajouter une barre oblique inverse devant chaque espace.
sudo nmcli connection modify Wired\ connection\ 1 connection.autoconnect yes
nmcli -f NAME,UUID,FILENAME connection
pi@raspberrypi:~ $ nmcli -f NAME,UUID,FILENAME connection
NAME UUID FILENAME
lo ee200fcc-dcb0-4976-a81d-65554b48c0b1 /run/NetworkManager/system-connections/lo.nmconnection
preconfigured a2aa2a5f-4bf6-46a0-9e40-fb70c86d610b /etc/NetworkManager/system-connections/preconfigured.nmconnection
Wired connection 1 05e42c99-0c51-3798-aae9-e0246598d0ae /etc/NetworkManager/system-connections/Wired connection 1.nmconnection
sudo nano /etc/NetworkManager/system-connections/Wired\ connection\ 1.nmconnection
Exemple pour une connection câblée :
[connection]
id=Wired connection 1
uuid=25d6bfa8-6c8c-3f8f-be53-516bece110e9
type=ethernet
[ipv4]
address1=192.168.1.145/24,192.168.1.1
dns=xxx.xxx.xxx.xxx;8.8.8.8;8.8.4.4
method=manual
Exemple pour une connection Wi-Fi :
[connection]
id=preconfigured
uuid=e8a78fe4-2969-4cd7-9b20-295f3f8bb529
type=wifi
[wifi]
mode=infrastructure
ssid=xxxxxx
[wifi-security]
key-mgmt=wpa-psk
psk=xxxxxxxx
[ipv4]
address1=192.168.1.145/24,192.168.1.1
dns=xxx.xxx.xxx.xxx;8.8.8.8;8.8.4.4
method=manual
Pour enregistrer les modifications, appuyez sur Ctrl + X puis O (ou Y si votre OS est en anglais) pour enregistrer les modifications.
Redémarrez le Raspberry Pi.
Prenons le cas où vous utilisez un Raspberry Pi dans votre établissement scolaire puis vous le ramenez à votre domicile pour poursuivre vos travaux.
Il pourrait arriver que l'adresse IP statique utilisée à l'école ne soit pas compatible avec les configurations de votre réseau à la maison.
Ceci peut être géré en créant un fichier de configuration spécifique pour chaque environnement.
Au besoin, une configuraation pourrait avoir une adresse IP statique et l'autres, une adresse fournie par DHCP.
Pour créer un fichier de configuration, vous pouvez utiliser l'option
puis dans l'utilitaire nmtui ou encore lancer cette commande en ajustant le nom de la connection (con-name) et le nom du réseau (ssid).sudo nmcli connection add type wifi con-name wifi-maison ssid "nom-du-reseau"
Pour un réseau câblé :
sudo nmcli connection add type ethernet con-name cable-maison
Ceci créera un fichier wifi-maison.nmconnection ou cable-maison.nmconnection ou tout autre nom basé sur l'attribut con-name.
Peu importe dans quel dossier vous étiez lorsque vous avez passé la commande, le fichier sera créé dans le dossier /etc/NetworkManager/system-connections.
Vous pourrez ensuite compléter le fichier comme dans les exemples plus haut.
Pour activer la configuration, vous pouvez utiliser l'option
dans l'utilitaire nmtui ou encore entrer cette commande :sudo nmcli con up cable-maison
Attention : si vous avez deux fichiers qui donnent une adresse IP statique pour un réseau câblé, celui qui s'active par défaut pourrait être le dernier qui a été utilisé.
En effet, selon la documentation officielle de nm-settings-nmcli1 :
If multiple profiles are ready to autoconnect on the same device, the one with the better "connection.autoconnect-priority" is chosen. If the priorities are equal, then the most recently connected profile is activated. If the profiles were not connected earlier or their "connection.timestamp" is identical, the choice is undefined.
Il faut prendre certaines précautions lorsque les adresses IP des deux environnements sont incompatibles. Par exemple le format des adresses IP à l'école pourrait être 192.168.29.xxx et à la maison, 10.0.0.xxx.
Dans un tel cas, si la bonne configuration câblée n'est pas active lors du démarrage du Raspberry Pi, vous aurez besoin d'un écran et d'un clavier pour activer la configuration désirée puisque l'adresse IP active sera incompatible avec votre réseau, ce qui empêchera le branchement via SSH.
Par contre, pour une connexion Wi-Fi, c'est la connexion qui correspond au nom du réseau Wi-Fi disponible qui sera automatiquement activée. Vous pourrez donc vous brancher via SSH et donc, vous n'aurez pas besoin d'un écran ni d'un clavier à brancher au Raspberry Pi.
Si vous désirez modifier vos configurations pour revenir à une adresse IP fournie par le serveur DHCP, il suffit de modifier la ligne method dans la section [ipv4].
[ipv4]
method=auto
Lors du prochain redémarrage, il est fort probable que le Pi aura tout de même la même adresse IP puisque le serveur DHCP se rappellera de la dernière adresse fournie. Cependant, ceci n'est pas garanti alors sans l'adresse IP statique, vous devrez vérifier l'adresse IP en branchant un écran sur le Pi.
Il est possible de donner une adresse IP statique au Pi à partir de votre ordinateur sans que Raspberry Pi OS ne soit démarré. Ceci fonctionne autant pour les systèmes qui utilisent NetworkManager que pour ceux qui utilisent dhcpcd. Cette technique est pratique si vous n'avez pas d'écran à brancher au Pi.
Par contre, ceci ne devrait être utilisé que si vous n'avez pas accès à un écran puisque le temps de démarrage du Raspberry Pi sera toujours long tant que la configuration que vous vous apprêtez à faire sera en place. Une fois l'adresse IP statique correctement configurée et le Pi démarré, vous pourrez modifier cette configuration pour raccourcir le temps de démarrage, tel que mentionné au bas de la procédure.
Si vous insérez la carte micro SD directement dans votre ordinateur (Mac, Windows ou Linux), vous remarquerez que le dossier /etc n'y figure pas puisqu'il faut que Raspberry Pi OS soit en marche pour qu'il apparaisse.
MBPdeMonNom:~ monnom$ ls /Volumes/boot/
COPYING.linux | fixup4cd.dat |
LICENCE.broadcom | fixup4db.dat |
bcm2708-rpi-b-plus.dtb | fixup4x.dat |
bcm2708-rpi-b-rev1.dtb | fixup_cd.dat |
bcm2708-rpi-b.dtb | fixup_db.dat |
bcm2708-rpi-cm.dtb | fixup_x.dat |
bcm2708-rpi-zero-w.dtb | issue.txt |
bcm2708-rpi-zero.dtb | kernel.img |
bcm2709-rpi-2-b.dtb | kernel7.img |
bcm2710-rpi-2-b.dtb | kernel7l.img |
bcm2710-rpi-3-b-plus.dtb | kernel8.img |
bcm2710-rpi-3-b.dtb | overlays |
bcm2710-rpi-cm3.dtb | start.elf |
bcm2711-rpi-4-b.dtb | start4.elf |
bcm2711-rpi-cm4.dtb | start4cd.elf |
bootcode.bin | start4db.elf |
cmdline.txt | start4x.elf |
config.txt | start_cd.elf |
fixup.dat | start_db.elf |
fixup4.dat | start_x.elf |
Qu'à celà ne tienne, il est possible de donner une adresse statique au Pi en éditant le fichier cmdline.txt à l'aide de l'éditeur de votre choix. Pour ma part, j'aime travailler avec Geany.
Ce fichier contient une série de configurations qui seront lues lors du démarrage de Rarspberry Pi OS.
Je vous conseille de prendre copie du fichier avant de l'éditer. Ceci permettra de revenir à la version originale si jamais vos manipulations empêchent le bon fonctionnement de l'OS.
Voici le contenu initial de ce fichier.
console=serial0,115200 console=tty1 root=PARTUUID=58ce116e-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles
Chaque configuration est séparée par un espace. Toutes les configurations doivent tenir sur une seule ligne.
Ajoutez simplement à la fin de cette ligne la configuration suivante en ajustant les informations requises au format :
ip=addresseIP::adresseIPLocaleRouteur:masqueSousReseau:HostNameDuPi:eth0:off
Par exemple :
ip=192.168.1.145::192.168.1.1:255.255.255.0:raspberrypi:eth0:off
Enregistrez le fichier puis retirez la carte micro SD de l'ordinateur de façon sécuritaire.
Insérez la carte dans le Pi et mettez-le sous tension.
Soyez patients : mon Pi a mis loooooongtemps (un peu plus de 2 minutes) avant de redémarrer après que j'aie modifié le fichier cmdline.txt.
Ce délai est normal.
Si vous ne souhaitez pas attendre à chaque redémarrage du Pi, branchez-vous via SSH puis configurez l'adresse IP statique à l'aide d'une autre méthode présentée dans cette fiche. Retirez ensuite la configuration du fichier cmdline.txt.
Personnellement, chez moi, je préfère travailler à partir du routeur. Ceci m'assure qu'il n'y aura aucun conflit d'adresses IP car le routeur sait que cette adresse est réservée pour le Pi.
Si vous désirez configurer l'adresse IP statique à partir de votre routeur, vous aurez besoin de l'adresse MAC du Raspberry Pi.
L'adresse peut être trouvée à partir de l'interface de votre routeur qui liste les périphériques branchés mais parfois, il est difficile de déterminer quel périphérique est le Raspberry Pi.
Si vous avez un doute ou si vous préférez retrouver l'adresse MAC directement à partir du Pi, branchez un écran et un clavier au Raspberry Pi, ouvrez une fenêtre Terminal puis entrez cette commande :
ifconfig
Si le Pi indique que la commande n'existe pas, vous devrez effectuer une installation supplémentaire :
sudo apt install net-tools
Dans le résultat de ifconfig, vous obtiendrez un paragraphe par carte réseau. Les plus communes sont eth0 pour le réseau câblé et wlan0 pour le sans fil.
L'adresse MAC apparaîtra près du mot ether pour la carte que vous désirez utiliser (câblé ou sans fil). Elle est constituée de 6 nombres hexadécimaux séparés par des « : » (ex : b8:27:eb:b56:dc:a2).
La technique précise pour configurer l'adresse statique dépendra de la marque du routeur. En gros, les étapes ressembleront à ceci :
Il y a autant d'organisation des options de menus qu'il y a de routeurs. Si vous ne trouvez pas l'endroit où effectuer la configuration, voyez le manuel de votre routeur.
L'écran pourra ressembler à un de ceux-ci :
Il vous faut cocher le Raspberry Pi — après vous être assurés qu'il s'agit du bon périphérique à l'aide de l'adresee MAC — puis cliquer sur
(autre appellation possible : ).D'autres système demandent de cliquer sur le bouton d'édition puis de cocher une case du genre
.Le Pi apparaît désormais dans la liste des adresses réservées comme montré dans ces deux exemples.
Note : vous pouvez effectuer une vérification supplémentaire pour vous assurer que vous avez donné une adresse IP statique au bon périphérique. Il suffit de comparer l'adresse IP du périphérique sélectionné avec celle donnée directement sur votre Raspberry Pi.
Comme dans toute manipulation, il faut tester si on obtient le résultat escompté peu importe la technique utilisée.
Après le redémarrage, le Pi devrait avoir l'adresse IP qu'on lui a imposée.
La technique pour retrouver l'adresse IP du Pi est donnée sur cette fiche : Trouver l'adresse IP du Raspberry Pi
1. « nm-settings-nmcli ». NetworkManager. https://networkmanager.pages.freedesktop.org/NetworkManager/NetworkManager/nm-settings-nmcli.html
« Raspberry Pi ASAP Setup Guide - Assigning IP addresses ». GitHub. https://kr15h.github.io/RPi-Setup#titles.3.1
« RPi cmdline.txt ». elinux.org. https://elinux.org/RPi_cmdline.txt
▼Publicité