Le Raspberry Pi Zéro W (que je vais appeler rpi0w) est un modèle minimaliste du célèbre mini-ordinateur Raspberry Pi. La version minimaliste se distingue par son nombre plus faible de ports (pas d’USB-A ni de port ethernet, par exemple), sa taille plus réduite ainsi qu’une puissance diminuée par rapport à son grand frère.
Je vais expliquer ici comment le configurer pour qu’il se connecte directement au réseau wifi afin qu’on puisse s’y connecter en SSH dès qu’il est démarré.
Sommaire
Préparation de la carte SD
Pour commencer, il faut installer raspbian sur la carte SD. Vu que le rpi0 est moins puissant que le gros modèle, il faut prendre la version Lite de raspbian, qui se trouve ici.
Attention à bien prendre la version compatible avec votre rpi. Pour ma part, ayant le modèle 1, j’ai du prendre la version 32 bits, et non la version 64 bits.
Pour installer Raspbian, j’utilise le logiciel Balena Etcher. Celui-ci est simple à utiliser et fonctionne très bien.
Attention à choisir la bonne destination pour l’image de Raspbian, au risque de perdre vos données !
Une fois la carte SD flashée avec le système d’exploitation, on verra apparaitre 2 nouveaux disques dans l’explorateur de fichiers : Boot et un autre disque qui n’arrive pas à être monté dans Windows. C’est tout à fait normal.
Accès SSH
L’accès SSH doit être activé afin de ne pas avoir à brancher de clavier et d’écran pour effectuer la configuration du rpi. Afin d’activer le service SSH, il suffit de créer un fichier vide, appelé ssh
, dans la partition « Boot » de la carte SD.
Accès wifi
Vu qu’il n’est pas possible de choisir un SSID et d’entrer un mot de passe en SSH que le rpi soit déjà connecté au réseau, il faut indiquer le SSID et le mot de passe à utiliser au démarrage. Pour faire cela, il faut créer un fichier wpa_supplicant.conf
dans la partition « Boot » de la carte SD. Ce fichier doit avoir le contenu suivant, en n’oubliant pas de remplacer your_ssid
et your_password
par les informations de connexion à votre réseau.
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=FR
network={
ssid="your_ssid"
psk="your_password"
key_mgmt=WPA-PSK
}
Mot de passe par défaut
Depuis avril 2022, les identifiants par défaut présents auparavant dans raspbian ont été supprimés (Source). De manière similaire à SSH ou à la connexion wifi, il faut donc indiquer un nom d’utilisateur et un mot de passe dans un fichier userconf
de la partition « Boot » de la carte SD. Ce fichier doit contenir le nom d’utilisateur suivi d’un double point, suivi du mot de passe désiré, chiffré.
username:encrypted-password
Pour générer le mot de passe chiffré, on peut utiliser la commande suivante sous linux en prenant soin de remplacer mypassword
par le mot de passe souhaité.
echo 'mypassword' | openssl passwd -6 -stdin
On peut également utiliser ce site pour générer le mot de passe chiffré.
Une fois que ces informations ont été fournies, on peut démonter la carte SD, l’insérer dans le rpi et le démarrer. Celui-ci se connectera automatiquement au réseau wifi indiqué dans le fichier wpa_supplicant.conf
. On peut ensuite s’y connecter en ssh en utilisant l’identifiant et le mot de passe indiqués dans le fichier userconf
, avec la commande suivante.
ssh username@raspberrypi
Configuration supplémentaire
Il est possible que le rpi plante lors de l’installation de mises à jour (avec la commande sudo apt upgrade
) et qu’il faille le redémarrer manuellement. Si ce cas se présente, c’est à cause d’un problème d’implémentation de la pile IPv6 dans raspbian. Il faut donc désactiver IPv6 pour corriger ce problème.
Pour vérifier qu’IPv6 est activé, il faut que la ligne suivante soit présente lorsqu’on tape la commande ifconfig
.
Désactiver IPv6
- Éditer le fichier
/etc/sysctl.conf
$ sudo nano /etc/sysctl.conf
- Ajouter ces lignes à la fin du fichier
net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.lo.disable_ipv6=1 net.ipv6.conf.eth0.disable_ipv6 = 1
- Sauvegarder et fermer le fichier
- Éditer le fichier
/etc/rc.local
$ sudo nano /etc/rc.local
- Ajouter cette ligne à la fin du fichier (mais avant
exit 0
)
service procps reload
- Sauvegarder et fermer le fichier
- Redémarrer le rpi
- Vérifier avec la commande
ifconfig
que l’adresses IPv6 a bien disparue, comme ci-dessous