Jelora.fr

Auto reboot Wifi sur RaspberryPi

J’ai remarqué, assez souvent et désagréablement, que lorsque le wifi de chez moi s’arrêtait pour diverses raisons (arrêt ou redémarrage du routeur par exemple), mes RaspberryPi, dont je me sert pour différents projets, ne se reconnectaient pas au Wifi lorsque celui ci revenait.
Ce qui est quelque peu dérageant quand on fait de la collecte de données avec une station météo et la récupération de consommation électrique sur un compteur EDF ou pour tout simplement s’y connecter en SSH pour faire les mises à jours Linux périodiques.

Au départ, je pensais que j’avais peut-être oublié une configuration dans mon fichier "/etc/network/interfaces" ou ailleurs, mais non semble-t-il.

En cherchant un peu sur Internet, j’ai fini pour trouver des petits scripts très simples à mettre en place pour gérer ce problème.
Cela consiste à tester si le réseau fonctionne de façon périodique en faisant un ping sur une machine locale ou distante puis à relancer l’interface réseau s’il n’y a plus de liaison.

D’abord, créer un fichier avec votre éditeur favori :
Commande:1.
sudo nano /usr/local/bin/wifi_autoreboot.sh


Avec ce contenu en remplaçant ip_a_tester par l’IP de la machine à tester :
Code:1.
2.
3.
4.
5.
6.
7.
8.
9.
#!/bin/bash

ping -c2 ip_a_tester > /dev/null

if [ $? != 0 ]
then
    ifdown --force wlan0
    ifup wlan0
fi


Puis rendre le script exécutable :
Commande:1.
sudo chmod +x /usr/local/bin/wifi_autoreboot.sh


Et pour finir, rendre le lancement de ce script périodique via une tâche Cron pour effectuer la vérification toutes les 5 minutes, en ajoutant une ligne dans "/etc/crontab" :
Commande:1.
sudo nano /etc/crontab


Et ajouter :
Code:1.
*/5 *   * * *   root    /usr/local/bin/wifi_autoreboot.sh


Bon, au final, ce script peut servir aussi sur un PC classique avec Wifi. ;)



source : http://alexba.in/blog/2015/01/14/automatically-reconnecting-wifi-on-a-raspberrypi/

Ajouter un commentaire

Nom/Pseudo :

Email (optionnel) :

Site web (optionnel) :

Commentaire :

Vérification: