Message ID | 1509717604-3898-2-git-send-email-freifunk@adrianschmutzler.de |
---|---|
State | Accepted |
Headers | show |
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
Hi Reviewed-by: Tim Niemeyer <tim@tn-x.org> Tim Am Freitag, den 03.11.2017, 15:00 +0100 schrieb Adrian Schmutzler: > 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 <freifunk@adrianschmutzler.de> > > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> > > --- > > 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 > -- > 2.7.4 >