-
-
Save jonasbits/620ca1df7ab369c89826dcd14b6aaf27 to your computer and use it in GitHub Desktop.
Switching network configurations on a TP-Link TL-MR3020 with OpenWrt (12.09 Attitude Adjustment) using the sliding switch. Based on the sample scripts at: https://forum.openwrt.org/viewtopic.php?pid=172111#p172111 and https://forum.openwrt.org/viewtopic.php?pid=172110#p172110
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
grep -qe "sw1.*in hi" /sys/kernel/debug/gpio |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
grep -qe "sw2.*in hi" /sys/kernel/debug/gpio |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh /etc/rc.common | |
START=15 | |
boot() { | |
/usr/local/sbin/set_network_config | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# based on https://forum.openwrt.org/viewtopic.php?pid=172111#p172111 | |
ME=$(basename $0) | |
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin | |
if BTN_1_pressed ; then | |
if BTN_0_pressed ; then | |
CONFIG=ap | |
else | |
CONFIG=wisp | |
fi | |
else | |
CONFIG=3g | |
fi | |
SRC="/etc/config/$CONFIG" | |
DEST=/tmp/network_config | |
if [ ! -d "$SRC" ] ; then | |
logger -t "$ME" -p "user.warn" "$SRC is not a directory" | |
exit 1 | |
fi | |
if [ -L "$DEST" ] ; then | |
CUR=$(cd "$DEST"; pwd -P) | |
if [ "$CUR" = "$SRC" ] ; then | |
logger -t "$ME" "Already using $CONFIG config" | |
exit 2 | |
fi | |
fi | |
logger -t "$ME" "Using $CONFIG config" | |
ln -sfn "$SRC" "$DEST" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
chmod a+x BTN_0_pressed BTN_1_pressed set_network_config update_network_config network_config | |
mkdir -p /usr/local/sbin | |
mv BTN_0_pressed BTN_1_pressed set_network_config update_network_config /usr/local/sbin | |
mkdir -p /etc/hotplug.d/button | |
mv 00-button /etc/hotplug.d/button | |
mv network_config /etc/init.d | |
opkg update | |
opkg install flock | |
cd /etc/config | |
mkdir 3g | |
mv network wireless 3g | |
cp -r 3g wisp | |
cp -r 3g ap | |
ln -s network /tmp/network_config/network | |
ln -s wireless /tmp/network_config/wireless | |
# configure files in 3g / wisp / ap directories for each corresponding mode | |
# to use uci / luci to configure, create the /tmp/network_config symbolic link to point to the correct directory, e.g. | |
# ln -s /tmp/network_config /etc/config/3g | |
# or configure the settings before moving the config files | |
/etc/init.d/network_config enable | |
uci add system button | |
uci set system.@button[-1].button=3g | |
uci set system.@button[-1].action=pressed | |
uci set system.@button[-1].handler=update_network_config | |
uci add system button | |
uci set system.@button[-1].button=wisp | |
uci set system.@button[-1].action=pressed | |
uci set system.@button[-1].handler=update_network_config | |
uci add system button | |
uci set system.@button[-1].button=ap | |
uci set system.@button[-1].action=pressed | |
uci set system.@button[-1].handler=update_network_config | |
uci commit system | |
reboot |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
ME=$(basename $0) | |
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin | |
( | |
flock -n 9 || exit 1 | |
( | |
sleep 1 | |
if set_network_config ; then | |
. /etc/diag.sh | |
get_status_led | |
status_led_set_timer 200 200 | |
logger -t "$ME" "Reloading network" | |
/etc/init.d/network restart | |
status_led_on | |
fi | |
) 9>&- | |
) 9>/tmp/update_network_config.lock |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment