Compare commits

...

12 Commits

Author SHA1 Message Date
David Bauer
0d2f834d31
Merge pull request #2285 from blocktrron/pr-v2021.1.1
docs: add Gluon v2021.1.1 release notes
2021-08-14 19:16:14 +02:00
David Bauer
a7331b5933
ath79-generic: add support for Joy-IT JT-OR750i (#2284) 2021-08-05 02:07:30 +02:00
David Bauer
aa173868ff README, docs: Gluon v2021.1.1 2021-08-01 17:20:47 +02:00
David Bauer
d7f9e17f3c docs: Add v2021.1.1 release notes
Signed-off-by: David Bauer <mail@david-bauer.net>
2021-08-01 17:19:18 +02:00
David Bauer
cb7cec9214 modules: update Gluon packages
825aa0c respondd-module-airtime: fix null pointer deref

(cherry picked from commit 19381a235e)
2021-07-06 00:02:50 +02:00
Matthias Schiffer
7a395c1763 modules: update Gluon packages
64148a9baf14 lua-jsonc: add host build support
c2623391bf42 lua-jsonc: do not link against liblua

(cherry picked from commit 8a41d8d72d)
2021-07-06 00:02:38 +02:00
David Bauer
26483fae09 modules: update routing feed URL
The OpenWrt routing feed was moved to the OpenWrt GitHub org.

Update the URL, as the old one might not work in the future.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 3f8d12f55c)
2021-07-01 03:10:22 +02:00
Dark4MD
78bdd3b565 ramips-mt76x8: add Xiaomi Mi Router 4A (100M Edition)
(cherry picked from commit 0b00ed9193)
2021-06-22 12:07:00 +02:00
David Bauer
46191c30b8 gluon-mesh-vpn-core: fix two more missing NULL checks
read_stdout can return NULL and thus the return value need to be checked
prior to accessing it.

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 344f8a47db)
2021-06-21 15:34:04 +02:00
David Bauer
bb1932c927 gluon-mesh-vpn-core: avoid reading null pointer
In case the limit_ingress or limit_egress options are not present in
gluon's mesh_vpn section the respondd provider compares a string literal
with a NULL pointer, crashing respondd.

Check both pointers prior to comparing them in order to mitigate this
issue.

Suggested-by: Matthias Schiffer <mschiffer@universe-factory.net>
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 7e1e9fe2bd)
2021-06-21 15:33:56 +02:00
Matthias Schiffer
a50834f849 gluon-mesh-vpn-tunneldigger: fix Lua mesh-vpn provider module location
(cherry picked from commit f7e473edfa)
2021-06-21 15:33:44 +02:00
Martin Weinelt
0f9a6334a0 docs: expand on multicast improvements in v2021.1
I mixed up two separate improvements into one, this change aims to
clarify them based on a suggestion and conversation with @T-X.

(cherry picked from commit 05199e7e33)
2021-06-11 00:10:04 +02:00
17 changed files with 372 additions and 11 deletions

View File

@ -21,7 +21,7 @@ the future development of Gluon.
Please refrain from using the `master` branch for anything else but development purposes!
Use the most recent release instead. You can list all releases by running `git tag`
and switch to one by running `git checkout v2021.1 && make update`.
and switch to one by running `git checkout v2021.1.1 && make update`.
If you're using the autoupdater, do not autoupdate nodes with anything but releases.
If you upgrade using random master commits the nodes *will break* eventually.

View File

@ -24,7 +24,7 @@ copyright = '2015-2021, Project Gluon'
author = 'Project Gluon'
# The short X.Y version
version = '2021.1'
version = '2021.1.1'
# The full version, including alpha/beta/rc tags
release = version

View File

@ -78,6 +78,7 @@ Several Freifunk communities in Germany use Gluon as the foundation of their Fre
:caption: Releases
:maxdepth: 1
releases/v2021.1.1
releases/v2021.1
releases/v2020.2.3
releases/v2020.2.2

View File

