From 1e2084fdf12c7a2d584499dba6350f82185f7807 Mon Sep 17 00:00:00 2001
From: cronyx
Date: Sun, 17 Jul 2022 19:01:20 +0300
Subject: [PATCH 01/68] added radio_port, udp_port and fec settings to wfb.conf
---
general/package/wifibroadcast/files/S98wfb | 6 +++++-
general/package/wifibroadcast/files/wfb.conf | 4 ++++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/general/package/wifibroadcast/files/S98wfb b/general/package/wifibroadcast/files/S98wfb
index bdfc7a32..22f963e9 100755
--- a/general/package/wifibroadcast/files/S98wfb
+++ b/general/package/wifibroadcast/files/S98wfb
@@ -12,6 +12,10 @@ channel=`cat ${config} | grep channel | cut -f 2 -d '='`
bandwidth=`cat ${config} | grep bandwidth | cut -f 2 -d '='`
stbc=`cat ${config} | grep stbc | cut -f 2 -d '='`
mcs_index=`cat ${config} | grep mcs_index | cut -f 2 -d '='`
+udp_port=`cat ${config} | grep udp_port | cut -f 2 -d '='`
+radio_port=`cat ${config} | grep radio_port | cut -f 2 -d '='`
+rs_k=`cat ${config} | grep rs_k | cut -f 2 -d '='`
+rs_n=`cat ${config} | grep rs_n | cut -f 2 -d '='`
load_rtl() {
modprobe cfg80211
@@ -40,7 +44,7 @@ load_interface() {
}
start_wfb() {
- wfb_tx -p 1 -u 5600 -K ${keydir}/drone.key -B ${bandwidth} -M ${mcs_index} -S ${stbc} ${wlan} &
+ wfb_tx -p ${radio_port} -u ${udp_port} -K ${keydir}/drone.key -B ${bandwidth} -M ${mcs_index} -S ${stbc} -k ${rs_k} -n ${rs_n} ${wlan} &
}
case "$1" in
diff --git a/general/package/wifibroadcast/files/wfb.conf b/general/package/wifibroadcast/files/wfb.conf
index 6d8e29f9..b4ac0c38 100644
--- a/general/package/wifibroadcast/files/wfb.conf
+++ b/general/package/wifibroadcast/files/wfb.conf
@@ -6,3 +6,7 @@ channel=14
bandwidth=20
stbc=1
mcs_index=1
+radio_port=3
+udp_port=5600
+rs_k=8
+rs_n=12
From 11acbc18940536d722727d80d3ecb1acfc2d5633 Mon Sep 17 00:00:00 2001
From: Igor Zalatov
Date: Sun, 17 Jul 2022 20:26:31 +0300
Subject: [PATCH 02/68] Update index.md
---
docs/index.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/docs/index.md b/docs/index.md
index df39e2b1..0b5956fd 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,7 +1,7 @@

-## OpenIPC firmware
+## OpenIPC firmware [][gitter]
_(based on Buildroot)_
OpenIPC is a rapidly developing open source alternative [firmware][firmware] for
@@ -17,6 +17,7 @@ More information about the [project][project] is available in our [website][webs
and on the [wiki][wiki].
[firmware]: https://github.com/openipc/firmware/
+[gitter]: https://gitter.im/openipc
[project]: https://github.com/openipc/
[website]: https://openipc.org/
[wiki]: https://openipc.github.io/wiki/
@@ -58,4 +59,4 @@ Thank you.
[chat]: https://openipc.org/our-channels
-[contribution]: https://opencollective.com/openipc/contribute/backer-14335/checkout
\ No newline at end of file
+[contribution]: https://opencollective.com/openipc/contribute/backer-14335/checkout
From d47ee04c6ed3a53c1eb73cac8303df9fc4cec9a1 Mon Sep 17 00:00:00 2001
From: "Igor Zalatov (from Citadel PC)"
Date: Sun, 17 Jul 2022 22:50:49 +0300
Subject: [PATCH 03/68] Add iptables to all ultimate profiles
---
.../board/gk7205v200/kernel/gk7202v300.generic.config | 2 +-
.../board/gk7205v200/kernel/gk7205v200.generic-fpv.config | 2 +-
.../board/gk7205v200/kernel/gk7205v200.generic.config | 2 +-
.../board/gk7205v200/kernel/gk7205v300.generic-fpv.config | 2 +-
.../board/gk7205v200/kernel/gk7205v300.generic.config | 2 +-
.../board/gk7205v200/kernel/gk7605v100.generic.config | 2 +-
.../configs/unknown_unknown_gk7205v200_ultimate_defconfig | 3 +++
.../configs/unknown_unknown_gk7205v300_ultimate_defconfig | 3 +++
.../configs/unknown_unknown_hi3516av100_ultimate_defconfig | 3 +++
.../configs/unknown_unknown_hi3516av200_ultimate_defconfig | 3 +++
.../configs/unknown_unknown_hi3516cv300_ultimate_defconfig | 3 +++
.../configs/unknown_unknown_hi3516ev200_ultimate_defconfig | 3 +++
.../configs/unknown_unknown_hi3516ev300_ultimate_defconfig | 3 +++
general/overlay/etc/network/interfaces | 4 ++--
14 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/br-ext-chip-goke/board/gk7205v200/kernel/gk7202v300.generic.config b/br-ext-chip-goke/board/gk7205v200/kernel/gk7202v300.generic.config
index 9923a6ee..609070f1 100644
--- a/br-ext-chip-goke/board/gk7205v200/kernel/gk7202v300.generic.config
+++ b/br-ext-chip-goke/board/gk7205v200/kernel/gk7202v300.generic.config
@@ -664,7 +664,7 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v200.generic-fpv.config b/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v200.generic-fpv.config
index 0d3a08ab..c9a8193f 100644
--- a/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v200.generic-fpv.config
+++ b/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v200.generic-fpv.config
@@ -664,7 +664,7 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v200.generic.config b/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v200.generic.config
index d7950713..38c7e4bf 100644
--- a/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v200.generic.config
+++ b/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v200.generic.config
@@ -664,7 +664,7 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v300.generic-fpv.config b/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v300.generic-fpv.config
index 27920b18..fe64a3c1 100644
--- a/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v300.generic-fpv.config
+++ b/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v300.generic-fpv.config
@@ -664,7 +664,7 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v300.generic.config b/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v300.generic.config
index d170d9cd..faf898b4 100644
--- a/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v300.generic.config
+++ b/br-ext-chip-goke/board/gk7205v200/kernel/gk7205v300.generic.config
@@ -664,7 +664,7 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-goke/board/gk7205v200/kernel/gk7605v100.generic.config b/br-ext-chip-goke/board/gk7205v200/kernel/gk7605v100.generic.config
index 42ed2886..f53f3847 100644
--- a/br-ext-chip-goke/board/gk7205v200/kernel/gk7605v100.generic.config
+++ b/br-ext-chip-goke/board/gk7205v200/kernel/gk7605v100.generic.config
@@ -664,7 +664,7 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-goke/configs/unknown_unknown_gk7205v200_ultimate_defconfig b/br-ext-chip-goke/configs/unknown_unknown_gk7205v200_ultimate_defconfig
index ef830134..65fe92a9 100644
--- a/br-ext-chip-goke/configs/unknown_unknown_gk7205v200_ultimate_defconfig
+++ b/br-ext-chip-goke/configs/unknown_unknown_gk7205v200_ultimate_defconfig
@@ -99,5 +99,8 @@ BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
+# IPTABLES
+BR2_PACKAGE_IPTABLES=y
+
# ZEROTIER
BR2_PACKAGE_ZEROTIER_ONE=y
diff --git a/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_ultimate_defconfig b/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_ultimate_defconfig
index b627d128..b9cc3e30 100644
--- a/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_ultimate_defconfig
+++ b/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_ultimate_defconfig
@@ -99,5 +99,8 @@ BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
+# IPTABLES
+BR2_PACKAGE_IPTABLES=y
+
# ZEROTIER
BR2_PACKAGE_ZEROTIER_ONE=y
diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av100_ultimate_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av100_ultimate_defconfig
index 212dfc87..6d221408 100644
--- a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av100_ultimate_defconfig
+++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av100_ultimate_defconfig
@@ -104,5 +104,8 @@ BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
+# IPTABLES
+BR2_PACKAGE_IPTABLES=y
+
# ZEROTIER
BR2_PACKAGE_ZEROTIER_ONE=y
diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av200_ultimate_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av200_ultimate_defconfig
index 0c6f871b..3fc7ef95 100644
--- a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av200_ultimate_defconfig
+++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516av200_ultimate_defconfig
@@ -105,5 +105,8 @@ BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
+# IPTABLES
+BR2_PACKAGE_IPTABLES=y
+
# ZEROTIER
BR2_PACKAGE_ZEROTIER_ONE=y
diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516cv300_ultimate_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516cv300_ultimate_defconfig
index 66b8941a..673687db 100644
--- a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516cv300_ultimate_defconfig
+++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516cv300_ultimate_defconfig
@@ -103,5 +103,8 @@ BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
+# IPTABLES
+BR2_PACKAGE_IPTABLES=y
+
# ZEROTIER
BR2_PACKAGE_ZEROTIER_ONE=y
diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev200_ultimate_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev200_ultimate_defconfig
index a0d0c323..0010683f 100644
--- a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev200_ultimate_defconfig
+++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev200_ultimate_defconfig
@@ -104,5 +104,8 @@ BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
+# IPTABLES
+BR2_PACKAGE_IPTABLES=y
+
# ZEROTIER
BR2_PACKAGE_ZEROTIER_ONE=y
diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_ultimate_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_ultimate_defconfig
index 95e2515d..1f1f1ea5 100644
--- a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_ultimate_defconfig
+++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_ultimate_defconfig
@@ -104,5 +104,8 @@ BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
BR2_PACKAGE_WIREGUARD_TOOLS=y
+# IPTABLES
+BR2_PACKAGE_IPTABLES=y
+
# ZEROTIER
BR2_PACKAGE_ZEROTIER_ONE=y
diff --git a/general/overlay/etc/network/interfaces b/general/overlay/etc/network/interfaces
index e4b42a56..4c64a5ca 100644
--- a/general/overlay/etc/network/interfaces
+++ b/general/overlay/etc/network/interfaces
@@ -22,7 +22,7 @@ iface wlan0 inet dhcp
pre-up modprobe mt7601u
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
- pre-up (sleep 3; wpa_supplicant -B -Dnl80211 -iwlan0 -c/tmp/wpa_supplicant.conf)
+ pre-up (sleep 3; wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf)
post-down killall -q wpa_supplicant
post-down echo 1 > /sys/class/gpio/gpio7/value
post-down echo 7 > /sys/class/gpio/unexport
@@ -32,7 +32,7 @@ iface eth2 inet dhcp
pre-up wifi xm711
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
- pre-up (sleep 3; wpa_supplicant -B -Dnl80211 -ieth2 -c/tmp/wpa_supplicant.conf)
+ pre-up (sleep 3; wpa_supplicant -B -D nl80211 -i eth2 -c/tmp/wpa_supplicant.conf)
post-down killall -q wpa_supplicant
manual usb0
From 9ad7beb1bb3632cc6ec5d8d8cb038001f10f3785 Mon Sep 17 00:00:00 2001
From: "Igor Zalatov (from Citadel PC)"
Date: Sun, 17 Jul 2022 22:54:12 +0300
Subject: [PATCH 04/68] Enabling the bridge in all kernels
---
br-ext-chip-ambarella/board/s3l/kernel/s3l.generic.config | 2 +-
.../board/ak3918ev200/kernel/ak3918ev200.generic.config | 2 +-
.../board/ak3918ev300/kernel/ak3916ev300.generic.config | 2 +-
.../board/ak3918ev300/kernel/ak3918ev300.generic.config | 2 +-
.../board/fh8833v100/kernel/fh8833v100.generic.config | 2 +-
.../board/fh8852v100/kernel/fh8852v100.generic.config | 2 +-
.../board/fh8852v100/kernel/fh8856v100.generic.config | 2 +-
.../board/fh8852v200/kernel/fh8852v200.generic.config | 2 +-
.../board/fh8852v200/kernel/fh8852v210.generic.config | 2 +-
.../board/fh8852v200/kernel/fh8856v200.generic.config | 2 +-
.../board/fh8852v200/kernel/fh8856v210.generic.config | 2 +-
.../board/fh8852v200/kernel/fh8858v200.generic.config | 2 +-
.../board/fh8852v200/kernel/fh8858v210.generic.config | 2 +-
br-ext-chip-goke/board/gk710x/kernel/gk710x.generic.config | 2 +-
br-ext-chip-goke/board/gk710x/kernel/gk710xs.generic.config | 2 +-
.../board/gm8136/kernel/gm8135.generic.config | 2 +-
.../board/gm8136/kernel/gm8136.generic.config | 2 +-
.../board/hi3516av100/kernel/hi3516av100.generic.config | 2 +-
.../board/hi3516av100/kernel/hi3516dv100.generic.config | 2 +-
.../board/hi3516cv100/kernel/hi3516cv100.generic.config | 2 +-
.../board/hi3516cv100/kernel/hi3518cv100.generic.config | 2 +-
.../board/hi3516cv100/kernel/hi3518ev100.generic.config | 2 +-
.../board/hi3516cv200/kernel/hi3516cv200.generic.config | 2 +-
.../board/hi3516cv200/kernel/hi3518ev200.generic.config | 2 +-
.../hi3516cv200/kernel/hi3518ev200.generic.config.no-himci | 2 +-
.../board/hi3516cv200/kernel/hi3518ev200.generic.config.orig | 2 +-
.../board/hi3516cv200/kernel/hi3518ev201.generic.config | 2 +-
.../board/hi3516cv300/kernel/hi3516cv300.generic.config | 2 +-
.../hi3516cv300/kernel/hi3516cv300.generic.config.20211122 | 2 +-
.../board/hi3516cv300/kernel/hi3516cv300.generic.config.cma | 2 +-
.../board/hi3516cv300/kernel/hi3516ev100.generic.config | 2 +-
.../board/hi3516cv500/kernel/hi3516av300.generic.config | 2 +-
.../board/hi3516cv500/kernel/hi3516cv500.generic.config | 2 +-
.../board/hi3516cv500/kernel/hi3516dv300.generic.config | 2 +-
.../board/hi3516ev200/kernel/hi3516dv200.generic.config | 2 +-
.../board/hi3516ev200/kernel/hi3516ev200.generic.config | 2 +-
.../board/hi3516ev200/kernel/hi3516ev300.generic-fpv.config | 2 +-
.../board/hi3516ev200/kernel/hi3516ev300.generic.config | 2 +-
.../board/hi3516ev200/kernel/hi3518ev300.generic.config | 2 +-
.../board/hi3519v101/kernel/hi3516av200.generic.config | 2 +-
.../board/hi3519v101/kernel/hi3519v101.generic.config | 2 +-
.../board/hi3536cv100/kernel/hi3536cv100.generic.config | 2 +-
.../hi3536cv100/kernel/hi3536cv100.generic.config.original | 2 +-
.../board/hi3536dv100/kernel/hi3536dv100.generic.config | 2 +-
.../hi3536dv100/kernel/hi3536dv100.generic.config.original | 2 +-
br-ext-chip-ingenic/board/t31/kernel/t10.generic.config | 2 +-
br-ext-chip-ingenic/board/t31/kernel/t20.generic.config | 2 +-
br-ext-chip-ingenic/board/t31/kernel/t21.generic.config | 2 +-
br-ext-chip-ingenic/board/t31/kernel/t30.generic.config | 2 +-
br-ext-chip-ingenic/board/t31/kernel/t31.generic.config | 2 +-
br-ext-chip-ingenic/board/t31/kernel/t31.generic.config.vixand | 2 +-
.../board/nt9856x/kernel/nt98562.generic.config.original | 2 +-
br-ext-chip-rockchip/board/rv11xx/kernel/rv1126.generic.config | 2 +-
.../board/infinity3/kernel/msc313e.generic.config | 2 +-
.../board/infinity3/kernel/msc316dc.generic.config | 2 +-
.../board/infinity3/kernel/msc316dm.generic.config | 2 +-
.../board/infinity6b0/kernel/ssc325.generic.config | 2 +-
.../board/infinity6b0/kernel/ssc333.generic.config | 2 +-
.../board/infinity6b0/kernel/ssc335.generic.config | 2 +-
.../infinity6b0/kernel/ssc335.generic.config.backup-20210603a | 2 +-
.../infinity6b0/kernel/ssc335.generic.config.china-20210920 | 2 +-
.../board/infinity6b0/kernel/ssc335.generic.config.rotek | 2 +-
.../infinity6b0/kernel/ssc335.generic.config.rotek-20210920 | 2 +-
.../infinity6b0/kernel/ssc335.generic.config.rotek-20211007 | 2 +-
.../board/infinity6b0/kernel/ssc335.generic.config.tiandy | 2 +-
.../board/infinity6b0/kernel/ssc335.initramfs.config.test00 | 2 +-
.../board/infinity6b0/kernel/ssc335.initramfs.config.test01 | 2 +-
.../board/infinity6b0/kernel/ssc335de.generic.config | 2 +-
.../board/infinity6b0/kernel/ssc335de.generic.config.kama | 2 +-
br-ext-chip-xiongmai/board/xm510/kernel/xm510.generic.config | 2 +-
.../board/xm510/kernel/xm510.generic.config.original | 2 +-
br-ext-chip-xiongmai/board/xm530/kernel/xm530.generic.config | 2 +-
.../board/xm530/kernel/xm530.generic.config.original | 2 +-
73 files changed, 73 insertions(+), 73 deletions(-)
diff --git a/br-ext-chip-ambarella/board/s3l/kernel/s3l.generic.config b/br-ext-chip-ambarella/board/s3l/kernel/s3l.generic.config
index b1d6f26a..eb884b66 100644
--- a/br-ext-chip-ambarella/board/s3l/kernel/s3l.generic.config
+++ b/br-ext-chip-ambarella/board/s3l/kernel/s3l.generic.config
@@ -649,7 +649,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-anyka/board/ak3918ev200/kernel/ak3918ev200.generic.config b/br-ext-chip-anyka/board/ak3918ev200/kernel/ak3918ev200.generic.config
index 0b6234c4..ade9e5e8 100644
--- a/br-ext-chip-anyka/board/ak3918ev200/kernel/ak3918ev200.generic.config
+++ b/br-ext-chip-anyka/board/ak3918ev200/kernel/ak3918ev200.generic.config
@@ -456,7 +456,7 @@ CONFIG_NET_ACTIVITY_STATS=y
# CONFIG_NETFILTER is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
diff --git a/br-ext-chip-anyka/board/ak3918ev300/kernel/ak3916ev300.generic.config b/br-ext-chip-anyka/board/ak3918ev300/kernel/ak3916ev300.generic.config
index 06d13206..24dfaa23 100644
--- a/br-ext-chip-anyka/board/ak3918ev300/kernel/ak3916ev300.generic.config
+++ b/br-ext-chip-anyka/board/ak3918ev300/kernel/ak3916ev300.generic.config
@@ -404,7 +404,7 @@ CONFIG_NET_ACTIVITY_STATS=y
# CONFIG_NETFILTER is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
diff --git a/br-ext-chip-anyka/board/ak3918ev300/kernel/ak3918ev300.generic.config b/br-ext-chip-anyka/board/ak3918ev300/kernel/ak3918ev300.generic.config
index ca40ef0b..5b7b5202 100644
--- a/br-ext-chip-anyka/board/ak3918ev300/kernel/ak3918ev300.generic.config
+++ b/br-ext-chip-anyka/board/ak3918ev300/kernel/ak3918ev300.generic.config
@@ -404,7 +404,7 @@ CONFIG_NET_ACTIVITY_STATS=y
# CONFIG_NETFILTER is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
diff --git a/br-ext-chip-fullhan/board/fh8833v100/kernel/fh8833v100.generic.config b/br-ext-chip-fullhan/board/fh8833v100/kernel/fh8833v100.generic.config
index 2d11c597..950c6f5d 100644
--- a/br-ext-chip-fullhan/board/fh8833v100/kernel/fh8833v100.generic.config
+++ b/br-ext-chip-fullhan/board/fh8833v100/kernel/fh8833v100.generic.config
@@ -455,7 +455,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-fullhan/board/fh8852v100/kernel/fh8852v100.generic.config b/br-ext-chip-fullhan/board/fh8852v100/kernel/fh8852v100.generic.config
index 223246a4..47ea293c 100644
--- a/br-ext-chip-fullhan/board/fh8852v100/kernel/fh8852v100.generic.config
+++ b/br-ext-chip-fullhan/board/fh8852v100/kernel/fh8852v100.generic.config
@@ -461,7 +461,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-fullhan/board/fh8852v100/kernel/fh8856v100.generic.config b/br-ext-chip-fullhan/board/fh8852v100/kernel/fh8856v100.generic.config
index 5b56e4ba..2d3cacb8 100644
--- a/br-ext-chip-fullhan/board/fh8852v100/kernel/fh8856v100.generic.config
+++ b/br-ext-chip-fullhan/board/fh8852v100/kernel/fh8856v100.generic.config
@@ -461,7 +461,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8852v200.generic.config b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8852v200.generic.config
index d4144d5d..066e79de 100644
--- a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8852v200.generic.config
+++ b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8852v200.generic.config
@@ -534,7 +534,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8852v210.generic.config b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8852v210.generic.config
index 4d25c44f..44631020 100644
--- a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8852v210.generic.config
+++ b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8852v210.generic.config
@@ -534,7 +534,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8856v200.generic.config b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8856v200.generic.config
index 4269226d..4c43eae8 100644
--- a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8856v200.generic.config
+++ b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8856v200.generic.config
@@ -534,7 +534,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8856v210.generic.config b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8856v210.generic.config
index 49b7816c..2a3e07a8 100644
--- a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8856v210.generic.config
+++ b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8856v210.generic.config
@@ -534,7 +534,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8858v200.generic.config b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8858v200.generic.config
index 456a30cb..d3988cbc 100644
--- a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8858v200.generic.config
+++ b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8858v200.generic.config
@@ -534,7 +534,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8858v210.generic.config b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8858v210.generic.config
index ef548a8e..089c3df6 100644
--- a/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8858v210.generic.config
+++ b/br-ext-chip-fullhan/board/fh8852v200/kernel/fh8858v210.generic.config
@@ -534,7 +534,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-goke/board/gk710x/kernel/gk710x.generic.config b/br-ext-chip-goke/board/gk710x/kernel/gk710x.generic.config
index 6e852168..b80e07d0 100644
--- a/br-ext-chip-goke/board/gk710x/kernel/gk710x.generic.config
+++ b/br-ext-chip-goke/board/gk710x/kernel/gk710x.generic.config
@@ -589,7 +589,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-goke/board/gk710x/kernel/gk710xs.generic.config b/br-ext-chip-goke/board/gk710x/kernel/gk710xs.generic.config
index 98b956f7..dbbf5525 100644
--- a/br-ext-chip-goke/board/gk710x/kernel/gk710xs.generic.config
+++ b/br-ext-chip-goke/board/gk710x/kernel/gk710xs.generic.config
@@ -590,7 +590,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-grainmedia/board/gm8136/kernel/gm8135.generic.config b/br-ext-chip-grainmedia/board/gm8136/kernel/gm8135.generic.config
index 1e11cd2a..8fcd375c 100644
--- a/br-ext-chip-grainmedia/board/gm8136/kernel/gm8135.generic.config
+++ b/br-ext-chip-grainmedia/board/gm8136/kernel/gm8135.generic.config
@@ -506,7 +506,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-grainmedia/board/gm8136/kernel/gm8136.generic.config b/br-ext-chip-grainmedia/board/gm8136/kernel/gm8136.generic.config
index 1e11cd2a..8fcd375c 100644
--- a/br-ext-chip-grainmedia/board/gm8136/kernel/gm8136.generic.config
+++ b/br-ext-chip-grainmedia/board/gm8136/kernel/gm8136.generic.config
@@ -506,7 +506,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516av100.generic.config b/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516av100.generic.config
index f081ae00..5422f96a 100644
--- a/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516av100.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516av100.generic.config
@@ -700,7 +700,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516dv100.generic.config b/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516dv100.generic.config
index 15bc8de1..8a6d8c12 100644
--- a/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516dv100.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516av100/kernel/hi3516dv100.generic.config
@@ -700,7 +700,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3516cv100.generic.config b/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3516cv100.generic.config
index 354ba315..df39012f 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3516cv100.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3516cv100.generic.config
@@ -502,7 +502,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3518cv100.generic.config b/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3518cv100.generic.config
index 354ba315..df39012f 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3518cv100.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3518cv100.generic.config
@@ -502,7 +502,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3518ev100.generic.config b/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3518ev100.generic.config
index 354ba315..df39012f 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3518ev100.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv100/kernel/hi3518ev100.generic.config
@@ -502,7 +502,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3516cv200.generic.config b/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3516cv200.generic.config
index 73ffaee3..6e0fc17a 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3516cv200.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3516cv200.generic.config
@@ -602,7 +602,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config b/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config
index d0e87577..ef2882a2 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config
@@ -602,7 +602,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config.no-himci b/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config.no-himci
index 73f09fd1..8f4cf9dc 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config.no-himci
+++ b/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config.no-himci
@@ -602,7 +602,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config.orig b/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config.orig
index f3a76125..07aef045 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config.orig
+++ b/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev200.generic.config.orig
@@ -644,7 +644,7 @@ CONFIG_NETFILTER_INGRESS=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev201.generic.config b/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev201.generic.config
index 2f20e670..ac47c9e4 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev201.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv200/kernel/hi3518ev201.generic.config
@@ -644,7 +644,7 @@ CONFIG_NETFILTER_INGRESS=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config b/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config
index 32f41631..f9c3a13b 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config
@@ -598,7 +598,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config.20211122 b/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config.20211122
index 23ecfb79..f4d729e3 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config.20211122
+++ b/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config.20211122
@@ -598,7 +598,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config.cma b/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config.cma
index 7bf13889..68ebd3b2 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config.cma
+++ b/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516cv300.generic.config.cma
@@ -600,7 +600,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516ev100.generic.config b/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516ev100.generic.config
index 67a3557d..b125508b 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516ev100.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv300/kernel/hi3516ev100.generic.config
@@ -598,7 +598,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516av300.generic.config b/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516av300.generic.config
index 88856258..4f80e7a7 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516av300.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516av300.generic.config
@@ -686,7 +686,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516cv500.generic.config b/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516cv500.generic.config
index e199883b..c92ab2ca 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516cv500.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516cv500.generic.config
@@ -686,7 +686,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516dv300.generic.config b/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516dv300.generic.config
index 88856258..4f80e7a7 100644
--- a/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516dv300.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516cv500/kernel/hi3516dv300.generic.config
@@ -686,7 +686,7 @@ CONFIG_IPV6_FOU=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516dv200.generic.config b/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516dv200.generic.config
index 2dc1ccc1..b145a227 100644
--- a/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516dv200.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516dv200.generic.config
@@ -680,7 +680,7 @@ CONFIG_IPV6_SIT=n
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev200.generic.config b/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev200.generic.config
index ad13396d..14a5e592 100644
--- a/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev200.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev200.generic.config
@@ -680,7 +680,7 @@ CONFIG_IPV6_SIT=n
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev300.generic-fpv.config b/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev300.generic-fpv.config
index faf2f88b..03053b2e 100644
--- a/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev300.generic-fpv.config
+++ b/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev300.generic-fpv.config
@@ -680,7 +680,7 @@ CONFIG_IPV6_SIT=n
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev300.generic.config b/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev300.generic.config
index 4ef409e6..33cf89f5 100644
--- a/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev300.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3516ev300.generic.config
@@ -680,7 +680,7 @@ CONFIG_IPV6_SIT=n
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3518ev300.generic.config b/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3518ev300.generic.config
index f1b0dbe6..52614fd1 100644
--- a/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3518ev300.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3516ev200/kernel/hi3518ev300.generic.config
@@ -680,7 +680,7 @@ CONFIG_IPV6_SIT=n
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3519v101/kernel/hi3516av200.generic.config b/br-ext-chip-hisilicon/board/hi3519v101/kernel/hi3516av200.generic.config
index 1ea1c372..2544c598 100644
--- a/br-ext-chip-hisilicon/board/hi3519v101/kernel/hi3516av200.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3519v101/kernel/hi3516av200.generic.config
@@ -703,7 +703,7 @@ CONFIG_NET_ACTIVITY_STATS=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3519v101/kernel/hi3519v101.generic.config b/br-ext-chip-hisilicon/board/hi3519v101/kernel/hi3519v101.generic.config
index 13125eeb..0e35f0d6 100644
--- a/br-ext-chip-hisilicon/board/hi3519v101/kernel/hi3519v101.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3519v101/kernel/hi3519v101.generic.config
@@ -703,7 +703,7 @@ CONFIG_NET_ACTIVITY_STATS=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3536cv100/kernel/hi3536cv100.generic.config b/br-ext-chip-hisilicon/board/hi3536cv100/kernel/hi3536cv100.generic.config
index d39916bc..aced64ef 100644
--- a/br-ext-chip-hisilicon/board/hi3536cv100/kernel/hi3536cv100.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3536cv100/kernel/hi3536cv100.generic.config
@@ -653,7 +653,7 @@ CONFIG_NET_ACTIVITY_STATS=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3536cv100/kernel/hi3536cv100.generic.config.original b/br-ext-chip-hisilicon/board/hi3536cv100/kernel/hi3536cv100.generic.config.original
index 9f8b73a6..179f31ec 100644
--- a/br-ext-chip-hisilicon/board/hi3536cv100/kernel/hi3536cv100.generic.config.original
+++ b/br-ext-chip-hisilicon/board/hi3536cv100/kernel/hi3536cv100.generic.config.original
@@ -707,7 +707,7 @@ CONFIG_NETFILTER_ADVANCED=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3536dv100/kernel/hi3536dv100.generic.config b/br-ext-chip-hisilicon/board/hi3536dv100/kernel/hi3536dv100.generic.config
index e570156c..c1d5c753 100644
--- a/br-ext-chip-hisilicon/board/hi3536dv100/kernel/hi3536dv100.generic.config
+++ b/br-ext-chip-hisilicon/board/hi3536dv100/kernel/hi3536dv100.generic.config
@@ -676,7 +676,7 @@ CONFIG_IPV6_FOU=m
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-hisilicon/board/hi3536dv100/kernel/hi3536dv100.generic.config.original b/br-ext-chip-hisilicon/board/hi3536dv100/kernel/hi3536dv100.generic.config.original
index 5f6901ee..9d2adb12 100644
--- a/br-ext-chip-hisilicon/board/hi3536dv100/kernel/hi3536dv100.generic.config.original
+++ b/br-ext-chip-hisilicon/board/hi3536dv100/kernel/hi3536dv100.generic.config.original
@@ -668,7 +668,7 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-ingenic/board/t31/kernel/t10.generic.config b/br-ext-chip-ingenic/board/t31/kernel/t10.generic.config
index ce21dfde..738bc07d 100644
--- a/br-ext-chip-ingenic/board/t31/kernel/t10.generic.config
+++ b/br-ext-chip-ingenic/board/t31/kernel/t10.generic.config
@@ -489,7 +489,7 @@ CONFIG_NETWORK_PHY_TIMESTAMPING=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-ingenic/board/t31/kernel/t20.generic.config b/br-ext-chip-ingenic/board/t31/kernel/t20.generic.config
index e3fadd86..ecf2e092 100644
--- a/br-ext-chip-ingenic/board/t31/kernel/t20.generic.config
+++ b/br-ext-chip-ingenic/board/t31/kernel/t20.generic.config
@@ -492,7 +492,7 @@ CONFIG_NETWORK_PHY_TIMESTAMPING=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-ingenic/board/t31/kernel/t21.generic.config b/br-ext-chip-ingenic/board/t31/kernel/t21.generic.config
index 2763bf57..46a5a4fd 100644
--- a/br-ext-chip-ingenic/board/t31/kernel/t21.generic.config
+++ b/br-ext-chip-ingenic/board/t31/kernel/t21.generic.config
@@ -491,7 +491,7 @@ CONFIG_NETWORK_PHY_TIMESTAMPING=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-ingenic/board/t31/kernel/t30.generic.config b/br-ext-chip-ingenic/board/t31/kernel/t30.generic.config
index c032f003..b6692d55 100644
--- a/br-ext-chip-ingenic/board/t31/kernel/t30.generic.config
+++ b/br-ext-chip-ingenic/board/t31/kernel/t30.generic.config
@@ -490,7 +490,7 @@ CONFIG_NETWORK_PHY_TIMESTAMPING=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-ingenic/board/t31/kernel/t31.generic.config b/br-ext-chip-ingenic/board/t31/kernel/t31.generic.config
index 2c79b4bc..93c53b92 100644
--- a/br-ext-chip-ingenic/board/t31/kernel/t31.generic.config
+++ b/br-ext-chip-ingenic/board/t31/kernel/t31.generic.config
@@ -492,7 +492,7 @@ CONFIG_NETWORK_PHY_TIMESTAMPING=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-ingenic/board/t31/kernel/t31.generic.config.vixand b/br-ext-chip-ingenic/board/t31/kernel/t31.generic.config.vixand
index a94c92ae..10611a65 100644
--- a/br-ext-chip-ingenic/board/t31/kernel/t31.generic.config.vixand
+++ b/br-ext-chip-ingenic/board/t31/kernel/t31.generic.config.vixand
@@ -492,7 +492,7 @@ CONFIG_NETWORK_PHY_TIMESTAMPING=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-novatek/board/nt9856x/kernel/nt98562.generic.config.original b/br-ext-chip-novatek/board/nt9856x/kernel/nt98562.generic.config.original
index ae652504..36c78732 100644
--- a/br-ext-chip-novatek/board/nt9856x/kernel/nt98562.generic.config.original
+++ b/br-ext-chip-novatek/board/nt9856x/kernel/nt98562.generic.config.original
@@ -580,7 +580,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-rockchip/board/rv11xx/kernel/rv1126.generic.config b/br-ext-chip-rockchip/board/rv11xx/kernel/rv1126.generic.config
index 8fdb8282..396bcd7a 100644
--- a/br-ext-chip-rockchip/board/rv11xx/kernel/rv1126.generic.config
+++ b/br-ext-chip-rockchip/board/rv11xx/kernel/rv1126.generic.config
@@ -806,7 +806,7 @@ CONFIG_NET_PTP_CLASSIFY=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity3/kernel/msc313e.generic.config b/br-ext-chip-sigmastar/board/infinity3/kernel/msc313e.generic.config
index 87310204..4b1616b0 100644
--- a/br-ext-chip-sigmastar/board/infinity3/kernel/msc313e.generic.config
+++ b/br-ext-chip-sigmastar/board/infinity3/kernel/msc313e.generic.config
@@ -620,7 +620,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-sigmastar/board/infinity3/kernel/msc316dc.generic.config b/br-ext-chip-sigmastar/board/infinity3/kernel/msc316dc.generic.config
index 44e780b0..b0db0216 100644
--- a/br-ext-chip-sigmastar/board/infinity3/kernel/msc316dc.generic.config
+++ b/br-ext-chip-sigmastar/board/infinity3/kernel/msc316dc.generic.config
@@ -620,7 +620,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-sigmastar/board/infinity3/kernel/msc316dm.generic.config b/br-ext-chip-sigmastar/board/infinity3/kernel/msc316dm.generic.config
index 169dc2b5..e65d9d7d 100644
--- a/br-ext-chip-sigmastar/board/infinity3/kernel/msc316dm.generic.config
+++ b/br-ext-chip-sigmastar/board/infinity3/kernel/msc316dm.generic.config
@@ -620,7 +620,7 @@ CONFIG_IPV6=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc325.generic.config b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc325.generic.config
index 9ac9038c..c74ae717 100644
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc325.generic.config
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc325.generic.config
@@ -677,7 +677,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc333.generic.config b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc333.generic.config
index d4c555d9..bb6bafa5 100644
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc333.generic.config
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc333.generic.config
@@ -677,7 +677,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config
index 9caf563e..363abbfc 100755
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config
@@ -677,7 +677,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.backup-20210603a b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.backup-20210603a
index fec7a514..9bf66fd8 100644
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.backup-20210603a
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.backup-20210603a
@@ -668,7 +668,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.china-20210920 b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.china-20210920
index 025845cf..00a31687 100644
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.china-20210920
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.china-20210920
@@ -661,7 +661,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek
index 35d5caff..5c865637 100644
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek
@@ -678,7 +678,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek-20210920 b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek-20210920
index 86884f97..2bf4f9b9 100644
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek-20210920
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek-20210920
@@ -669,7 +669,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek-20211007 b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek-20211007
index eb7ae36c..901d59a7 100644
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek-20211007
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.rotek-20211007
@@ -678,7 +678,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.tiandy b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.tiandy
index 69fd6a90..bd2c66b8 100755
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.tiandy
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.generic.config.tiandy
@@ -677,7 +677,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test00 b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test00
index 63eacecb..a370d2ef 100644
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test00
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test00
@@ -673,7 +673,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test01 b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test01
index 67d2eea0..68f6191a 100644
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test01
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335.initramfs.config.test01
@@ -640,7 +640,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335de.generic.config b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335de.generic.config
index a7146213..75e49c82 100755
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335de.generic.config
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335de.generic.config
@@ -677,7 +677,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335de.generic.config.kama b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335de.generic.config.kama
index dd339a08..6584ac1e 100644
--- a/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335de.generic.config.kama
+++ b/br-ext-chip-sigmastar/board/infinity6b0/kernel/ssc335de.generic.config.kama
@@ -677,7 +677,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
diff --git a/br-ext-chip-xiongmai/board/xm510/kernel/xm510.generic.config b/br-ext-chip-xiongmai/board/xm510/kernel/xm510.generic.config
index 4a04fc3a..2408867b 100644
--- a/br-ext-chip-xiongmai/board/xm510/kernel/xm510.generic.config
+++ b/br-ext-chip-xiongmai/board/xm510/kernel/xm510.generic.config
@@ -429,7 +429,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_NETFILTER is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
diff --git a/br-ext-chip-xiongmai/board/xm510/kernel/xm510.generic.config.original b/br-ext-chip-xiongmai/board/xm510/kernel/xm510.generic.config.original
index b7552ddb..40a904d2 100644
--- a/br-ext-chip-xiongmai/board/xm510/kernel/xm510.generic.config.original
+++ b/br-ext-chip-xiongmai/board/xm510/kernel/xm510.generic.config.original
@@ -428,7 +428,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_NETFILTER is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
diff --git a/br-ext-chip-xiongmai/board/xm530/kernel/xm530.generic.config b/br-ext-chip-xiongmai/board/xm530/kernel/xm530.generic.config
index 94aa0192..b5134ad5 100644
--- a/br-ext-chip-xiongmai/board/xm530/kernel/xm530.generic.config
+++ b/br-ext-chip-xiongmai/board/xm530/kernel/xm530.generic.config
@@ -545,7 +545,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
diff --git a/br-ext-chip-xiongmai/board/xm530/kernel/xm530.generic.config.original b/br-ext-chip-xiongmai/board/xm530/kernel/xm530.generic.config.original
index e73de2c6..ce876389 100644
--- a/br-ext-chip-xiongmai/board/xm530/kernel/xm530.generic.config.original
+++ b/br-ext-chip-xiongmai/board/xm530/kernel/xm530.generic.config.original
@@ -540,7 +540,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
+CONFIG_BRIDGE=y
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
From b1f30274548ee5e466b7f71b2119b1ed631bb085 Mon Sep 17 00:00:00 2001
From: "Igor Zalatov (from Citadel PC)"
Date: Sun, 17 Jul 2022 23:17:27 +0300
Subject: [PATCH 05/68] [HI3518EV200] add ultimate profile
---
...own_unknown_hi3518ev200_ultimate_defconfig | 111 ++++++++++++++++++
building.sh | 8 +-
2 files changed, 117 insertions(+), 2 deletions(-)
create mode 100644 br-ext-chip-hisilicon/configs/unknown_unknown_hi3518ev200_ultimate_defconfig
diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3518ev200_ultimate_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3518ev200_ultimate_defconfig
new file mode 100644
index 00000000..25c09579
--- /dev/null
+++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3518ev200_ultimate_defconfig
@@ -0,0 +1,111 @@
+# Architecture
+BR2_arm=y
+BR2_arm926t=y
+BR2_ARM_EABI=y
+# BR2_ARM_INSTRUCTIONS_THUMB is not set
+BR2_KERNEL_HEADERS_VERSION=y
+BR2_DEFAULT_KERNEL_VERSION="4.9.37"
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y
+
+# Toolchain
+BR2_PER_PACKAGE_DIRECTORIES=y
+BR2_GCC_VERSION_7_X=y
+# BR2_TOOLCHAIN_USES_UCLIBC is not set
+# BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set
+# BR2_TOOLCHAIN_BUILDROOT_LIBC="uclibc"
+BR2_TOOLCHAIN_USES_MUSL=y
+BR2_TOOLCHAIN_BUILDROOT_MUSL=y
+BR2_TOOLCHAIN_BUILDROOT_LIBC="musl"
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
+BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
+BR2_TOOLCHAIN_BUILDROOT_USE_SSP=y
+
+# Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.9.37"
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HISILICON_PATH)/board/hi3516cv200/kernel/hi3518ev200.generic.config"
+BR2_LINUX_KERNEL_UIMAGE=y
+BR2_LINUX_KERNEL_XZ=y
+BR2_LINUX_KERNEL_EXT_HISI_PATCHER=y
+BR2_LINUX_KERNEL_EXT_HISI_PATCHER_LIST="$(BR2_EXTERNAL_HISILICON_PATH)/board/hi3516cv200/kernel/patches/ $(BR2_EXTERNAL_HISILICON_PATH)/board/hi3516cv200/kernel/overlay"
+
+# Filesystem
+# BR2_TARGET_TZ_INFO is not set
+BR2_TARGET_ROOTFS_CPIO=y
+BR2_TARGET_ROOTFS_SQUASHFS=y
+BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
+BR2_TARGET_ROOTFS_UBI=y
+BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048
+BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG=y
+BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE="$(TOPDIR)/../scripts/ubinize.cfg"
+BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000
+BR2_ROOTFS_OVERLAY="$(TOPDIR)/../general/overlay"
+BR2_ROOTFS_POST_BUILD_SCRIPT="$(TOPDIR)/../scripts/executing_commands_for_$(BR2_TOOLCHAIN_BUILDROOT_LIBC).sh"
+
+# OpenIPC configuration
+BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc"
+BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC v2.2"
+BR2_TARGET_GENERIC_HOSTNAME="openipc-hi3518ev200"
+BR2_GLOBAL_PATCH_DIR="$(TOPDIR)/../general/package/all-patches"
+
+# OpenIPC packages
+BR2_PACKAGE_BUSYBOX_CONFIG="$(TOPDIR)/../general/package/busybox/busybox.config"
+BR2_PACKAGE_DROPBEAR_OPENIPC=y
+# BR2_PACKAGE_FDK_AAC_OPENIPC is not set
+BR2_PACKAGE_FWPRINTENV_OPENIPC=y
+BR2_PACKAGE_HASERL=y
+BR2_PACKAGE_HISI_GPIO is not set
+BR2_PACKAGE_HISILICON_OSDRV_HI3516CV200=y
+BR2_PACKAGE_IPCTOOL=y
+BR2_PACKAGE_JSON_C=y
+BR2_PACKAGE_LAME_OPENIPC=y
+BR2_PACKAGE_LIBCURL_OPENIPC=y
+BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
+# BR2_PACKAGE_LIBCURL_OPENIPC_VERBOSE is not set
+# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set
+# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set
+# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set
+BR2_PACKAGE_LIBCURL_OPENIPC_MBEDTLS=y
+BR2_PACKAGE_LIBEVENT_OPENIPC=y
+BR2_PACKAGE_LIBEVENT_OPENIPC_REMOVE_PYSCRIPT=y
+BR2_PACKAGE_LIBOGG_OPENIPC=y
+BR2_PACKAGE_LIBWEBSOCKETS_OPENIPC=y
+BR2_PACKAGE_LIBYAML=y
+BR2_PACKAGE_MAJESTIC_FONTS=y
+BR2_PACKAGE_MAJESTIC_HI3516CV200=y
+BR2_PACKAGE_MBEDTLS_OPENIPC=y
+# BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set
+# BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set
+BR2_PACKAGE_MICROBE_WEB=y
+# BR2_PACKAGE_MINI_SNMPD is not set
+BR2_PACKAGE_MOTORS=y
+BR2_PACKAGE_OPUS_OPENIPC=y
+BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
+# BR2_PACKAGE_SSHPASS is not set
+BR2_PACKAGE_UACME_OPENIPC=y
+BR2_PACKAGE_VTUND_OPENIPC=y
+BR2_PACKAGE_YAML_CLI=y
+
+# WiFi
+BR2_PACKAGE_WIRELESS_TOOLS=y
+BR2_PACKAGE_WPA_SUPPLICANT=y
+BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
+BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
+BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
+BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC=y
+BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y
+BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_RTL8188EU=y
+# BR2_PACKAGE_RTL8188EU is not set
+# BR2_PACKAGE_RTL8188FU_OPENIPC is not set
+
+# WIREGUARD
+BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
+BR2_PACKAGE_WIREGUARD_TOOLS=y
+
+# IPTABLES
+BR2_PACKAGE_IPTABLES=y
+
+# ZEROTIER
+BR2_PACKAGE_ZEROTIER_ONE=y
diff --git a/building.sh b/building.sh
index 885e5052..2db6c3f5 100755
--- a/building.sh
+++ b/building.sh
@@ -271,11 +271,14 @@ hi3518ev200_hs303() {
soc="hi3518ev200"
fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename && autoup_rootfs
#PLATFORM=hisilicon make br-linux-{dirclean,rebuild}
- #PLATFORM=hisilicon make br-hisilicon-osdrv-hi3516cv300-{dirclean,rebuild}
- #PLATFORM=hisilicon make br-majestic-hi3516cv300-{dirclean,rebuild}
#PLATFORM=hisilicon make br-mbedtls-openipc-{dirclean,rebuild}
}
+hi3518ev200_ultimate() {
+ soc="hi3518ev200"
+ fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename
+}
+
#################################################################################
hi3516cv300() {
@@ -663,6 +666,7 @@ xm550() {
# hi3518ev200 # testing..
# hi3518ev200_domsip # DomSip
# hi3518ev200_hs303 # OpenIPC
+# hi3518ev200_ultimate # OpenIPC
#
# hi3516av100 # OpenIPC
# hi3516av100_ultimate # OpenIPC_ultimate version
From bb442e8e2265a9d50384dec9dd23f66098f61536 Mon Sep 17 00:00:00 2001
From: "Igor Zalatov (from Citadel PC)"
Date: Sun, 17 Jul 2022 23:41:23 +0300
Subject: [PATCH 06/68] [HI3518EV200] fix ultimate profile
---
.../configs/unknown_unknown_hi3518ev200_ultimate_defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3518ev200_ultimate_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3518ev200_ultimate_defconfig
index 25c09579..d220acfd 100644
--- a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3518ev200_ultimate_defconfig
+++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3518ev200_ultimate_defconfig
@@ -75,6 +75,7 @@ BR2_PACKAGE_LIBWEBSOCKETS_OPENIPC=y
BR2_PACKAGE_LIBYAML=y
BR2_PACKAGE_MAJESTIC_FONTS=y
BR2_PACKAGE_MAJESTIC_HI3516CV200=y
+BR2_PACKAGE_MAJESTIC_ULTIMATE=y
BR2_PACKAGE_MBEDTLS_OPENIPC=y
# BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set
# BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set
From 4219cd2d43bb4a2a8de0366154b7ba8d4ecee7f9 Mon Sep 17 00:00:00 2001
From: Dmitry Ermakov
Date: Mon, 18 Jul 2022 19:55:30 +0300
Subject: [PATCH 07/68] Add JXF23 to init script for Hi3516CV200
---
.../hisilicon-osdrv-hi3516cv200/files/script/load_hisilicon | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/general/package/hisilicon-osdrv-hi3516cv200/files/script/load_hisilicon b/general/package/hisilicon-osdrv-hi3516cv200/files/script/load_hisilicon
index 788d559e..6553e6d1 100755
--- a/general/package/hisilicon-osdrv-hi3516cv200/files/script/load_hisilicon
+++ b/general/package/hisilicon-osdrv-hi3516cv200/files/script/load_hisilicon
@@ -89,7 +89,7 @@ insert_isp() {
insert_sns() {
case $SENSOR in
- 9m034 | jxf22 | ov2718 | ov9732 | ov9750 | ov9752 | jxh62 | sc1235 | sc2235)
+ 9m034 | jxf22 | jxf23 | ov2718 | ov9732 | ov9750 | ov9752 | jxh62 | sc1235 | sc2235)
devmem 0x200f0040 32 0x2 # I2C0_SCL
devmem 0x200f0044 32 0x2 # I2C0_SDA
From 48e5d4cac36143cbb58f527644f9ad00836bb8ad Mon Sep 17 00:00:00 2001
From: cronyx
Date: Tue, 19 Jul 2022 23:10:41 +0300
Subject: [PATCH 08/68] rewrite config read, added guard_interval and ldpc
---
general/package/wifibroadcast/files/S98wfb | 26 ++++++--------------
general/package/wifibroadcast/files/wfb.conf | 4 ++-
2 files changed, 11 insertions(+), 19 deletions(-)
diff --git a/general/package/wifibroadcast/files/S98wfb b/general/package/wifibroadcast/files/S98wfb
index 22f963e9..a3a3b8aa 100755
--- a/general/package/wifibroadcast/files/S98wfb
+++ b/general/package/wifibroadcast/files/S98wfb
@@ -3,19 +3,9 @@
# Start wifibroadcast
#
-config="/etc/wfb.conf"
-keydir="/etc"
+. /etc/wfb.conf
-wlan=`cat ${config} | grep wlan | cut -f 2 -d '='`
-region=`cat ${config} | grep region | cut -f 2 -d '='`
-channel=`cat ${config} | grep channel | cut -f 2 -d '='`
-bandwidth=`cat ${config} | grep bandwidth | cut -f 2 -d '='`
-stbc=`cat ${config} | grep stbc | cut -f 2 -d '='`
-mcs_index=`cat ${config} | grep mcs_index | cut -f 2 -d '='`
-udp_port=`cat ${config} | grep udp_port | cut -f 2 -d '='`
-radio_port=`cat ${config} | grep radio_port | cut -f 2 -d '='`
-rs_k=`cat ${config} | grep rs_k | cut -f 2 -d '='`
-rs_n=`cat ${config} | grep rs_n | cut -f 2 -d '='`
+keydir="/etc"
load_rtl() {
modprobe cfg80211
@@ -31,10 +21,10 @@ load_ath() {
load_interface() {
- if cat ${config} | grep "rtl" > /dev/null 2>&1; then
+ if [ ${driver} = "rtl" ]; then
ifconfig ${wlan} up
iwconfig ${wlan} mode monitor
- elif cat ${config} | grep "ath" > /dev/null 2>&1; then
+ elif [ ${driver} = "ath" ]; then
iwconfig ${wlan} mode monitor
ifconfig ${wlan} up
fi
@@ -44,20 +34,20 @@ load_interface() {
}
start_wfb() {
- wfb_tx -p ${radio_port} -u ${udp_port} -K ${keydir}/drone.key -B ${bandwidth} -M ${mcs_index} -S ${stbc} -k ${rs_k} -n ${rs_n} ${wlan} &
+ wfb_tx -p ${radio_port} -u ${udp_port} -K ${keydir}/drone.key -B ${bandwidth} -M ${mcs_index} -S ${stbc} -L ${ldpc} -G ${guard_interval} -k ${rs_k} -n ${rs_n} ${wlan} &
}
case "$1" in
start)
- if grep -q daemon=1 ${config}; then
+ if [ ${daemon} -eq 1 ]; then
echo "Loading modules for selected driver..."
- if cat ${config} | grep "rtl"; then
+ if [ ${driver} = "rtl" ]; then
if ! lsmod | grep "88XXau"; then
load_rtl
fi
- elif cat ${config} | grep "ath"; then
+ elif ${driver} = "ath" ]; then
if ! lsmod | grep "ath9k_htc"; then
load_ath
fi
diff --git a/general/package/wifibroadcast/files/wfb.conf b/general/package/wifibroadcast/files/wfb.conf
index b4ac0c38..c0194902 100644
--- a/general/package/wifibroadcast/files/wfb.conf
+++ b/general/package/wifibroadcast/files/wfb.conf
@@ -4,9 +4,11 @@ wlan=wlan0
region=BO
channel=14
bandwidth=20
-stbc=1
+stbc=0
+ldpc=0
mcs_index=1
radio_port=3
udp_port=5600
rs_k=8
rs_n=12
+guard_interval=long
From 432b25d78eb91aa74a55395d4be5d4aefbdb6215 Mon Sep 17 00:00:00 2001
From: "Igor Zalatov (from Citadel PC)"
Date: Wed, 20 Jul 2022 00:09:50 +0300
Subject: [PATCH 09/68] [SSC335DE] Add profile
---
.github/workflows/ssc335de_images.yml | 139 ++++++++++++++++++++++++++
1 file changed, 139 insertions(+)
create mode 100644 .github/workflows/ssc335de_images.yml
diff --git a/.github/workflows/ssc335de_images.yml b/.github/workflows/ssc335de_images.yml
new file mode 100644
index 00000000..1f32110e
--- /dev/null
+++ b/.github/workflows/ssc335de_images.yml
@@ -0,0 +1,139 @@
+name: "SSC335DE "
+
+on:
+ push:
+ branches:
+ - production
+ tags:
+ - "v*"
+ schedule:
+ - cron: "00 01 * * *"
+ workflow_dispatch:
+
+jobs:
+ build_core:
+ name: OpenIPC firmware for SSC335DE
+ runs-on: ubuntu-18.04
+
+ steps:
+
+ - name: Checkout
+ id: checkout
+ uses: actions/checkout@v2
+
+ - name: Install build dependencies
+ id: install
+ run: |
+ make install-deps
+ mkdir -p tmp
+
+ - name: Free disk space
+ id: freshing
+ run: |
+ sudo swapoff -a
+ sudo rm -f /swapfile
+ sudo apt clean
+ docker rmi $(docker image ls -aq)
+ df -h
+
+ - name: Prepare buildroot
+ id: prepare
+ run: |
+ HEAD_TAG=$(git tag --points-at HEAD)
+ GIT_HASH=$(git rev-parse --short $GITHUB_SHA)
+ BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3)
+ if [ -z "$HEAD_TAG" ]; then
+ TAG_NAME="latest"
+ RELEASE_NAME="Development Build"
+ PRERELEASE=true
+ else
+ TAG_NAME=${{ github.ref }}
+ RELEASE_NAME="Release ${{ github.ref }}"
+ PRERELEASE=false
+ fi
+ echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
+ echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV
+ echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
+ echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
+ echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
+ cd $GITHUB_WORKSPACE
+ make prepare
+
+ - name: Build SSC335DE firmware
+ id: build-ssc335de-firmware
+ continue-on-error: true
+ run: |
+ ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.ssc335de-br.tgz"
+ echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV
+ cd $GITHUB_WORKSPACE
+ make PLATFORM=sigmastar BOARD=unknown_unknown_ssc335de_openipc all
+ [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... SSC335DE" >> $GITHUB_ENV && exit 1
+ [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... SSC335DE" >> $GITHUB_ENV && exit 1
+ cd ${GITHUB_WORKSPACE}/output/images
+ mv uImage uImage.ssc335de
+ mv rootfs.squashfs rootfs.squashfs.ssc335de
+ md5sum rootfs.squashfs.ssc335de > rootfs.squashfs.ssc335de.md5sum
+ md5sum uImage.ssc335de > uImage.ssc335de.md5sum
+ tar -cvzf $ARCHIVE_FW *ssc335de*
+
+ - name: Build SSC335DE SDK
+ id: build-ssc335de-sdk
+ continue-on-error: true
+ run: |
+ ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabihf_sdk-buildroot.tar.gz"
+ echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV
+ cd $GITHUB_WORKSPACE/output
+ make sdk
+
+ - name: Send warning message to telegram channel
+ env:
+ TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
+ TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
+ if: steps.build-ssc335de-firmware.outcome != 'success' || steps.build-ssc335de-sdk.outcome != 'success'
+ run: |
+ TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
+ TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... SSC335DE}"
+ TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions")
+ curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \
+ -F chat_id=$TG_CHANNEL -F text="$TG_HEADER"
+
+ - name: Create release
+ uses: actions/create-release@v1
+ continue-on-error: true
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ env.TAG_NAME }}
+ release_name: ${{ env.RELEASE_NAME }}
+ draft: false
+ prerelease: ${{ env.PRERELEASE }}
+
+ - name: Upload FW to release
+ uses: svenstaro/upload-release-action@v2
+ continue-on-error: true
+ with:
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ file: ${{ env.ARCHIVE_FW }}
+ asset_name: "openipc.ssc335de-br.tgz"
+ tag: ${{ env.TAG_NAME }}
+ overwrite: true
+
+ - name: Upload SDK to release
+ uses: svenstaro/upload-release-action@v2
+ continue-on-error: true
+ with:
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ file: ${{ env.ARCHIVE_SDK }}
+ asset_name: "arm-openipc-ssc335de-linux-musleabihf_sdk-buildroot.tar.gz"
+ tag: ${{ env.TAG_NAME }}
+ overwrite: true
+
+ - name: Send binary file to telegram channel
+ env:
+ TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }}
+ TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }}
+ run: |
+ TG_OPTIONS="-s --connect-timeout 30 --max-time 30"
+ TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions")
+ curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \
+ -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER"
From 721cb2bbfc15a8f487aab2098c3bd4fc493b6b9b Mon Sep 17 00:00:00 2001
From: "Igor Zalatov (from Citadel PC)"
Date: Wed, 20 Jul 2022 00:10:52 +0300
Subject: [PATCH 10/68] [HI351Xxv100] Temporary suspension of scheduled work
---
.github/workflows/hi3516cv100_images.yml | 4 ++--
.github/workflows/hi3518cv100_images.yml | 4 ++--
.github/workflows/hi3518ev100_images.yml | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/hi3516cv100_images.yml b/.github/workflows/hi3516cv100_images.yml
index 51a4b7f4..8f1b484c 100644
--- a/.github/workflows/hi3516cv100_images.yml
+++ b/.github/workflows/hi3516cv100_images.yml
@@ -6,8 +6,8 @@ on:
- production
tags:
- "v*"
- schedule:
- - cron: "00 03 * * *"
+# schedule:
+# - cron: "00 03 * * *"
workflow_dispatch:
jobs:
diff --git a/.github/workflows/hi3518cv100_images.yml b/.github/workflows/hi3518cv100_images.yml
index a0e617bb..f2b8e1bf 100644
--- a/.github/workflows/hi3518cv100_images.yml
+++ b/.github/workflows/hi3518cv100_images.yml
@@ -6,8 +6,8 @@ on:
- production
tags:
- "v*"
- schedule:
- - cron: "00 03 * * *"
+# schedule:
+# - cron: "00 03 * * *"
workflow_dispatch:
jobs:
diff --git a/.github/workflows/hi3518ev100_images.yml b/.github/workflows/hi3518ev100_images.yml
index 6a49e73b..ca0c09e3 100644
--- a/.github/workflows/hi3518ev100_images.yml
+++ b/.github/workflows/hi3518ev100_images.yml
@@ -6,8 +6,8 @@ on:
- production
tags:
- "v*"
- schedule:
- - cron: "00 03 * * *"
+# schedule:
+# - cron: "00 03 * * *"
workflow_dispatch:
jobs:
From 09e7cd7cfe5698a7dfab117755e0b97f820dbdb2 Mon Sep 17 00:00:00 2001
From: "Igor Zalatov (from Citadel PC)"
Date: Wed, 20 Jul 2022 17:35:15 +0300
Subject: [PATCH 11/68] [HI3516CV100] Add sc2135 sensor
---
.../hisilicon-osdrv-hi3516cv100/files/script/load_hisilicon | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/general/package/hisilicon-osdrv-hi3516cv100/files/script/load_hisilicon b/general/package/hisilicon-osdrv-hi3516cv100/files/script/load_hisilicon
index b827b968..1bb552e5 100755
--- a/general/package/hisilicon-osdrv-hi3516cv100/files/script/load_hisilicon
+++ b/general/package/hisilicon-osdrv-hi3516cv100/files/script/load_hisilicon
@@ -116,6 +116,10 @@ insert_sns() {
imx236)
devmem 0x20030030 32 0x6 #Sensor clock 37.125 MHz
;;
+ sc2135)
+ devmem 0x20030030 32 0x5 #Sensor clock 27 MHz
+ insmod ssp_ad9020.ko
+ ;;
*)
echo "xxxx Invalid sensor type $SENSOR xxxx"
report_error
From bd975ce87c21d59b0518e51fff1b7c823f53684e Mon Sep 17 00:00:00 2001
From: "Igor Zalatov (from Citadel PC)"
Date: Wed, 20 Jul 2022 19:05:05 +0300
Subject: [PATCH 12/68] Add example send2ftp to crontab
---
general/overlay/etc/crontabs/root | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/general/overlay/etc/crontabs/root b/general/overlay/etc/crontabs/root
index 3d186151..56a1fd41 100644
--- a/general/overlay/etc/crontabs/root
+++ b/general/overlay/etc/crontabs/root
@@ -11,5 +11,9 @@
#
#*/30 * * * * /usr/bin/logger -p cron.info -t crond WTF ?
#
+#*/30 * * * * /usr/sbin/send2ftp.sh
+#
+#*/30 * * * * /usr/sbin/send2telegram.sh
+#
#*/30 * * * * /usr/sbin/send2telegram.sh -10028718 3651038111:ACHzXLtPAUiKi3715S1
#
From e6875a14aae94d6f8238bfeeedf1b0d32497f414 Mon Sep 17 00:00:00 2001
From: "Igor Zalatov (from Citadel PC)"
Date: Thu, 21 Jul 2022 09:51:57 +0300
Subject: [PATCH 13/68] Add alias for yaml-cli
---
general/overlay/etc/profile | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/general/overlay/etc/profile b/general/overlay/etc/profile
index 5e7f614b..c7b4e944 100644
--- a/general/overlay/etc/profile
+++ b/general/overlay/etc/profile
@@ -19,8 +19,12 @@ fi
export EDITOR='/bin/vi'
+
+
[ -x /usr/bin/arp ] || arp() { cat /proc/net/arp; }
+cli() { yaml-cli -i /etc/majestic.yaml $@ }
+
#[ -x /tmp/ipctool ] || ipctool() { [ -x /tmp/ipctool ] && /tmp/ipctool $@ || (curl -s -L -o /tmp/ipctool https://github.com/OpenIPC/ipctool/releases/download/latest/ipctool-$(uname -m) && \
[ -x /tmp/ipctool ] || ipctool() { [ -x /tmp/ipctool ] && /tmp/ipctool $@ || (curl -s -L -o /tmp/ipctool https://github.com/OpenIPC/ipctool/releases/download/latest/ipctool && \
chmod +x /tmp/ipctool && echo -e "\n\e[1;35mThe ipctool installed as remote GitHub plugin\e[0m\n" && /tmp/ipctool $@); }
From 6a15fb9e15b65e72b8b3a73f7331ba1db8cc7607 Mon Sep 17 00:00:00 2001
From: cronyx
Date: Thu, 21 Jul 2022 19:31:26 +0300
Subject: [PATCH 14/68] added prebuild mavlink-router (#269)
* added prebuild mavlink-router
* added telemetry scripts
* update
Co-authored-by: cronyx
---
br-ext-chip-goke/Config.in | 1 +
.../unknown_unknown_gk7205v200_fpv_defconfig | 1 +
.../unknown_unknown_gk7205v300_fpv_defconfig | 1 +
br-ext-chip-goke/external.mk | 1 +
br-ext-chip-goke/package/mavlink-router | 1 +
br-ext-chip-hisilicon/Config.in | 1 +
.../unknown_unknown_hi3516ev300_fpv_defconfig | 1 +
br-ext-chip-hisilicon/external.mk | 1 +
br-ext-chip-hisilicon/package/mavlink-router | 1 +
general/package/mavlink-router/Config.in | 6 +++
.../package/mavlink-router/files/S97mavlink | 18 +++++++++
.../mavlink-router/files/mavlink-routerd | Bin 0 -> 280656 bytes
.../package/mavlink-router/files/mavlink.conf | 11 +++++
.../package/mavlink-router/mavlink-router.mk | 20 +++++++++
general/package/mavlink-router/readme.md | 7 ++++
general/package/wifibroadcast/files/S98wfb | 15 ++++---
general/package/wifibroadcast/files/telemetry | 38 ++++++++++++++++++
.../wifibroadcast/files/telemetry.conf | 14 +++++++
general/package/wifibroadcast/files/wfb.conf | 12 +++---
general/package/wifibroadcast/readme.md | 6 ++-
.../package/wifibroadcast/wifibroadcast.mk | 7 ++++
21 files changed, 151 insertions(+), 12 deletions(-)
create mode 120000 br-ext-chip-goke/package/mavlink-router
create mode 120000 br-ext-chip-hisilicon/package/mavlink-router
create mode 100644 general/package/mavlink-router/Config.in
create mode 100755 general/package/mavlink-router/files/S97mavlink
create mode 100755 general/package/mavlink-router/files/mavlink-routerd
create mode 100644 general/package/mavlink-router/files/mavlink.conf
create mode 100644 general/package/mavlink-router/mavlink-router.mk
create mode 100644 general/package/mavlink-router/readme.md
create mode 100755 general/package/wifibroadcast/files/telemetry
create mode 100644 general/package/wifibroadcast/files/telemetry.conf
diff --git a/br-ext-chip-goke/Config.in b/br-ext-chip-goke/Config.in
index 0ca9b61a..06d9ef06 100644
--- a/br-ext-chip-goke/Config.in
+++ b/br-ext-chip-goke/Config.in
@@ -21,6 +21,7 @@ source "$BR2_EXTERNAL_GOKE_PATH/package/libwebsockets-openipc/Config.in"
source "$BR2_EXTERNAL_GOKE_PATH/package/linux-firmware-openipc/Config.in"
source "$BR2_EXTERNAL_GOKE_PATH/package/majestic-fonts/Config.in"
source "$BR2_EXTERNAL_GOKE_PATH/package/majestic-gk7205v200/Config.in"
+source "$BR2_EXTERNAL_GOKE_PATH/package/mavlink-router/Config.in"
source "$BR2_EXTERNAL_GOKE_PATH/package/mbedtls-openipc/Config.in"
source "$BR2_EXTERNAL_GOKE_PATH/package/microbe-web/Config.in"
source "$BR2_EXTERNAL_GOKE_PATH/package/motors/Config.in"
diff --git a/br-ext-chip-goke/configs/unknown_unknown_gk7205v200_fpv_defconfig b/br-ext-chip-goke/configs/unknown_unknown_gk7205v200_fpv_defconfig
index e530b5f7..380a1498 100644
--- a/br-ext-chip-goke/configs/unknown_unknown_gk7205v200_fpv_defconfig
+++ b/br-ext-chip-goke/configs/unknown_unknown_gk7205v200_fpv_defconfig
@@ -104,3 +104,4 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
# FPV
BR2_PACKAGE_WIFIBROADCAST=y
+BR2_PACKAGE_MAVLINK_ROUTER=y
diff --git a/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_fpv_defconfig b/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_fpv_defconfig
index e68f0d28..bd3db177 100644
--- a/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_fpv_defconfig
+++ b/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_fpv_defconfig
@@ -104,3 +104,4 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
# FPV
BR2_PACKAGE_WIFIBROADCAST=y
+BR2_PACKAGE_MAVLINK_ROUTER=y
diff --git a/br-ext-chip-goke/external.mk b/br-ext-chip-goke/external.mk
index 719e9bc1..b03bce6a 100644
--- a/br-ext-chip-goke/external.mk
+++ b/br-ext-chip-goke/external.mk
@@ -21,6 +21,7 @@ include $(BR2_EXTERNAL_GOKE_PATH)/package/libwebsockets-openipc/libwebsockets-op
include $(BR2_EXTERNAL_GOKE_PATH)/package/linux-firmware-openipc/linux-firmware-openipc.mk
include $(BR2_EXTERNAL_GOKE_PATH)/package/majestic-fonts/majestic-fonts.mk
include $(BR2_EXTERNAL_GOKE_PATH)/package/majestic-gk7205v200/majestic-gk7205v200.mk
+include $(BR2_EXTERNAL_GOKE_PATH)/package/mavlink-router/mavlink-router.mk
include $(BR2_EXTERNAL_GOKE_PATH)/package/mbedtls-openipc/mbedtls-openipc.mk
include $(BR2_EXTERNAL_GOKE_PATH)/package/microbe-web/microbe-web.mk
include $(BR2_EXTERNAL_GOKE_PATH)/package/motors/motors.mk
diff --git a/br-ext-chip-goke/package/mavlink-router b/br-ext-chip-goke/package/mavlink-router
new file mode 120000
index 00000000..e2c255be
--- /dev/null
+++ b/br-ext-chip-goke/package/mavlink-router
@@ -0,0 +1 @@
+../../general/package/mavlink-router
\ No newline at end of file
diff --git a/br-ext-chip-hisilicon/Config.in b/br-ext-chip-hisilicon/Config.in
index 401f1c3c..e55a383c 100644
--- a/br-ext-chip-hisilicon/Config.in
+++ b/br-ext-chip-hisilicon/Config.in
@@ -36,6 +36,7 @@ source "$BR2_EXTERNAL_HISILICON_PATH/package/majestic-hi3516cv300/Config.in"
source "$BR2_EXTERNAL_HISILICON_PATH/package/majestic-hi3516cv500/Config.in"
source "$BR2_EXTERNAL_HISILICON_PATH/package/majestic-hi3516ev300/Config.in"
source "$BR2_EXTERNAL_HISILICON_PATH/package/majestic-hi3519v101/Config.in"
+source "$BR2_EXTERNAL_HISILICON_PATH/package/mavlink-router/Config.in"
source "$BR2_EXTERNAL_HISILICON_PATH/package/mbedtls-openipc/Config.in"
source "$BR2_EXTERNAL_HISILICON_PATH/package/microbe-web/Config.in"
source "$BR2_EXTERNAL_HISILICON_PATH/package/motors/Config.in"
diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_fpv_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_fpv_defconfig
index 621d9aa4..f2f22291 100644
--- a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_fpv_defconfig
+++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_fpv_defconfig
@@ -104,3 +104,4 @@ BR2_PACKAGE_RTL8812AU_OPENIPC=y
# FPV
BR2_PACKAGE_WIFIBROADCAST=y
+BR2_PACKAGE_MAVLINK_ROUTER=y
diff --git a/br-ext-chip-hisilicon/external.mk b/br-ext-chip-hisilicon/external.mk
index f6bdc543..aea8d415 100644
--- a/br-ext-chip-hisilicon/external.mk
+++ b/br-ext-chip-hisilicon/external.mk
@@ -36,6 +36,7 @@ include $(BR2_EXTERNAL_HISILICON_PATH)/package/majestic-hi3516cv300/majestic-hi3
include $(BR2_EXTERNAL_HISILICON_PATH)/package/majestic-hi3516cv500/majestic-hi3516cv500.mk
include $(BR2_EXTERNAL_HISILICON_PATH)/package/majestic-hi3516ev300/majestic-hi3516ev300.mk
include $(BR2_EXTERNAL_HISILICON_PATH)/package/majestic-hi3519v101/majestic-hi3519v101.mk
+include $(BR2_EXTERNAL_HISILICON_PATH)/package/mavlink-router/mavlink-router.mk
include $(BR2_EXTERNAL_HISILICON_PATH)/package/mbedtls-openipc/mbedtls-openipc.mk
include $(BR2_EXTERNAL_HISILICON_PATH)/package/microbe-web/microbe-web.mk
include $(BR2_EXTERNAL_HISILICON_PATH)/package/motors/motors.mk
diff --git a/br-ext-chip-hisilicon/package/mavlink-router b/br-ext-chip-hisilicon/package/mavlink-router
new file mode 120000
index 00000000..e2c255be
--- /dev/null
+++ b/br-ext-chip-hisilicon/package/mavlink-router
@@ -0,0 +1 @@
+../../general/package/mavlink-router
\ No newline at end of file
diff --git a/general/package/mavlink-router/Config.in b/general/package/mavlink-router/Config.in
new file mode 100644
index 00000000..666743fd
--- /dev/null
+++ b/general/package/mavlink-router/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_MAVLINK_ROUTER
+ bool "mavlink-router"
+ help
+ MAVLink Router is an application to distribute MAVLink messages between multiple endpoints (connections). It distributes packets to a single port or multiple endpoints depending on the target address. Connections can be made via UART, UDP or TCP.
+
+ https://github.com/mavlink-router/mavlink-router
diff --git a/general/package/mavlink-router/files/S97mavlink b/general/package/mavlink-router/files/S97mavlink
new file mode 100755
index 00000000..0cc86434
--- /dev/null
+++ b/general/package/mavlink-router/files/S97mavlink
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# Start MAVlink Router
+#
+
+case "$1" in
+ start)
+ echo "Starting mavlink router daemon..."
+ /usr/bin/mavlink-routerd &
+ ;;
+ stop)
+ echo "Stopping mavlink router daemon..."
+ kill -9 $(pidof mavlink-routerd)
+ ;;
+ *)
+ echo "Usage: $0 {start|stop}"
+ exit 1
+esac
diff --git a/general/package/mavlink-router/files/mavlink-routerd b/general/package/mavlink-router/files/mavlink-routerd
new file mode 100755
index 0000000000000000000000000000000000000000..e1874891e9e8c0b7d4af2211af00a6225361288f
GIT binary patch
literal 280656
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
vg{u)TL^&Qw
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