OS-sw ver.: CCBot/2.0 (https://commoncrawl.org/faq/)
Login date: 21 Jul 19 - 03:04:52
IP Address: 18.232.99.123Cursore

Registrati

Allora, in questo articolo voglio abilitare i pulsanti presenti sul router in modo da poterlo spegnere con il tastino invece che da remoto ed abilitare il secondo tasto (quello che originariamente era previsto come "copy") per attivare/disattivare la rete wifi.
Prima di iniziare bisogna installare i pacchetti:- hotplug2
- kmod-button-hotplug

ipkg install hotplug2 kmod-button-hotplug



Ora procediamo con la configurazione vera e propria, creare la directory buttono sotto la /etc/hotplug.d

mkdir /etc/hotplug.d/button



creiamo il file buttons ed editiamolo

touch /etc/hotplug.d/button/buttons
vi /etc/hotplug.d/button/buttons



inserire nel file buttons le seguenti righe:

#!/bin/sh 
logger $BUTTON
logger $ACTION


Salvare ed uscire.
A questo punto abbiamo abilitato il logging dei pulsanti nel nostro openwrt, per testare il corretto funzionamento premiamo il tasto "power" e il tasto "copy" del router, se andiamo a vedere nel syslog con il comando logread toveremo:

logread

...
...

Jan 1 00:01:15 OpenWrt user.notice root: power Jan 1 00:01:15 OpenWrt user.notice root: pressed Jan 1 00:01:16 OpenWrt user.notice root: power Jan 1 00:01:16 OpenWrt user.notice root: released
Jan 1 00:01:15 OpenWrt user.notice root: power Jan 1 00:01:15 OpenWrt user.notice root: pressed Jan 1 00:01:16 OpenWrt user.notice root: power Jan 1 00:01:16 OpenWrt user.notice root: released



Arrivati a questo punto direi che siamo quasi a cavallo!

Adesso creiamo il file che eseguirà un comando quando vedrà un evento di tipo button, quindi

touch /etc/hotplug.d/button/00-button
vi /etc/hotplug.d/button/00-button



ed inseriamo le seguenti righe (attenzione, il path dello script functions.sh potrebbe essere anche in /lib/functions.sh):

#!/bin/sh
. /etc/functions.sh
do_button () {
      local button
      local action
      local handler
      local min
      local max

      config_get button $1 button
      config_get action $1 action
      config_get handler $1 handler
      config_get min $1 min
      config_get max $1 max

      [ "$ACTION" = "$action" -a "$BUTTON" = "$button" -a -n "$handler" ] && {
                [ -z "$min" -o -z "$max" ] && eval $handler
                [ -n "$min" -a -n "$max" ] && {
                   [ $min -le $SEEN -a $max -ge $SEEN ] && eval $handler
                }
      }
}

config_load system
config_foreach do_button button


Salvare ed uscire. Da shell ora inseriremo i riferimenti ai pulsanti e l'evento da scatenare in caso di pressione (sul release):

-power

uci add system button uci set system.@button[-1].button=power uci set system.@button[-1].action=released uci set system.@button[-1].handler=poweroff uci set system.@button[-1].min=0 uci set system.@button[-1].max=3 uci commit system



-copy (wifi)

uci add system button uci set system.@button[-1].button=copy uci set system.@button[-1].action=released uci set system.@button[-1].handler=/opt/scripts/wifionoff.sh uci set system.@button[-1].min=0 uci set system.@button[-1].max=3 uci commit system



andiamo a vedere se nella configurazione è stato salvato quello appena digitato (vedere il comando uci delete per cancellare entry sbagliate)

uci show system
...
...
system.@button[0]=button
system.@button[0].button=copy
system.@button[0].action=released
system.@button[0].handler=/opt/scripts/wifionoff.sh
system.@button[0].min=0
system.@button[0].max=3
system.@button[1]=button
system.@button[1].button=power
system.@button[1].handler=poweroff
system.@button[1].action=released
system.@button[1].min=0
system.@button[1].max=3



creiamo lo script per il wifi in /opt/scripts/wifionoff.sh

touch /opt/scripts/wifionoff.sh
vi /opt/scripts/wifionoff.sh
chmod 700 /opt/scripts/wifionoff.sh



inserire le seguenti righe per il su e giu del wifi:

#!/bin/sh 
SW=$(uci -q get wireless.@wifi-device[0].disabled)
[ "$SW" == "1" ] && uci set wireless.@wifi-device[0].disabled=0
[ "$SW" == "1" ] || uci set wireless.@wifi-device[0].disabled=1
wifi


Ora che abbiamo terminato la configurazione non ci resta che testare il tutto, good luck!
Visite totali80701
Questo sito web usa i cookies per gestire alcune funzionalità, quali navigazione, autenticazione, commenti, etc. Utilizzando il nostro sito web, accetti l'utilizzo dei cookies.