@ -0,0 +1,63 @@
Gluon 2021.1.1
==============
Important notes
---------------
Upgrades to v2021.1 and later releases are only supported from releases v2018.2 and later. This is due to migrations that have been removed to simplify maintenance.
Added hardware support
----------------------
ath79-generic
~~~~~~~~~~~~~
* Joy-IT
- JT-OR750i
ramips-mt76x8
~~~~~~~~~~~~~
* Xiaomi
- Mi Router 4A (100M Edition)
Bugfixes
--------
- Missing bandwith limit settings resulted in a respondd crash for v2021.1.
- The Tunneldigger VPN provider was not registered with the Gluon VPN backend, resulting in broken Tunneldigger configurations.
- Disabling Radio interfaces in v2021.1 could lead to nullpointer dereferences in the respondd airtime module, as the survey returns no data in this case.
Known issues
------------
* Upgrading EdgeRouter-X from versions before v2020.1.x may lead to a soft-bricked state due to bad blocks on the NAND flash which the NAND driver before this release does not handle well.
(`#1937 <https://github.com/freifunk-gluon/gluon/issues/1937>`_)
* The integration of the BATMAN_V routing algorithm is incomplete.
- Mesh neighbors don't appear on the status page. (`#1726 <https://github.com/freifunk-gluon/gluon/issues/1726>`_)
Many tools have the BATMAN_IV metric hardcoded, these need to be updated to account for the new throughput
metric.
- Throughput values are not correctly acquired for different interface types.
(`#1728 <https://github.com/freifunk-gluon/gluon/issues/1728>`_)
This affects virtual interface types like bridges and VXLAN.
* Default TX power on many Ubiquiti devices is too high, correct offsets are unknown
(`#94 <https://github.com/freifunk-gluon/gluon/issues/94>`_)
Reducing the TX power in the Advanced Settings is recommended.
* In configurations without VXLAN, the MAC address of the WAN interface is modified even when Mesh-on-WAN is disabled
(`#496 <https://github.com/freifunk-gluon/gluon/issues/496>`_)
This may lead to issues in environments where a fixed MAC address is expected (like VMware when promiscuous mode is disallowed).

View File

@ -57,8 +57,9 @@ Major changes
Multicast optimizations (batman-adv)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In this release, we reenable the multicast optimizations, that have gone through another round of bug squashing upstream. This reduces layer 2 overhead, especially for IPv6 neighbor discovery, because multicast traffic will be converted to unicast traffic when the number of subscribers does not exceed 16. This is beneficial as we would previously drop multicast traffic that wasn't explicitly allowed but now can allow multicast traffic if it wouldn't result in broadcast.
In this release, we reenable the multicast optimizations, that have gone through another round of bug squashing upstream. With this feature batman-adv will distribute IPv6 link-local multicast packets via individual unicast packets instead of flooding them through the whole mesh as long as the number of subscribed nodes does not exceed 16. This reduces layer 2 overhead, especially for IPv6 Neighbor Discovery.
We also relaxed the firewall for IPv6 multicast packets: Instead of always dropping non-essential multicast packets we now allow all IPv6 link-local multicast packets to pass when the destination group has up to 16 subscribers
Status page
~~~~~~~~~~~

View File

@ -1,4 +1,4 @@
-- This is an example site configuration for Gluon v2021.1
-- This is an example site configuration for Gluon v2021.1.1
--
-- Take a look at the documentation located at
-- https://gluon.readthedocs.io/ for details.

View File

@ -8,7 +8,7 @@ Gluon's releases are managed using `Git tags`_. If you are just getting
started with Gluon we recommend to use the latest stable release of Gluon.
Take a look at the `list of gluon releases`_ and notice the latest release,
e.g. *v2021.1*. Always get Gluon using git and don't try to download it
e.g. *v2021.1.1*. Always get Gluon using git and don't try to download it
as a Zip archive as the archive will be missing version information.
Please keep in mind that there is no "default Gluon" build; a site configuration
@ -44,7 +44,7 @@ Building the images
-------------------
To build Gluon, first check out the repository. Replace *RELEASE* with the
version you'd like to checkout, e.g. *v2021.1*.
version you'd like to checkout, e.g. *v2021.1.1*.
::

