diff --git a/buildscript.sh b/buildscript.sh index 0c11e316c242464da5f7dd53d137539469323715..2f7b494fa986698c443bbcb04a2d77142f44f0b3 100755 --- a/buildscript.sh +++ b/buildscript.sh @@ -1,6 +1,6 @@ #!/bin/bash -GLUON_REMOTE_BRANCH="v2020.2.x" +GLUON_REMOTE_BRANCH="v2021.1.x" # get location of executed file. EXECDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -100,17 +100,23 @@ prepare_siteconf(){ echo "Placeholder %B not found" fi if grep -q "%C" < "$EXECDIR"/site.conf; then - sed -i "/^%C$/c\\\\'http://autoupdate-lede.ffnw/v1/$vpn/testing\\'," "$EXECDIR"/site.conf - echo "Set autoupdater testing URL ..." + sed -i "/^%C$/c\\\\'http://autoupdate-lede.ffnw/v1/$vpn/rc\\'," "$EXECDIR"/site.conf + echo "Set autoupdater rc URL ..." else echo "Placeholder %C not found" fi if grep -q "%D" < "$EXECDIR"/site.conf; then - sed -i "/^%D$/c\\\\'http://autoupdate-lede.ffnw/v1/$vpn/nightly/master\\'," "$EXECDIR"/site.conf - echo "Set autoupdater nightly_master URL ..." + sed -i "/^%D$/c\\\\'http://autoupdate-lede.ffnw/v1/$vpn/testing\\'," "$EXECDIR"/site.conf + echo "Set autoupdater testing URL ..." else echo "Placeholder %D not found" fi + if grep -q "%E" < "$EXECDIR"/site.conf; then + sed -i "/^%E$/c\\\\'http://autoupdate-lede.ffnw/v1/$vpn/nightly/master\\'," "$EXECDIR"/site.conf + echo "Set autoupdater nightly_master URL ..." + else + echo "Placeholder %E not found" + fi } prepare_sitemk(){ @@ -149,24 +155,24 @@ gluon_build(){ if [ "$2" == "fast" ] && [ -a "/proc/cpuinfo" ]; then if [ "$3" == "silent" ]; then if [ -a "$EXECDIR/.BROKEN" ]; then - if ! make --silent -C "$EXECDIR/.." -j $(($(grep -c processor /proc/cpuinfo)*2)) BROKEN=1 GLUON_TARGET="$1" GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; + if ! make --silent -C "$EXECDIR/.." -j $(($(grep -c processor /proc/cpuinfo)*2)) BROKEN=1 GLUON_TARGET="$1" GLUON_AUTOUPDATER_ENABLED=1 GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; then error_build=1 fi else - if ! make --silent -C "$EXECDIR/.." -j $(($(grep -c processor /proc/cpuinfo)*2)) GLUON_TARGET="$1" GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; + if ! make --silent -C "$EXECDIR/.." -j $(($(grep -c processor /proc/cpuinfo)*2)) GLUON_TARGET="$1" GLUON_AUTOUPDATER_ENABLED=1 GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; then error_build=1 fi fi else if [ -a "$EXECDIR/.BROKEN" ]; then - if ! make -C "$EXECDIR/.." -j $(($(grep -c processor /proc/cpuinfo)*2)) BROKEN=1 GLUON_TARGET="$1" GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; + if ! make -C "$EXECDIR/.." -j $(($(grep -c processor /proc/cpuinfo)*2)) BROKEN=1 GLUON_TARGET="$1" GLUON_AUTOUPDATER_ENABLED=1 GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; then error_build=1 fi else - if ! make -C "$EXECDIR/.." -j $(($(grep -c processor /proc/cpuinfo)*2)) GLUON_TARGET="$1" GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; + if ! make -C "$EXECDIR/.." -j $(($(grep -c processor /proc/cpuinfo)*2)) GLUON_TARGET="$1" GLUON_AUTOUPDATER_ENABLED=1 GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; then error_build=1 fi @@ -174,12 +180,12 @@ gluon_build(){ fi else if [ -a "$EXECDIR/.BROKEN" ]; then - if ! make -C "$EXECDIR/.." BROKEN=1 GLUON_TARGET="$1" GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; + if ! make -C "$EXECDIR/.." BROKEN=1 GLUON_TARGET="$1" GLUON_AUTOUPDATER_ENABLED=1 GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; then error_build=1 fi else - if ! make -C "$EXECDIR/.." GLUON_TARGET="$1" GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; + if ! make -C "$EXECDIR/.." GLUON_TARGET="$1" GLUON_AUTOUPDATER_ENABLED=1 GLUON_IMAGEDIR="output/images/$(cat "$EXECDIR/.prepare")/$(cat "$EXECDIR/.GLUON_RELEASE")" GLUON_PACKAGEDIR="output/packages/$(cat "$EXECDIR/.prepare")"; then error_build=1 fi diff --git a/gluon_patches/0004-patches-openwrt-add-0016-ath9k-check-for-deaf-rx-pat.patch b/gluon_patches/0004-patches-openwrt-add-0016-ath9k-check-for-deaf-rx-pat.patch deleted file mode 100644 index 57097083dc12c9a3081f73f3f03e5f2f21ec626d..0000000000000000000000000000000000000000 --- a/gluon_patches/0004-patches-openwrt-add-0016-ath9k-check-for-deaf-rx-pat.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 16e48445555a8597a7d6dde41138dff4bc66d139 Mon Sep 17 00:00:00 2001 -From: Jan-Tarek Butt <tarek@ring0.de> -Date: Sat, 5 Sep 2020 11:45:57 +0200 -Subject: [PATCH 4/4] patches/openwrt: add - 0016-ath9k-check-for-deaf-rx-path-state.patch to fix 0% bug on meshlinks - -Signed-off-by: Jan-Tarek Butt <tarek@ring0.de> ---- - ...6-ath9k-check-for-deaf-rx-path-state.patch | 126 ++++++++++++++++++ - 1 file changed, 126 insertions(+) - create mode 100644 patches/openwrt/0016-ath9k-check-for-deaf-rx-path-state.patch - -diff --git a/patches/openwrt/0016-ath9k-check-for-deaf-rx-path-state.patch b/patches/openwrt/0016-ath9k-check-for-deaf-rx-path-state.patch -new file mode 100644 -index 00000000..1c200536 ---- /dev/null -+++ b/patches/openwrt/0016-ath9k-check-for-deaf-rx-path-state.patch -@@ -0,0 +1,126 @@ -+From: Jan-Tarek Butt <tarek@ring0.de> -+Date: Sat, 5 Sep 2020 11:18:59 +0200 -+Subject: ath9k: check for deaf rx path state -+ -+Various chips occasionally run into a state where the tx path still -+appears to be working normally, but the rx path is deaf. -+ -+There is no known register signature to check for this state explicitly, -+so use the lack of rx interrupts as an indicator. -+ -+This detection is prone to false positives, since a device could also -+simply be in an environment where there are no frames on the air. -+However, in this case doing a reset should be harmless since it's -+obviously not interrupting any real activity. To avoid confusion, call -+the reset counters in this case "Rx path inactive" instead of something -+like "Rx path deaf", since it may not be an indication of a real -+hardware failure. -+ -+Signed-off-by: Jan-Tarek Butt <tarek@ring0.de> -+ -+diff --git a/package/kernel/mac80211/patches/ath/359-ath9k-check-for-deaf-rx-path-state.patch b/package/kernel/mac80211/patches/ath/359-ath9k-check-for-deaf-rx-path-state.patch -+new file mode 100644 -+index 0000000000000000000000000000000000000000..347d06ec888c56102523ed40b38aa4b5083d4c9c -+--- /dev/null -++++ b/package/kernel/mac80211/patches/ath/359-ath9k-check-for-deaf-rx-path-state.patch -+@@ -0,0 +1,100 @@ -++From: Felix Fietkau <nbd@nbd.name> -++Date: Wed, 25 Jan 2017 13:00:58 +0100 -++Subject: [PATCH] ath9k: check for deaf rx path state -++ -++Various chips occasionally run into a state where the tx path still -++appears to be working normally, but the rx path is deaf. -++ -++There is no known register signature to check for this state explicitly, -++so use the lack of rx interrupts as an indicator. -++ -++This detection is prone to false positives, since a device could also -++simply be in an environment where there are no frames on the air. -++However, in this case doing a reset should be harmless since it's -++obviously not interrupting any real activity. To avoid confusion, call -++the reset counters in this case "Rx path inactive" instead of something -++like "Rx path deaf", since it may not be an indication of a real -++hardware failure. -++ -++Signed-off-by: Felix Fietkau <nbd@nbd.name> -++--- -++ -++--- a/drivers/net/wireless/ath/ath9k/ath9k.h -+++++ b/drivers/net/wireless/ath/ath9k/ath9k.h -++@@ -1027,6 +1027,7 @@ struct ath_softc { -++ -++ u8 gtt_cnt; -++ u32 intrstatus; -+++ u32 rx_active; -++ u16 ps_flags; /* PS_* */ -++ bool ps_enabled; -++ bool ps_idle; -++--- a/drivers/net/wireless/ath/ath9k/debug.c -+++++ b/drivers/net/wireless/ath/ath9k/debug.c -++@@ -763,6 +763,7 @@ static int read_file_reset(struct seq_fi -++ [RESET_TYPE_BEACON_STUCK] = "Stuck Beacon", -++ [RESET_TYPE_MCI] = "MCI Reset", -++ [RESET_TYPE_CALIBRATION] = "Calibration error", -+++ [RESET_TYPE_RX_INACTIVE] = "Rx path inactive", -++ [RESET_TX_DMA_ERROR] = "Tx DMA stop error", -++ [RESET_RX_DMA_ERROR] = "Rx DMA stop error", -++ }; -++--- a/drivers/net/wireless/ath/ath9k/debug.h -+++++ b/drivers/net/wireless/ath/ath9k/debug.h -++@@ -50,6 +50,7 @@ enum ath_reset_type { -++ RESET_TYPE_BEACON_STUCK, -++ RESET_TYPE_MCI, -++ RESET_TYPE_CALIBRATION, -+++ RESET_TYPE_RX_INACTIVE, -++ RESET_TX_DMA_ERROR, -++ RESET_RX_DMA_ERROR, -++ __RESET_TYPE_MAX -++--- a/drivers/net/wireless/ath/ath9k/link.c -+++++ b/drivers/net/wireless/ath/ath9k/link.c -++@@ -53,13 +53,27 @@ reset: -++ -++ } -++ -+++static bool ath_rx_active_check(struct ath_softc *sc) -+++{ -+++ if (sc->rx_active) { -+++ sc->rx_active = 0; -+++ return true; -+++ } -+++ -+++ ath_dbg(ath9k_hw_common(sc->sc_ah), RESET, -+++ "rx path inactive, resetting the chip\n"); -+++ ath9k_queue_reset(sc, RESET_TYPE_RX_INACTIVE); -+++ return false; -+++} -+++ -++ void ath_hw_check_work(struct work_struct *work) -++ { -++ struct ath_softc *sc = container_of(work, struct ath_softc, -++ hw_check_work.work); -++ -++ if (!ath_hw_check(sc) || -++- !ath_tx_complete_check(sc)) -+++ !ath_tx_complete_check(sc) || -+++ !ath_rx_active_check(sc)) -++ return; -++ -++ ieee80211_queue_delayed_work(sc->hw, &sc->hw_check_work, -++--- a/drivers/net/wireless/ath/ath9k/main.c -+++++ b/drivers/net/wireless/ath/ath9k/main.c -++@@ -269,6 +269,7 @@ static bool ath_complete_reset(struct at -++ } -++ -++ sc->gtt_cnt = 0; -+++ sc->rx_active = 1; -++ -++ ath9k_hw_set_interrupts(ah); -++ ath9k_hw_enable_interrupts(ah); -++@@ -452,6 +453,7 @@ void ath9k_tasklet(unsigned long data) -++ ath_rx_tasklet(sc, 0, true); -++ -++ ath_rx_tasklet(sc, 0, false); -+++ sc->rx_active = 1; -++ } -++ -++ if (status & ATH9K_INT_TX) { --- -2.20.1 - diff --git a/site.conf b/site.conf index 4da7c640b1eab35378e09314a818199dd82116fa..d39acb07c50b649464cf91b907d33a07649b4219 100644 --- a/site.conf +++ b/site.conf @@ -24,6 +24,7 @@ }, wifi5 = { channel = 44, + outdoor_chanlist = '100-140', mesh = { mcast_rate = 12000, }, @@ -70,10 +71,24 @@ 'e3d2e96563b9be3e95a3d748c0ff50a6f854208b68b4a1181667641d74754c76', --stefan }, }, + rc = { + name = 'stable', + mirrors = { +%C + }, + good_signatures = 1, + pubkeys = { + '99c420e95dd0923ee6277af5c306f9ae6b97f8793b08edd41448925df5fe35b9', --floh1111 + '5d95cc2ef3ad17fe3716469e1effde4a49a25d4de9befa4a6eb260e4cda79ab0', --tata + '0e6704ba26c150185514a391658455a612839c35bd83e0faffa81e0be48356e2', --sk + 'd3a4cbc90a2d4dbfc5386dd035016a04bfdfe1e7615fa8ea25bea5c048a7f106', --lrnzo + 'e3d2e96563b9be3e95a3d748c0ff50a6f854208b68b4a1181667641d74754c76', --stefan + }, + }, testing = { name = 'testing', mirrors = { -%C +%D }, good_signatures = 1, pubkeys = { @@ -87,7 +102,7 @@ nightly_master = { name = 'nightly_master', mirrors = { -%D +%E }, good_signatures = 1, pubkeys = {