wlan per knopfdruck - openwrt wifitoggle

im zuge des openwrt tunings habe ich mich durch div. howtos und das openwrt
wiki gewühlt und habe eine nette spielerei gefunden. mittels des sogenannten
fast setup button kann ich das wlan an und wieder ausschalten und das nette
dabei ist, die passenden leds werden auch gleich noch aktiviert bzw.
ausgeschaltet. laut forum ist das zwar nicht möglich, bzw. noch hat es dort
niemand beschrieben, jedoch ist es durch einen kleinen trick auch möglich die
wlan led auszuschalten. das bedeutet, ist wlan aktiviert, leuchtet sowohl die
wlan led als auch das cisco logo in weiss an der front, hinter welcher sich
bei dem wrt54gl der knopf versteckt. aber kommen wir jetzt zur konfiguration.
als erstes wird das verzeichnis angelegt.

mkdir -p /etc/hotplug.d/button

ich habe die datei dann 01-wifitoggle genannt welche bei mir wie folgt
ausschaut.

. /lib/config/uci.sh
. /etc/functions.sh

config_load "wifitoggle"
local section="cfg1"
config_get      "BUTTON_NAME" "$section" "button"
config_get_bool "seen" "$section" "seen" '0'

toggle_radio() {
        local section="$1"
        config_get "WIFI_RADIOSTATUS" "$section" "disabled"

        case "$WIFI_RADIOSTATUS" in
                0|"")

                        uci_set "wireless" "$section" "disabled" "1"
                        uci_commit "wireless"
                        wifi
                        if [ "$BUTTON_NAME" = "ses" ] ; then
                                echo 2 > /proc/diag/led/power
                                echo 0 > /proc/diag/led/ses_white
                                echo 2 > /proc/diag/led/wlan
                                echo 1 > /proc/diag/led/power
                         fi
                ;;
                1)
                        uci_set "wireless" "$section" "disabled" "0"
                        uci_commit "wireless"
                        wifi
                        if [ "$BUTTON_NAME" = "ses" ] ; then
                                echo 2 > /proc/diag/led/power
                                echo 1 > /proc/diag/led/ses_white
                                echo 1 > /proc/diag/led/wlan
                                echo 1 > /proc/diag/led/power
                         fi
                ;;
        esac
}

if [ "$BUTTON" = "$BUTTON_NAME" ] && [ $SEEN != "$seen" ] ; then
        if [ "$ACTION" = "pressed" ] ; then
                config_load "wireless"
                config_foreach toggle_radio wifi-device
        fi
fi

der vorteil ist, das die beiden pakete wl bzw wlc nicht installiert sein
müssen da komplett die funktionen vom uci genutzt werden. das spart ein
wenig speicher. dann noch schnell die passende konfiguration ablegen unter
/etc/config/. bei mir nennt sich das ganze wifitoggle

config wifitoggle
        option button   'ses'
        option seen   '0'

speichern und dann einfach einmal den knopf drücken. kurz warten und erneut
drück ... jetzt ist das an und ausschalten des wlans mittels knopf am router
problemlos möglich. aber viel besser, man sieht durch das leuchtende logo
sofort in welchem status das wlan ist. das ganze ist eine zusammenführung von
diesem
wiki eintrag und der allgemeinen konfigurations
anleitung.
kombiniert mit dem mut etwas auszuprobieren.

{% include JB/setup %}

Show Comments