View File

@ -405,6 +405,10 @@ ramips-mt76x8
- VoCore2
* Xiaomi
- Xiaomi Mi Router 4A (100M Edition)
ramips-rt305x [#deprecated]_ [#device-class-tiny]_
---------------------------------------------------

View File

@ -8,9 +8,9 @@ PACKAGES_PACKAGES_REPO=https://github.com/openwrt/packages.git
PACKAGES_PACKAGES_BRANCH=openwrt-19.07
PACKAGES_PACKAGES_COMMIT=476b8b82bb7447a1ed847c96d85de567e09cdb62
PACKAGES_ROUTING_REPO=https://github.com/openwrt-routing/packages.git
PACKAGES_ROUTING_REPO=https://github.com/openwrt/routing.git
PACKAGES_ROUTING_BRANCH=openwrt-19.07
PACKAGES_ROUTING_COMMIT=101632e153b41238bc19dfd96ba2d23339dbcb76
PACKAGES_GLUON_REPO=https://github.com/freifunk-gluon/packages.git
PACKAGES_GLUON_COMMIT=8d53ff54e562ddb2ed8397781dd78edc76f6ff38
PACKAGES_GLUON_COMMIT=825aa0c093d6c0b4f81a95cd2320331a5b5adae6

View File

@ -130,6 +130,9 @@ local primary_addrs = {
'tplink,c2-v1',
'ex3700'
}},
{'ramips', 'mt76x8', {
'xiaomi,mir4a-100m',
}},
{'x86'},
}},
{interface('wan'), {

View File

@ -60,11 +60,11 @@ static struct json_object * get_bandwidth_limit(void) {
enabled = true;
const char *egress_str = uci_lookup_option_string(ctx, s, "limit_egress");
if (strcmp(egress_str, "-"))
if (egress_str && strcmp(egress_str, "-"))
egress = atoi(egress_str);
const char *ingress_str = uci_lookup_option_string(ctx, s, "limit_ingress");
if (strcmp(ingress_str, "-"))
if (ingress_str && strcmp(ingress_str, "-"))
ingress = atoi(ingress_str);
if (egress >= 0)
@ -110,6 +110,9 @@ static struct json_object * get_mesh_vpn_enabled() {
int enabled = -1;
char *line = read_stdout("exec lua -e 'print(require(\"gluon.mesh-vpn\").enabled())'");
if (!line)
return NULL;
if (!strcmp(line, "true"))
enabled = 1;
if (!strcmp(line, "false"))
@ -126,7 +129,7 @@ static struct json_object * get_mesh_vpn_enabled() {
static struct json_object * get_active_vpn_provider() {
char *line = read_stdout("exec lua -e 'name, _ = require(\"gluon.mesh-vpn\").get_active_provider(); print(name)'");
if (!strcmp(line, "nil")) {
if (line && !strcmp(line, "nil")) {
free(line);
return NULL;
}

View File

@ -0,0 +1,220 @@
From: Vincent Wiemann <vincent.wiemann@ironai.com>
Date: Sun, 20 Jun 2021 16:56:21 +0200
Subject: ath79: add support for Joy-IT JT-OR750i
Specifications:
* QCA9531, 16 MiB flash (Winbond W25Q128JVSQ), 128 MiB RAM
* 802.11n 2T2R (external antennas)
* QCA9887, 802.11ac 1T1R (connected with diplexer to one of the antennas)
* 3x 10/100 LAN, 1x 10/100 WAN
* UART header with pinout printed on PCB
Installation:
* The device comes with a bootloader installed only
* The bootloader offers DHCP and is reachable at http://10.123.123.1
* Accept the agreement and flash sysupgrade.bin
* Use Firefox if flashing does not work
TFTP recovery with static IP:
* Rename sysupgrade.bin to jt-or750i_firmware.bin
* Offer it via TFTP server at 192.168.0.66
* Keep the reset button pressed for 4 seconds after connecting power
TFTP recovery with dynamic IP:
* Rename sysupgrade.bin to jt-or750i_firmware.bin
* Offer it via TFTP server with a DHCP server running at the same address
* Keep the reset button pressed for 6 seconds after connecting power
Co-authored-by: Sebastian Schaper <openwrt@sebastianschaper.net>
Signed-off-by: Vincent Wiemann <vincent.wiemann@ironai.com>
(cherry picked from commit 55b4b3655263984b92e4b9fc515a5e6b8003c655)
diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds
index dd0f91affa3cd9a731343a816bc666e0bbd44e99..ba8dcd430304a284296861b9e0694be42c68fe44 100755
--- a/target/linux/ath79/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/base-files/etc/board.d/01_leds
@@ -84,6 +84,9 @@ glinet,gl-ar300m-lite)
glinet,gl-x750)
ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1"
;;
+joyit,jt-or750i)
+ ucidef_set_led_default "ath10k" "ath10k-disable" "ath10k-phy0" "0"
+ ;;
netgear,wnr612-v2|\
on,n150r)
ucidef_set_led_netdev "wan" "WAN" "netgear:green:wan" "eth0"
diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network
index 57429fbc1c851b6d8a8a03096d7043f78a489549..fba5d68eafff37bcedeb734a4d524cfb338d00fa 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -171,6 +171,11 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
;;
+ joyit,jt-or750i)
+ ucidef_set_interface_wan "eth1"
+ ucidef_add_switch "switch0" \
+ "0@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
+ ;;
librerouter,librerouter-v1)
ucidef_add_switch "switch0" \
"0@eth0" "5:wan" "6@eth1" "4:lan"
diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index c917f38211d0b246f064dba4b7feefecf61f5856..39205de2ec2ecd4d67a560dccfad36aab7a0aa0b 100644
--- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -100,7 +100,8 @@ case "$FIRMWARE" in
ath10kcal_extract "art" 20480 2116
ath10kcal_patch_mac $(mtd_get_mac_ascii devdata "wlan5mac")
;;
- elecom,wrc-1750ghbk2-i)
+ elecom,wrc-1750ghbk2-i|\
+ joyit,jt-or750i)
ath10kcal_extract "art" 20480 2116
;;
engenius,ecb1750)
diff --git a/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts b/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts
new file mode 100644
index 0000000000000000000000000000000000000000..8a4d4c682380b26aa2437b26391273ddc7bf2d75
--- /dev/null
+++ b/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts
@@ -0,0 +1,120 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "qca953x.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "joyit,jt-or750i", "qca,qca9531";
+ model = "Joy-IT JT-OR750i";
+
+ aliases {
+ led-boot = &led_status_green;
+ led-failsafe = &led_status_red;
+ led-running = &led_status_green;
+ led-upgrade = &led_status_red;
+ label-mac-device = &eth0;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_status_green: status_green {
+ label = "green:status";
+ gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+
+ led_status_red: status_red {
+ label = "red:status";
+ gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&pinmux {
+ pinmux_led_eth_pins: pinmux_led_eth_pins {
+ pinctrl-single,bits = \
+ /* GPIO 4: LED_LINK_5 (WAN) */ \
+ <0x04 0x0000002d 0x000000ff>, \
+ /* GPIO 14: LED_LINK_2 (LAN 3) */ \
+ /* GPIO 15: LED_LINK_3 (LAN 2) */ \
+ <0x0c 0x2b2c0000 0xffff0000>, \
+ /* GPIO 16: LED_LINK_4 (LAN 1) */ \
+ <0x10 0x0000002a 0x000000ff>;
+ };
+};
+
+&spi {
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x40000>;
+ read-only;
+ };
+
+ partition@40000 {
+ label = "u-boot-env";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0xfa0000>;
+ compatible = "denx,uimage";
+ };
+
+ art: partition@ff0000 {
+ label = "art";
+ reg = <0xff0000 0x10000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&eth0 {
+ status = "okay";
+
+ phy-handle = <&swphy4>;
+
+ mtd-mac-address = <&art 0x0>;
+};
+
+&eth1 {
+ mtd-mac-address = <&art 0x6>;
+};
+
+&pcie0 {
+ status = "okay";
+};
+
+&wmac {
+ status = "okay";
+
+ mtd-cal-data = <&art 0x1000>;
+};
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 7159f9c6d2dabf0a80b4a107790471da32af97bc..080be91fe1351b45a68057de71e5cd1464773f11 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -484,6 +484,14 @@ define Device/jjplus_ja76pf2
endef
TARGET_DEVICES += jjplus_ja76pf2
+define Device/joyit_jt-or750i
+ ATH_SOC := qca9531
+ DEVICE_TITLE := Joy-IT JT-OR750i
+ DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9887-ct
+ IMAGE_SIZE := 16000k
+endef
+TARGET_DEVICES += joyit_jt-or750i
+
define Device/librerouter_librerouter-v1
ATH_SOC := qca9558
DEVICE_TITLE := LibreRouter v1

View File

@ -0,0 +1,24 @@
From: David Bauer <mail@david-bauer.net>
Date: Wed, 28 Jul 2021 13:52:22 +0200
Subject: ath79: enable missing pinmux for JT-OR750i
Without explicit configuration of these pins the ethernet as well as
status LED of the device do not work correctly.
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 4feb9a4211d4c8e118e6b8f01fa0bbd4eab5d35c)
diff --git a/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts b/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts
index 8a4d4c682380b26aa2437b26391273ddc7bf2d75..d87daddd771325a8788b59edf2159c3be7bedf07 100644
--- a/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts
+++ b/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts
@@ -31,6 +31,9 @@
leds {
compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&jtag_disable_pins &pinmux_led_eth_pins>;
+
led_status_green: status_green {
label = "green:status";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;

View File

@ -0,0 +1,26 @@
From: David Bauer <mail@david-bauer.net>
Date: Wed, 28 Jul 2021 14:17:13 +0200
Subject: ath79: fix JT-OR750i switch LED assignment
The LEDs for LAN1 and LAN3 were swapped. Link on port 1 would illuminate
the LED on port 3 and vice versa.
Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit f0a885ed8636b9762d12f2eb2755f63297ff0cb5)
diff --git a/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts b/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts
index d87daddd771325a8788b59edf2159c3be7bedf07..60fa922878355ebdaf7d2983fe926efdf8b97207 100644
--- a/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts
+++ b/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts
@@ -54,9 +54,9 @@
<0x04 0x0000002d 0x000000ff>, \
/* GPIO 14: LED_LINK_2 (LAN 3) */ \
/* GPIO 15: LED_LINK_3 (LAN 2) */ \
- <0x0c 0x2b2c0000 0xffff0000>, \
+ <0x0c 0x2b2a0000 0xffff0000>, \
/* GPIO 16: LED_LINK_4 (LAN 1) */ \
- <0x10 0x0000002a 0x000000ff>;
+ <0x10 0x0000002c 0x000000ff>;
};
};

View File

@ -65,6 +65,15 @@ device('gl.inet-gl-ar750s-nor', 'glinet_gl-ar750s', {
packages = ATH10K_PACKAGES_QCA9887,
})
-- JOY-IT
device('joy-it-jt-or750i', 'joyit_jt-or750i', {
packages = ATH10K_PACKAGES_QCA9887,
factory = false,
})
-- OCEDO
device('ocedo-raccoon', 'ocedo_raccoon', {

View File

@ -74,3 +74,10 @@ device('tp-link-tl-wr902ac-v3', 'tplink_tl-wr902ac-v3', {
device('vocore2', 'vocore2', {
factory = false,
})
-- Xiaomi
device('xiaomi-mi-router-4a-100m-edition', 'xiaomi_mir4a-100m', {
factory = false,
})