15 de juliol del 2013

TP-Link WDR3600: Wifi ON/OFF amb un botó

Fa un temps ja vaig explicar com activar/desactivar amb un botó la xarxa sense fils a Openwrt (o Gargoyle). L'encaminador TP-Link WDR3600 té un interruptor per això, però la seva utilització no està prevista en Openwrt.

Ho podem veure entrant en l'encaminador i editant un petit fitxer per tal de registrar les accions que fem amb els butons:
$ ssh root@gargoyle
root@gargoyle password: xxxxxxx
root@Gargoyle:~# mkdir -p /etc/hotplug.d/button
root@Gargoyle:~# vi /etc/hotplug.d/button/button_log
El contingut del fitxer ha de ser el següent:
#!/bin/sh    
        logger $BUTTON    
        logger $ACTION            
Ara, premem el botó WPS i movem l'interruptor d'activar/desactivar la xarxa sense fils.Tot seguit mirem el que ha quedat registrat amb la comanda:
root@Gargoyle:~# logread
De seguida podem veure com queda registrat quan premem (pressed) i deixem anar (release) el botó 'wps'. En canvi, no hi ha res sobre l'interruptor. De fet, podem comprovar l'estat d'aquest amb una comanda com:
root@Gargoyle:~# cat /sys/kernel/debug/gpio | grep 17
El problema és que no hi ha una manera senzilla d'enllaçar-hi comandes. Per tant, utilitzarem el botó WPS per activar/desactivar la xarxa sense fils.Per això modifiquem el fitxer /etc/config/system per tal que inclogui:
config button 'wifion_button'
 option button 'wps'
 option action 'released'
 option handler '/sbin/wifi ;'
 option min '0'
 option max '1'

config button 'wifioff_button'
 option button 'wps'
 option action 'released'
 option handler '/sbin/wifi down;'
 option min '2'
 option max '10'

config button 'reboot_button'
 option button 'wps'
 option action 'released'
 option handler 'logger reboot ; /usr/lib/gargoyle/reboot.sh ;'
 option min '15'
 option max '30'
De fet, aquest botó ja s'utilitzava per reiniciar l'encaminador, així que el que he fet és separar el tipus d'acció segons el temps que premem el botó:
  • Entre 0 i 1 segons: activar la xarxa sense fils.
  • Entre 2 i 10 segons: apagar la xarxa sense fils.
  • De 15 a 30 segons: reiniciar l'aparell.
D'aquesta manera no es perd funcionalitat i difícilment ens equivocarem d'opció.

Cap comentari:

Publica un comentari a l'entrada