From patchwork Fri Jul 14 09:38:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [RFC,v3,2/2] fff-support: Update PoE passthrough code From: Adrian Schmutzler X-Patchwork-Id: 382 Message-Id: <1500025092-2191-1-git-send-email-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Cc: Adrian Schmutzler Date: Fri, 14 Jul 2017 11:38:12 +0200 This implements an upgrade safe solution for the PoE passthrough supporting both the CPE210 and the Nanostation M2. Signed-off-by: Adrian Schmutzler --- .../ar71xx/usr/lib/fff-support/activate_poe_passthrough.sh | 10 ++++++++++ .../usr/lib/fff-support/cpe210_activate_poe_passthrough.sh | 5 ----- .../ar71xx/usr/lib/fff-support/disable_poe_passthrough.sh | 13 +++++++++++++ .../ar71xx/usr/lib/fff-support/permanent_poe_passthrough.sh | 9 +++++++++ .../fff/fff-sysupgrade/files/usr/sbin/configurefffinit | 5 +++++ 5 files changed, 37 insertions(+), 5 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-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..f52bc2c --- /dev/null +++ b/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/activate_poe_passthrough.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# This enables PoE passthrough so it is persistent through reboots, +# but reset after firmware upgrade + +used_device="$(cat /var/sysinfo/model)" + +if [ "$used_device" = "TP-Link CPE210 v1.1" ] || [ "$used_device" = "Ubiquiti NanoStation M2" ] ; then + uci -q set "system.poe_passthrough.value=1" + uci -q commit system +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..138a60b --- /dev/null +++ b/src/packages/fff/fff-support/ar71xx/usr/lib/fff-support/disable_poe_passthrough.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# This disables PoE passthrough permanently + +uci -q set "fff.poe_passthrough=gpio" +uci -q set "fff.poe_passthrough.active=0" +uci -q commit fff + +used_device="$(cat /var/sysinfo/model)" + +if [ "$used_device" = "TP-Link CPE210 v1.1" ] || [ "$used_device" = "Ubiquiti NanoStation M2" ] ; then + uci -q set "system.poe_passthrough.value=0" + uci -q commit system +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..f9acb88 --- /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=gpio" +uci -q set "fff.poe_passthrough.active=1" +uci -q commit fff + +/usr/lib/fff-support/activate_poe_passthrough.sh diff --git a/src/packages/fff/fff-sysupgrade/files/usr/sbin/configurefffinit b/src/packages/fff/fff-sysupgrade/files/usr/sbin/configurefffinit index 20d738c..d10f923 100755 --- a/src/packages/fff/fff-sysupgrade/files/usr/sbin/configurefffinit +++ b/src/packages/fff/fff-sysupgrade/files/usr/sbin/configurefffinit @@ -21,4 +21,9 @@ uci -q set "simple-tc.example.limit_egress=${traffic_out}" uci -q commit +poe_passthrough=$(uci -q get "fff.poe_passthrough.enabled") +if [ "$poe_passthrough" = "1" ] && [ -s /usr/lib/fff-support/activate_poe_passthrough.sh ] ; then + /usr/lib/fff-support/activate_poe_passthrough.sh +fi + exit 0