From patchwork Fri Nov 3 14:00:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v12,2/5] fff-support: Update PoE passthrough code From: Adrian Schmutzler X-Patchwork-Id: 655 Message-Id: <1509717604-3898-2-git-send-email-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Fri, 3 Nov 2017 15:00:01 +0100 This implements an upgrade safe solution for the PoE passthrough on multiple devices. Since LEDE already provides the relevant settings, a check whether those are in place enables both identification of affected devices and automatic deactivation if parameters are changed. Signed-off-by: Adrian Schmutzler Tested-by: Adrian Schmutzler Reviewed-by: Tim Niemeyer --- Changes in v12: - Fixed poe variable name in uci-default script - Added "/etc/init.d/gpio_switch restart" to scripts --- .../fff/fff-config/files/etc/uci-defaults/98-configure-fff | 5 +++++ src/packages/fff/fff-support/Makefile | 2 +- .../ar71xx/usr/lib/fff-support/activate_poe_passthrough.sh | 9 +++++++++ .../usr/lib/fff-support/cpe210_activate_poe_passthrough.sh | 5 ----- .../ar71xx/usr/lib/fff-support/disable_poe_passthrough.sh | 12 ++++++++++++ .../ar71xx/usr/lib/fff-support/permanent_poe_passthrough.sh | 9 +++++++++ 6 files changed, 36 insertions(+), 6 deletions(-) create mode 100755 src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/activate_poe_passthrough.sh delete mode 100644 src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/cpe210_activate_poe_passthrough.sh create mode 100755 src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/disable_poe_passthrough.sh create mode 100755 src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/permanent_poe_passthrough.sh diff --git a/src/packages/fff/fff-config/files/etc/uci-defaults/98-configure-fff b/src/packages/fff/fff-config/files/etc/uci-defaults/98-configure-fff index 677da15..aa6ac42 100644 --- a/src/packages/fff/fff-config/files/etc/uci-defaults/98-configure-fff +++ b/src/packages/fff/fff-config/files/etc/uci-defaults/98-configure-fff @@ -23,3 +23,8 @@ uci -q set "simple-tc.example.limit_ingress=${traffic_in}" uci -q set "simple-tc.example.limit_egress=${traffic_out}" uci -q commit + +poe_passthrough=$(uci -q get "fff.poe_passthrough.active") +if [ "$poe_passthrough" = "1" ] && [ -s /usr/lib/fff-support/activate_poe_passthrough.sh ] ; then + /usr/lib/fff-support/activate_poe_passthrough.sh +fi diff --git a/src/packages/fff/fff-support/Makefile b/src/packages/fff/fff-support/Makefile index c255a8f..9fd2d2b 100644 --- a/src/packages/fff/fff-support/Makefile +++ b/src/packages/fff/fff-support/Makefile @@ -13,7 +13,7 @@ define Package/$(PKG_NAME) CATEGORY:=Freifunk TITLE:=Freifunk-Franken Support Scripts URL:=http://www.freifunk-franken.de - DEPENDS:=+@BUSYBOX_CONFIG_ASH + DEPENDS:=+@BUSYBOX_CONFIG_ASH +fff-config endef define Package/$(PKG_NAME)/description diff --git a/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/activate_poe_passthrough.sh b/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/activate_poe_passthrough.sh new file mode 100755 index 0000000..a083d7b --- /dev/null +++ b/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/activate_poe_passthrough.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# This enables PoE passthrough so it is persistent through reboots, +# but reset after firmware upgrade + +if uci -q get "system.poe_passthrough" > /dev/null ; then + uci -q set "system.poe_passthrough.value=1" + uci -q commit system + /etc/init.d/gpio_switch restart +fi diff --git a/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/cpe210_activate_poe_passthrough.sh b/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/cpe210_activate_poe_passthrough.sh deleted file mode 100644 index cb3508f..0000000 --- a/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/cpe210_activate_poe_passthrough.sh +++ /dev/null @@ -1,5 +0,0 @@ -if [ "$(cat /var/sysinfo/model)" = "TP-Link CPE210 v1.1" ] ; then - echo 20 > /sys/class/gpio/export - echo out > /sys/class/gpio/gpio20/direction - echo 1 > /sys/class/gpio/gpio20/value -fi diff --git a/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/disable_poe_passthrough.sh b/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/disable_poe_passthrough.sh new file mode 100755 index 0000000..b15271f --- /dev/null +++ b/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/disable_poe_passthrough.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# This disables PoE passthrough permanently + +uci -q set "fff.poe_passthrough=fff" +uci -q set "fff.poe_passthrough.active=0" +uci -q commit fff + +if uci -q get "system.poe_passthrough" > /dev/null ; then + uci -q set "system.poe_passthrough.value=0" + uci -q commit system + /etc/init.d/gpio_switch restart +fi diff --git a/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/permanent_poe_passthrough.sh b/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/permanent_poe_passthrough.sh new file mode 100755 index 0000000..955a992 --- /dev/null +++ b/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/permanent_poe_passthrough.sh @@ -0,0 +1,9 @@ +#!/bin/sh +# This enables PoE passthrough permanently, so it is persistent +# during firmware upgrades + +uci -q set "fff.poe_passthrough=fff" +uci -q set "fff.poe_passthrough.active=1" +uci -q commit fff + +/usr/lib/fff-support/activate_poe_passthrough.sh