Muy buenas, tengo el hg556 atheros funcionando como cliente/repetidor solo con su antena integrada, mi intencion seria que el boton lateral (el del wifi) activase o desactivase el ap pero manteniendo la conexion como cliente (vamos que no me deconecte el wifi completo del hg556)
He estado mirando varios links pero no consigo resultados, alguna idea de como hacerlo??
Lo que propones es muy interesante. Se resuelve con un script y el paquete tiggerhappy. Pero primero fíjate en el contenido del fichero /etc/config/wireless del repetidor:
config 'wifi-device' 'radio0'
option 'type' 'mac80211'
option 'macaddr' 'xx:xx:xx:xx:xx:xx'
option 'hwmode' '11ng'
option 'htmode' 'HT20'
list 'ht_capab' 'SHORT-GI-40'
list 'ht_capab' 'TX-STBC'
list 'ht_capab' 'RX-STBC1'
list 'ht_capab' 'DSSS_CCK-40'
option 'channel' 'auto'
option 'txpower' '20'
option 'country' 'ES'
config 'wifi-iface'
option 'ssid' 'Internet'
option 'encryption' 'psk2'
option 'device' 'radio0'
option 'mode' 'sta'
option 'network' 'wwan'
option 'key' 'xxxxxxxxxx'
config 'wifi-iface'
option 'device' 'radio0'
option 'mode' 'ap'
option 'ssid' 'repetidor'
option 'network' 'lan'
option 'encryption' 'psk2'
option 'key' 'xxxxxxxxxx'Tenemos dos INTERFACES lógicas (una cliente y la otra AP) sustentadas por un único DISPOSITIVO físico. Si apagas el dispositivo físico te quedas sin las dos interfaces lógicas. Necesitas un script que deshabilite UNICAMENTE el interfaz AP. El comando para esto es uci set wireless.@wifi-iface[1].disabled=1. Vayamos por partes.
1. El script.
#!/bin/sh
if [ $(uci get wireless.@wifi-iface[1].disabled) == 1 ]; then
uci set wireless.@wifi-iface[1].disabled=0
else
uci set wireless.@wifi-iface[1].disabled=1
fi
uci commit wireless
wifi
exit
Lo guardamos en /root/wifitoggle y lo hacemos ejecutable:
root@OpenWrt:~# chmod +ugo /root/wifitoggle
Se puede comprobar su funcionamiento. Cada vez que lancemos el script, el AP cambiará de estado. Si estaba encendido, se apagará y viceversa.
root@OpenWrt:~# /root/wifitoggle
2. Activación de los botones del router.
Para que los botones del router funcionen, instalamos el paquete kmod-input-gpio-buttons:
root@OpenWrt:~# opkg update
root@OpenWrt:~# opkg install kmod-input-gpio-buttons
Ahora comprobamos que se ha creado el dispositivo de entrada event0 (que antes no existía):
root@OpenWrt:~# ls /dev/input/*
/dev/input/event0
3. Instalación y activación de triggerhappy:
root@OpenWrt:~# opkg install triggerhappy
Editamos el fichero /etc/triggerhappy/triggers.d/example.conf y le añadimos esta línea al final (sin dejar líneas en
blanco):
KEY_WPS_BUTTON 1 /root/wifitoggle
Finalmente, activamos triggerhappy:
root@OpenWrt:~# /etc/init.d/triggerhappy start
Ahora, cada vez que pulsemos el botón WPS (el que está en el costado) el AP se apagará si estaba encendido o se encenderá si estaba apagado.