Reconnecter automatiquement votre Raspberry Pi au wifi

Connecter son Raspberry Pi à votre réseau wifi est tout à fait possible (en ayant suivi ce tutoriel) et même très pratique selon l'endroit où on veut le placer, ou encore si on a besoin de le déplacer.

Lorsque survient une coupure Internet, ou encore une coupure de courant sur votre box Internet, votre Raspberry Pi perd sa connexion au réseau wifi, et ne se reconnecte pas tout seul. Vous êtes donc obligés de débrancher et rebrancher le Pi, ce qui n'est pas bon pour les services hébergés ou encore pour la carte SD.

Pour palier à ce problème de manière "propre", il faudrait pouvoir relancer l'interface réseau wlan0 afin qu'elle se reconnecte au réseau wifi. C'est là qu'intervient le script wifi_rebooter !

Nous aurons besoin de déterminer si le Raspberry Pi est connecté au réseau. Pour ce faire, nous allons tenter de faire un ping sur un serveur et voir si nous obtenons une réponse. Si la commande réussit (le Raspberry Pi reçoit bien une réponse du serveur), nous pouvons en déduire que avons la connectivité réseau. Si la commande échoue, nous éteignons et relançons l'interface wlan0.

Commencez par créer un script avec la commande sudo vi /usr/local/bin/wifi_rebooter.sh et collez-y le contenu suivant :

#!/bin/bash

# L'adresse IP du serveur que vous voulez pinger (8.8.8.8 est un serveur DNS public de Google)
SERVER=8.8.8.8

# Envoyer seulement 2 pings, et envoyer la sortie vers /dev/null
ping -c2 ${SERVER} > /dev/null

# Si le code retour du ping ($?) est différent de 0 (qui correspond à une erreur)
if [ $? != 0 ]
then
    # Restart the wireless interface
    # Relancer l'interface wifi
    ifdown --force wlan0
    ifup wlan0
fi

Il faut ensuite rendre le script exécutable :

sudo chmod +x /usr/local/bin/wifi_rebooter.sh

Et planifier une exécution régulière du script pour vérification de la connexion wifi, en éditant la crontab avec la commande sudo vi /etc/crontab et en y ajoutant la ligne suivante :

*/5 *   * * *   root    /usr/local/bin/wifi_rebooter.sh

Avec cette ligne dans la crontab, le script wifi_rebooter.sh est exécuté toutes les 5 minutes, et si votre connexion wifi est interrompue, alors l'interface réseau wlan0 est redémarrée pour se reconnecter à votre réseau wifi.

Source : Lien

Guillaume

Ingénieur dans l'informatique passionné par la domotique, les nouvelles technologies, le Web et toutes les innovations dont ce dernier regorge.

Paris