Le routeur WRT54GL possede deux boutons: un bouton de réinitialisation et un bouton SecureEasySetup. Lors de l'installation d'OpenWRT c'est bouton ne servent à rien. Voici comment leur donner une utilité comme activer et désactiver le wifi.

Script d'activation/désactivation du wifi

Dans un premier nous allons créer un script qui permettent de changer l'état du wifi. C'est à dire l'activer s'il est éteint et l'inactiver dans le cas contraire.

Pour cela il suffit de créer le fichier /sbin/woggle (ou avec un autre nom). Contenant ceci:

#!/bin/sh

case "$(uci get wireless.@wifi-device[0].disabled)" in
   1) uci set wireless.@wifi-device[0].disabled=0
      wifi
      echo 1 > /proc/diag/led/ses_white
   ;;
   *) uci set wireless.@wifi-device[0].disabled=1
      wifi
      echo 0 > /proc/diag/led/ses_white
      echo 2 > /proc/diag/led/wlan
   ;;
esac

Le script commence par récupérer l'état du wifi (uci get wireless.@wifi-device[0].disabled). S'il est désactivé (égale à 1), il l'active et allume la LED du bouton SES. Dans le cas contraire il le désactive et éteint les LED du bouton SES et du wifi.

Il ne faut pas oublier de le rendre exécutable avec la commande:

# chmod +x /sbin/woggle

Pour changer l'état du wifi il suffit de lancer le script sur la ligne de commande:

root@openwrt:# /sbin/woggle

Lien avec le bouton SES

Maintenant que nous avons un script qui change l'état du wifi il suffit de le lier au bouton SES, pour qu'il soit exécuter chaque fois que ce bouton est pressé.

Pour cela cela se passe via la gestion des événements hotplug. Il faut créer un répertoir button dans le repertoire /etc/hotplug.d et créer ensuite un script nommer par exemple 01-radio-toggle, contenant ceci:

#!/bin/sh
if [ "$BUTTON" = "ses" ] && [ "$ACTION" = "pressed" ] ; then
  ( sleep 1; /sbin/woggle ) &
fi

Maintenant pour activer ou désactiver le wifi il suffit d'appuyer sur le bouton SES.

Sources

[[http://wiki.openwrt.org/doc/howto/wifitoggle|Wifi Toggle]]