Greboca  

Planet Libre  -  ephase : Wifi à la demande avec le vénérable Linksys WRT54G

 -  Mars 2017 - 

Dans le cadre de mon travail, il m'a été demandé de mettre en place pour un centre d'animation un petit réseau wifi afin que les adhérents puissent se connecter à Internet : deux ordinateurs fixe sous Debian et un point d'accès Wifi. J'ai donc recyclé une vieille unité centrale pour en faire un petit routeur proxy filtrant avec ipfire et un vénérable Linksys WRT54G qui traînait.

Les postes sous Debian sont en accès libre toute la journée mais les animateurs voulaient que le wifi soit activé certains jours de 14h à 18h et éventuellement à la demande. Le WRT54G sert à la fois de switch réseau et de point d'accès Wifi. Bien entendu il y a OpenWRT d'installé dessus avec le SSH d'activé (son adresse est 10.0.0.250).

Mise en place d'un script pour l'activation-désactivation du Wifi

La première étape est la création d'un script shell pour activer désactiver l'interface wifi du Linksys. Connectons nous à notre Linksys

ssh root@10.0.0.250

Créons le fichier contenant le script, rendons-le exécutable et ouvrons-le avec vi.

touch /sbin/wtoggle.sh
chmod + x /sbin/wtoggle.sh
vi /sbin/wtoggle.sh

Il suffit maintenant de coller les commandes ci-dessous.

#!/bin/sh

device="wl0"
case $1 in
    "disable")
        wifi down $device
        echo 0 > /proc/diag/led/ses_white
        echo 1 > /proc/diag/led/ses_orange
        echo 0 > /proc/diag/led/wlan
        uci set wireless.$device.disabled=1
        uci commit wireless
        logger "Wifi disabled"
    ;;
    "enable")
        uci set wireless.$device.disabled=0
        uci commit wireless
        wifi up $device
        echo 1 > /proc/diag/led/ses_white
        echo 0 > /proc/diag/led/ses_orange
        echo 2 > /proc/diag/led/wlan
        logger "Wifi enabled"
    ;;
esac

Le script fait trois choses :

  1. Activer / Désactiver le point d'accès Wifi
  2. Allumer la diode SES en blanc / orange en fonction de l'état de la connexion
  3. Activer / désactiver la diode WLAN

L'utilisation est simple : wtoggle enable pour activer le wifi et wtoggle disable pour le désactiver.

Créer la tache cron pour activer le wifi à certaines heures

Il suffit d'ajouter les deux lignes suivantes au cron pour programmer la mise en route du Wifi avec la commande crontab -e

00 14 * * 1-6 wtoggle enable
00 18 * * 1-6 wtoggle disable

Le réseau Wifi est donc allumé du lundi au samedi de 14h à 18h. Mais sur Openwrt le service cron n'est pas activé1. Il faut donc le faire avec les commandes2

/etc/init.d/cron start
/etc/init.d/cron enable

Activation / désactivation à la demande du Wifi

Il est parfois nécessaire d'allumer ou d'éteindre le wifi manuellement, pour ça nous allons détourner le bouton SES du routeur (vous savez celui avec le logo cisco dessus). si le Wifi est désactivé, une pression sur ce bouton l'activera et une autre pression le désactivera à nouveau.

Créons un fichiers bouttons dans le répertoire /etc/hotswap.d/button/ qui va contenir les commandes à effectuer lors de la pression d'un boutons sur le Linksys

mkdir -p /etc/hotswap.d/button/
vi /etc/hotswap.d/button/buttons

Voici le contenu de ce fichier

#!/bin/sh
device="wl0"
if [ "$BUTTON" = "ses" ] && [ "$ACTION" = "pressed" ] ; then
    case $(uci get wireless.$device.disabled) in
        0)
            /sbin/wtoggle.sh disable
        ;;
        1)
            /sbin/wtoggle.sh enable
        ;;
    esac        
fi 

Une fois enregistré, le tout devrait fonctionner : le bouton SES pour allumer /éteindre le wifi et la tâche cron pour le faire automatiquement en fonction des heures d'ouvertures. Le voyant du logo Cisco servant aux animateurs à visualiser rapidement si le réseau Wifi est actif ou non.

Gravatar de ephase
Original post of ephase.Votez pour ce billet sur Planet Libre.

par ephase

Planet Libre

Le Planet sur Linux et les Logiciels Libres

Mathias : Enregistrement DNS de type CAA

 -  Mai 2021 - 

IntroductionDéfini en 2013 par la RFC6844, le CAA est un type d’enregistrement DNS qui permet aux propriétaires de sites de préciser quelles (...)


genma : Nextcloud - Suppression des fichiers fournis par défaut dans le dossier utilisateur

 -  Avril 2021 - 

Des fichiers par défautVous pouvez fournir à vos nouveaux utilisateurs un ensemble de fichiers par défaut qui apparaîtront dans leur Nextcloud (...)


genma : Nextcloud et l'accessibilité 1/ ?

 -  Mars 2021 - 

J'ai écrit quelques billets de blog sur le sujet de l'accessibilité au cours des années et ce sujet, même si j'en parle peu, me tient à coeur. C'est (...)


antistress : Mon nouveau téléphone : Samsung Galaxy S5 sous LineageOS

 -  Février 2021 - 

Tout d'abord il me faut indiquer quels usages je fais de mon téléphone.J'utilise surtout les fonctions SMS et MMS, appareil photo et voix – dans (...)


Carl Chenet : Le télétravail, c’est pas que pour la pandémie !

 -  Février 2021 - 

Ton chef rage en mode “c’était mieux avant”, tu le vois continuer à organiser des réunions-fleuve où personne ne répond. Le reste du temps (et pendant (...)