netprince wrote:I was wondering about this, but the script seems to be lost. Could you possibly repost it?
Sure, it must have been lost when OpenWRT project website moved to new forum engine (I suppose).
Here it is:
--- setnr - can be run as a daemon (&) ---
#!/bin/sh
while [ true ]; do
if [ `cat /proc/sys/reset` = "1" ]; then
echo "0x01" > /proc/sys/diag
while true; do
[ `cat /proc/sys/reset` = "0" ] && break
done
echo "0x00" > /proc/sys/diag
/bin/setnr-actions
fi
sleep 1
done
---
--- setnr-actions ---
#!/bin/sh
. /bin/setnr-functions
case "`get_nr_1`" in
1) save_and_reboot ;;
2) router_number ;;
3) peer_number ;;
4) channel_number ;;
5) pppoe_enable ;;
6) /etc/init.d/S45firewall stop ;;
7) /etc/init.d/S53olsrd restart ;;
8) ping_test ;;
esac
---
--- setnr-functions ---
#!/bin/sh
### FUNCTIONS
get_nr_1() {
/bin/getnr
}
get_nr_2() {
num1="`get_nr_1`"
num2="`get_nr_1`"
echo $(($num1 * 10 + $num2))
}
nvram() {
/usr/sbin/nvram $*
}
### OPTIONS
# *** put your implementations here ***
# (...)
# some samples:
save_and_reboot() {
nvram commit
/sbin/reboot
}
channel_number() {
num="`get_nr_1`"
[ "$num" = "0" ] && return
nvram set wl0_channel=$num
}
ping_test() {
for i in 1 2 3 4 5 6 7 8 9 10; do
ping -c 1 #IP# >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "0x01" > /proc/sys/diag
sleep 1
echo "0x00" > /proc/sys/diag
fi
done
}
---
--- getnr (finally) ---
#!/bin/sh
empty=0
last=0
number=0
# notify that we're ready to get the number
echo "0x04" > /proc/sys/diag
while true; do
if [ `cat /proc/sys/reset` = "1" ]; then
# hey, it's one push - power on DMZ led
echo "0x01" > /proc/sys/diag
empty=0
if [ "$last" = "0" ]; then
# increase number
number=$(($number+1))
fi
# user pressed the button
last=1
else
# power off DMZ led
echo "0x04" > /proc/sys/diag
empty=$(($empty+1))
# end after 15 "empty" inputs
if [ $empty -gt 15 ]; then
break
fi
# user released the button
last=0
fi
done
# notify that we're end
echo "0x01" > /proc/sys/diag
sleep 1
echo "0x00" > /proc/sys/diag
echo $number
---