Request for TP-Link RE220 v1 images (RE200 v3 clone) by someone with a toolchain

This looks like a one on one copy from the RE200 v3 commit you referenced. This list should only include known special IDs. It can then be expanded as needed. What's the one your device has?

@amteza I had to update the safeloader patch to use the conventions master uses. You can find it below. However, we shouldn't be including a list of special IDs we do not know actually exist in the wild. This is a full copy paste from the RE200 v3 and it should not be merged as is.

diff --git a/src/tplink-safeloader.c b/src/tplink-safeloader.c
index 7f9081d..51e3938 100644
--- a/src/tplink-safeloader.c
+++ b/src/tplink-safeloader.c
@@ -2463,6 +2463,50 @@ static struct device_info boards[] = {
                .last_sysupgrade_partition = "file-system"
        },
 
+/** Firmware layout for the RE220 v1 */
+    {
+        .id     = "RE220-V1",
+        .vendor = "",
+        .support_list =
+            "SupportList:\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:00000000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:41520000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:41550000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:42520000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:43410000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:45470000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:45530000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:45550000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:49440000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:4A500000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:4B520000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:52550000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:54570000}\n"
+            "{product_name:RE220,product_ver:1.0.0,special_id:55530000}\n",
+        .part_trail = '\x00',
+        .soft_ver = SOFT_VER_DEFAULT,
+
+        .partitions = {
+            {"fs-uboot", 0x00000, 0x20000},
+            {"firmware", 0x20000, 0x7a0000},
+            {"partition-table", 0x7c0000, 0x02000},
+            {"default-mac", 0x7c2000, 0x00020},
+            {"pin", 0x7c2100, 0x00020},
+            {"product-info", 0x7c3100, 0x01000},
+            {"soft-version", 0x7c4200, 0x01000},
+            {"support-list", 0x7c5200, 0x01000},
+            {"profile", 0x7c6200, 0x08000},
+            {"config-info", 0x7ce200, 0x00400},
+            {"user-config", 0x7d0000, 0x10000},
+            {"default-config", 0x7e0000, 0x10000},
+            {"radio", 0x7f0000, 0x10000},
+            {NULL, 0, 0}
+        },
+
+        .first_sysupgrade_partition = "os-image",
+        .last_sysupgrade_partition = "file-system"
+    },
+

Okay, but I had to fix it, I think support_trail should not be used, I patched it as follows before your update:

--- a/src/tplink-safeloader.c
+++ b/src/tplink-safeloader.c
@@ -2398,6 +2398,50 @@ static struct device_info boards[] = {
                .last_sysupgrade_partition = "file-system"
        },

+       /** Firmware layout for the RE220 v1 */
+       {
+               .id     = "RE220-V1",
+               .vendor = "",
+               .support_list =
+                       "SupportList:\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:00000000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:41520000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:41550000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:42520000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:43410000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:45470000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:45530000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:45550000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:49440000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:4A500000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:4B520000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:52550000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:54570000}\n"
+                       "{product_name:RE220,product_ver:1.0.0,special_id:55530000}\n",
+               .part_trail = 0x00,
+               .soft_ver = SOFT_VER_DEFAULT,
+
+               .partitions = {
+                       {"fs-uboot", 0x00000, 0x20000},
+                       {"firmware", 0x20000, 0x7a0000},
+                       {"partition-table", 0x7c0000, 0x02000},
+                       {"default-mac", 0x7c2000, 0x00020},
+                       {"pin", 0x7c2100, 0x00020},
+                       {"product-info", 0x7c3100, 0x01000},
+                       {"soft-version", 0x7c4200, 0x01000},
+                       {"support-list", 0x7c5200, 0x01000},
+                       {"profile", 0x7c6200, 0x08000},
+                       {"config-info", 0x7ce200, 0x00400},
+                       {"user-config", 0x7d0000, 0x10000},
+                       {"default-config", 0x7e0000, 0x10000},
+                       {"radio", 0x7f0000, 0x10000},
+                       {NULL, 0, 0}
+               },
+
+               .first_sysupgrade_partition = "os-image",
+               .last_sysupgrade_partition = "file-system"
+       },
+
        /** Firmware layout for the RE220 v2 */
        {
                .id     = "RE220-V2",

Yes, part_trail, stale cache on my end. Keep in mind only support based on master will be merged (and you'll need to send in the firmware-utils patch separately). So if you want this merged it makes more sense to test on master first.

Patch for device support on master:

From f8400d037715f38a545ee7302ae1e987f4c34d7a Mon Sep 17 00:00:00 2001
From: <snip>
Date: Thu, 29 Sep 2022 23:56:19 +0200
Subject: [PATCH] ramips: mt76x8: add support for TP-Link RE220 v1

---
 .../ramips/dts/mt7628an_tplink_re220-v1.dts   | 70 +++++++++++++++++++
 target/linux/ramips/image/mt76x8.mk           | 10 +++
 .../mt76x8/base-files/etc/board.d/01_leds     |  1 +
 .../mt76x8/base-files/etc/board.d/02_network  |  1 +
 4 files changed, 82 insertions(+)
 create mode 100644 target/linux/ramips/dts/mt7628an_tplink_re220-v1.dts

diff --git a/target/linux/ramips/dts/mt7628an_tplink_re220-v1.dts b/target/linux/ramips/dts/mt7628an_tplink_re220-v1.dts
new file mode 100644
index 0000000000..7b307bccdb
--- /dev/null
+++ b/target/linux/ramips/dts/mt7628an_tplink_re220-v1.dts
@@ -0,0 +1,70 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "mt7628an_tplink_re200.dtsi"
+
+/ {
+    compatible = "tplink,re220-v1", "mediatek,mt7628an-soc";
+    model = "TP-Link RE220 v1";
+
+    aliases {
+        led-boot = &led_power;
+        led-failsafe = &led_power;
+        led-running = &led_power;
+        led-upgrade = &led_power;
+    };
+
+    leds {
+        compatible = "gpio-leds";
+
+        wps {
+            label = "re220-v1:green:wps";
+            gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+        };
+
+        wifi {
+            label = "re220-v1:green:wifi";
+            gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+        };
+
+        lan {
+            label = "re220-v1:green:lan";
+            gpios = <&gpio 39 GPIO_ACTIVE_LOW>;
+        };
+
+        led_power: power {
+            label = "re220-v1:green:power";
+            gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+        };
+
+        wifi2g_green {
+            label = "re220-v1:green:wifi2g";
+            gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
+            linux,default-trigger = "phy0tpt";
+        };
+
+        wifi5g_green {
+            label = "re220-v1:green:wifi5g";
+            gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
+            linux,default-trigger = "phy1tpt";
+        };
+
+        wifi2g_red {
+            label = "re220-v1:red:wifi2g";
+            gpios = <&gpio 43 GPIO_ACTIVE_LOW>;
+        };
+
+        wifi5g_red {
+            label = "re220-v1:red:wifi5g";
+            gpios = <&gpio 40 GPIO_ACTIVE_LOW>;
+        };
+    };
+};
+
+&state_default {
+    gpio {
+        groups = "p4led_an", "p3led_an", "p2led_an", "p1led_an",
+                "p0led_an", "wled_an", "i2c", "wdt", "refclk";
+        function = "gpio";
+    };
+};
diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk
index 100d5d9c6c..0b51959a77 100644
--- a/target/linux/ramips/image/mt76x8.mk
+++ b/target/linux/ramips/image/mt76x8.mk
@@ -579,6 +579,16 @@ define Device/tplink_re200-v4
 endef
 TARGET_DEVICES += tplink_re200-v4
 
+define Device/tplink_re220-v1
+  $(Device/tplink-safeloader)
+  IMAGE_SIZE := 7808k
+  DEVICE_MODEL := RE220
+  DEVICE_VARIANT := v1
+  DEVICE_PACKAGES := kmod-mt76x0e
+  TPLINK_BOARD_ID := RE220-V1
+endef
+TARGET_DEVICES += tplink_re220-v1
+
 define Device/tplink_re220-v2
   $(Device/tplink-safeloader)
   IMAGE_SIZE := 7808k
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
index 0af01d4393..c68447b063 100644
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds
@@ -76,6 +76,7 @@ tplink,archer-c50-v4)
 tplink,re200-v2|\
 tplink,re200-v3|\
 tplink,re200-v4|\
+tplink,re220-v1|\
 tplink,re220-v2|\
 tplink,tl-mr3020-v3|\
 tplink,tl-wa801nd-v5)
diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
index 963a20c653..eb360a31ed 100644
--- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network
@@ -23,6 +23,7 @@ ramips_setup_interfaces()
 	tplink,re200-v2|\
 	tplink,re200-v3|\
 	tplink,re200-v4|\
+	tplink,re220-v1|\
 	tplink,re220-v2|\
 	tplink,re305-v1|\
 	tplink,re305-v3|\
-- 
2.30.2


Yes, I will do so. Thanks for the format and advice, @Borromini. Let's see how testing goes first.

1 Like

@jedboy, please see the following:

Folder containing factory, sysupgrade and initramfs files (patched against 22.03.0, for now) - click me to download

Let me know how it goes. After that I will patch master for you to test and issue the PRs.

I have uploaded master images with LuCI based on the patch above here.

@amteza Feel free to run with it. I was mostly curious to see if building on master here would break like you said, but I didn't see any glaring issues.

Yeah, just finishing the build here on my side while I shared 22.03.0 with jedboy and looks fine now.

1 Like

@amteza, thanks I will test it
@Borromini, yes special_id section copy pasted from RE200v3. How do I check for correct values on a device?

BTW, updated the master versions too in the same folder. I'll wait for your confirmation that both 22.03.0 and master binaries work before preparing PRs.

There is an issue with the 'test build' (the first one you provided, and with the snapshot aka master versions.

When I run RE200v3 image, radio1 shows up in /etc/config/wireless.
When I run the two builds you provided, there is no radio1.

The process I'm using:
Interrupt U-Boot. Hit '4' to get command line.
Configure tftp server on 192.168.0.184 with initramfs image as test.bin
Run commands
tftpboot
bootm 82000000
Once it boots, scp the matching sysupgrade image to /tmp/ then run
sysupgrade -n sysupgradefile.bin

Results look like...

---------- RE200v3 initramfs image running -------------
root@OpenWrt:/# ubus call system board
{
        "kernel": "5.10.138",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7628AN ver:1 eco:2",
        "model": "TP-Link RE200 v3",
        "board_name": "tplink,re200-v3",
        "rootfs_type": "initramfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "22.03.0",
                "revision": "r19685-512e76967f",
                "target": "ramips/mt76x8",
                "description": "OpenWrt 22.03.0 r19685-512e76967f"
        }
}

root@OpenWrt:/# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option channel '11'
        option hwmode '11g'
        option path 'platform/10300000.wmac'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

--------- RE200v3 sysupgrade image installed ----------------
root@OpenWrt:/# ubus call system board
{
        "kernel": "5.10.138",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7628AN ver:1 eco:2",
        "model": "TP-Link RE200 v3",
        "board_name": "tplink,re200-v3",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "22.03.0",
                "revision": "r19685-512e76967f",
                "target": "ramips/mt76x8",
                "description": "OpenWrt 22.03.0 r19685-512e76967f"
        }
}
root@OpenWrt:/# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10300000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'pci0000:00/0000:00:00.0/0000:01:00.0'
        option channel '36'
        option band '5g'
        option htmode 'VHT80'
        option disabled '1'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

--------- RE220v1 test build initramfs test image running ------------------
root@OpenWrt:/# ubus call system board
{
        "kernel": "5.10.138",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7628AN ver:1 eco:2",
        "model": "TP-Link RE220 v1",
        "board_name": "tplink,re220-v1",
        "rootfs_type": "initramfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "22.03.0",
                "revision": "r19685-512e76967f",
                "target": "ramips/mt76x8",
                "description": "OpenWrt 22.03.0 r19685-512e76967f"
        }
}
root@OpenWrt:/# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10300000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

------- RE220v1 test build sysupgrade test image installed  ------------------
root@OpenWrt:/# ubus call system board
{
        "kernel": "5.10.138",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7628AN ver:1 eco:2",
        "model": "TP-Link RE220 v1",
        "board_name": "tplink,re220-v1",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "22.03.0",
                "revision": "r19685-512e76967f",
                "target": "ramips/mt76x8",
                "description": "OpenWrt 22.03.0 r19685-512e76967f"
        }
}
root@OpenWrt:/# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10300000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'
cat 

----------- snapshot r20787 initramfs running
root@OpenWrt:/# ubus call system board
{
        "kernel": "5.10.144",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7628AN ver:1 eco:2",
        "model": "TP-Link RE220 v1",
        "board_name": "tplink,re220-v1",
        "rootfs_type": "initramfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r20787-3848cf458e",
                "target": "ramips/mt76x8",
                "description": "OpenWrt SNAPSHOT r20787-3848cf458e"
        }
}

root@OpenWrt:/# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10300000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

-------- snapshot r20787 sysupgrade installed
root@OpenWrt:/# ubus call system board
{
        "kernel": "5.10.144",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7628AN ver:1 eco:2",
        "model": "TP-Link RE220 v1",
        "board_name": "tplink,re220-v1",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r20787-3848cf458e",
                "target": "ramips/mt76x8",
                "description": "OpenWrt SNAPSHOT r20787-3848cf458e"
        }
}

root@OpenWrt:/# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10300000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

That's weird, can you add manually the other radio to /etc/config/wireless? It would work just fine if RE220v1 is exactly like RE200v3.

Just try adding it manually based in the info you have from RE200v3 image. I'll check once I'm back home.

I think it is not in config because it just isn't there. 'iw list' only shows radio0. I added radio1 to config, enabled it and get 'Phy not found' in system log. Output from 'iw list' for RE200v3 image and RE220v1 image included here:

------------------ RE200v3  ------------------------
root@OpenWrt:/# ubus call system board
{
        "kernel": "5.10.138",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7628AN ver:1 eco:2",
        "model": "TP-Link RE200 v3",
        "board_name": "tplink,re200-v3",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "22.03.0",
                "revision": "r19685-512e76967f",
                "target": "ramips/mt76x8",
                "description": "OpenWrt 22.03.0 r19685-512e76967f"
        }
}
root@OpenWrt:/# iw list
Wiphy phy1
        wiphy index: 1
        max # scan SSIDs: 4
        max scan IEs length: 2247 bytes
        max # sched scan SSIDs: 0
        max # match sets: 0
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Device supports AP-side u-APSD.
        Device supports T-DLS.
        Available Antennas: TX 0x1 RX 0x1
        Configured Antennas: TX 0x1 RX 0x1
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
                 * mesh point
                 * P2P-client
                 * P2P-GO
        Band 2:
                Capabilities: 0x17e
                        HT20/HT40
                        SM Power Save disabled
                        RX Greenfield
                        RX HT20 SGI
                        RX HT40 SGI
                        RX STBC 1-stream
                        Max AMSDU length: 3839 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: No restriction (0x00)
                HT TX/RX MCS rate indexes supported: 0-7
                VHT Capabilities (0x31800130):
                        Max MPDU length: 3895
                        Supported Channel Width: neither 160 nor 80+80
                        RX LDPC
                        short GI (80 MHz)
                        RX antenna pattern consistency
                        TX antenna pattern consistency
                VHT RX MCS set:
                        1 streams: MCS 0-9
                        2 streams: not supported
                        3 streams: not supported
                        4 streams: not supported
                        5 streams: not supported
                        6 streams: not supported
                        7 streams: not supported
                        8 streams: not supported
                VHT RX highest supported: 0 Mbps
                VHT TX MCS set:
                        1 streams: MCS 0-9
                        2 streams: not supported
                        3 streams: not supported
                        4 streams: not supported
                        5 streams: not supported
                        6 streams: not supported
                        7 streams: not supported
                        8 streams: not supported
                VHT TX highest supported: 0 Mbps
                Frequencies:
                        * 5180 MHz [36] (10.0 dBm)
                        * 5200 MHz [40] (10.0 dBm)
                        * 5220 MHz [44] (9.0 dBm)
                        * 5240 MHz [48] (9.0 dBm)
                        * 5260 MHz [52] (9.0 dBm) (no IR, radar detection)
                        * 5280 MHz [56] (8.0 dBm) (no IR, radar detection)
                        * 5300 MHz [60] (8.0 dBm) (no IR, radar detection)
                        * 5320 MHz [64] (8.0 dBm) (no IR, radar detection)
                        * 5500 MHz [100] (6.0 dBm) (no IR, radar detection)
                        * 5520 MHz [104] (6.0 dBm) (no IR, radar detection)
                        * 5540 MHz [108] (6.0 dBm) (no IR, radar detection)
                        * 5560 MHz [112] (6.0 dBm) (no IR, radar detection)
                        * 5580 MHz [116] (6.0 dBm) (no IR, radar detection)
                        * 5600 MHz [120] (7.0 dBm) (no IR, radar detection)
                        * 5620 MHz [124] (7.0 dBm) (no IR, radar detection)
                        * 5640 MHz [128] (7.0 dBm) (no IR, radar detection)
                        * 5660 MHz [132] (7.0 dBm) (no IR, radar detection)
                        * 5680 MHz [136] (7.0 dBm) (no IR, radar detection)
                        * 5700 MHz [140] (7.0 dBm) (no IR, radar detection)
                        * 5720 MHz [144] (7.0 dBm) (no IR, radar detection)
                        * 5745 MHz [149] (7.0 dBm) (no IR)
                        * 5765 MHz [153] (8.0 dBm) (no IR)
                        * 5785 MHz [157] (8.0 dBm) (no IR)
                        * 5805 MHz [161] (9.0 dBm) (no IR)
                        * 5825 MHz [165] (9.0 dBm) (no IR)
                        * 5845 MHz [169] (disabled)
                        * 5865 MHz [173] (disabled)
        valid interface combinations:
                 * #{ IBSS } <= 1, #{ managed, AP, mesh point, P2P-client, P2P-GO } <= 8,
                   total <= 8, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz }

        HT Capability overrides:
                 * MCS: ff ff ff ff ff ff ff ff ff ff
                 * maximum A-MSDU length
                 * supported channel width
                 * short GI for 40 MHz
                 * max A-MPDU length exponent
                 * min MPDU start spacing
        max # scan plans: 1
        max scan plan interval: -1
        max scan plan iterations: 0
        Supported extended features:
                * [ VHT_IBSS ]: VHT-IBSS
                * [ RRM ]: RRM
                * [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
                * [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
                * [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
                * [ AQL ]: Airtime Queue Limits (AQL)
                * [ SCAN_RANDOM_SN ]: use random sequence numbers in scans
                * [ SCAN_MIN_PREQ_CONTENT ]: use probe request with only rate IEs in scans
                * [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
                * [ DEL_IBSS_STA ]: deletion of IBSS station support
                * [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
                * [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support
Wiphy phy0
        wiphy index: 0
        max # scan SSIDs: 4
        max scan IEs length: 2257 bytes
        max # sched scan SSIDs: 0
        max # match sets: 0
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Device supports AP-side u-APSD.
        Device supports T-DLS.
        Available Antennas: TX 0x3 RX 0x3
        Configured Antennas: TX 0x3 RX 0x3
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
                 * mesh point
                 * P2P-client
                 * P2P-GO
        Band 1:
                Capabilities: 0x1fe
                        HT20/HT40
                        SM Power Save disabled
                        RX Greenfield
                        RX HT20 SGI
                        RX HT40 SGI
                        TX STBC
                        RX STBC 1-stream
                        Max AMSDU length: 3839 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: No restriction (0x00)
                HT TX/RX MCS rate indexes supported: 0-15
                Frequencies:
                        * 2412 MHz [1] (20.0 dBm)
                        * 2417 MHz [2] (20.0 dBm)
                        * 2422 MHz [3] (20.0 dBm)
                        * 2427 MHz [4] (20.0 dBm)
                        * 2432 MHz [5] (20.0 dBm)
                        * 2437 MHz [6] (20.0 dBm)
                        * 2442 MHz [7] (20.0 dBm)
                        * 2447 MHz [8] (20.0 dBm)
                        * 2452 MHz [9] (20.0 dBm)
                        * 2457 MHz [10] (20.0 dBm)
                        * 2462 MHz [11] (20.0 dBm)
                        * 2467 MHz [12] (20.0 dBm) (no IR)
                        * 2472 MHz [13] (20.0 dBm) (no IR)
                        * 2484 MHz [14] (20.0 dBm) (no IR)
        valid interface combinations:
                 * #{ IBSS } <= 1, #{ managed, AP, mesh point, P2P-client, P2P-GO } <= 4,
                   total <= 4, #channels <= 1, STA/AP BI must match
        HT Capability overrides:
                 * MCS: ff ff ff ff ff ff ff ff ff ff
                 * maximum A-MSDU length
                 * supported channel width
                 * short GI for 40 MHz
                 * max A-MPDU length exponent
                 * min MPDU start spacing
        max # scan plans: 1
        max scan plan interval: -1
        max scan plan iterations: 0
        Supported extended features:
                * [ RRM ]: RRM
                * [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
                * [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
                * [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
                * [ AQL ]: Airtime Queue Limits (AQL)
                * [ SCAN_RANDOM_SN ]: use random sequence numbers in scans
                * [ SCAN_MIN_PREQ_CONTENT ]: use probe request with only rate IEs in scans
                * [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
                * [ DEL_IBSS_STA ]: deletion of IBSS station support
                * [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
                * [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support
root@OpenWrt:/#
root@OpenWrt:/# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10300000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'pci0000:00/0000:00:00.0/0000:01:00.0'
        option channel '36'
        option band '5g'
        option htmode 'VHT80'
        option disabled '1'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

------------------- RE220v1  22.03 "r20787 snapshot --------------------
root@OpenWrt:/# ubus call system board
{
        "kernel": "5.10.144",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7628AN ver:1 eco:2",
        "model": "TP-Link RE220 v1",
        "board_name": "tplink,re220-v1",
        "rootfs_type": "initramfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r20787-3848cf458e",
                "target": "ramips/mt76x8",
                "description": "OpenWrt SNAPSHOT r20787-3848cf458e"
        }
}
root@OpenWrt:/# iw list
Wiphy phy0
        wiphy index: 0
        max # scan SSIDs: 4
        max scan IEs length: 2257 bytes
        max # sched scan SSIDs: 0
        max # match sets: 0
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Device supports AP-side u-APSD.
        Device supports T-DLS.
        Available Antennas: TX 0x3 RX 0x3
        Configured Antennas: TX 0x3 RX 0x3
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
                 * mesh point
                 * P2P-client
                 * P2P-GO
        Band 1:
                Capabilities: 0x1fe
                        HT20/HT40
                        SM Power Save disabled
                        RX Greenfield
                        RX HT20 SGI
                        RX HT40 SGI
                        TX STBC
                        RX STBC 1-stream
                        Max AMSDU length: 3839 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: No restriction (0x00)
                HT TX/RX MCS rate indexes supported: 0-15
                Frequencies:
                        * 2412 MHz [1] (20.0 dBm)
                        * 2417 MHz [2] (20.0 dBm)
                        * 2422 MHz [3] (20.0 dBm)
                        * 2427 MHz [4] (20.0 dBm)
                        * 2432 MHz [5] (20.0 dBm)
                        * 2437 MHz [6] (20.0 dBm)
                        * 2442 MHz [7] (20.0 dBm)
                        * 2447 MHz [8] (20.0 dBm)
                        * 2452 MHz [9] (20.0 dBm)
                        * 2457 MHz [10] (20.0 dBm)
                        * 2462 MHz [11] (20.0 dBm)
                        * 2467 MHz [12] (20.0 dBm) (no IR)
                        * 2472 MHz [13] (20.0 dBm) (no IR)
                        * 2484 MHz [14] (20.0 dBm) (no IR)
        valid interface combinations:
                 * #{ IBSS } <= 1, #{ managed, AP, mesh point, P2P-client, P2P-GO } <= 4,
                   total <= 4, #channels <= 1, STA/AP BI must match
        HT Capability overrides:
                 * MCS: ff ff ff ff ff ff ff ff ff ff
                 * maximum A-MSDU length
                 * supported channel width
                 * short GI for 40 MHz
                 * max A-MPDU length exponent
                 * min MPDU start spacing
        max # scan plans: 1
        max scan plan interval: -1
        max scan plan iterations: 0
        Supported extended features:
                * [ RRM ]: RRM
                * [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
                * [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
                * [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
                * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
                * [ SCAN_RANDOM_SN ]: use random sequence numbers in scans
                * [ SCAN_MIN_PREQ_CONTENT ]: use probe request with only rate IEs in scans
                * [ AIRTIME_FAIRNESS ]: airtime fairness scheduling
                * [ AQL ]: Airtime Queue Limits (AQL)
                * [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
                * [ DEL_IBSS_STA ]: deletion of IBSS station support
                * [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
                * [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support
root@OpenWrt:/# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/10300000.wmac'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'

After adding radio1 and enabling it, I get:
root@OpenWrt:/# wifi down; wifi up ; logread -f
'radio0' is disabled
'radio0' is disabled
'radio0' is disabled
Thu Sep 29 17:37:31 2022 daemon.notice netifd: radio1 (2210): Phy not found
Thu Sep 29 17:37:31 2022 daemon.notice netifd: radio1 (2210): Could not find PHY for device 'radio1'
Thu Sep 29 17:37:31 2022 daemon.notice netifd: Wireless device 'radio1' set retry=0
Thu Sep 29 17:37:31 2022 daemon.crit netifd: Wireless device 'radio1' setup failed, retry=0
Thu Sep 29 17:37:31 2022 daemon.notice netifd: radio1 (2219): WARNING: Variable 'data' does not exist or is not an array/object
Thu Sep 29 17:37:31 2022 daemon.notice netifd: radio1 (2219): Bug: PHY is undefined for device 'radio1'
Thu Sep 29 17:37:31 2022 daemon.notice netifd: Wireless device 'radio1' is now down
    
1 Like

Okay, thank you. Going to review everything again and maybe build an old image to see if there is any difference. As said, if this is a replica of a RE200v3, it should work.

@jedboy, I uploaded another set of firmware files based on the v21.02.3 official version. Do you mind testing them?

I'll do the testing soon

Looks like the RE220v1 builds are missing some kernel modules (kmod-mt76x*)

Lastest build RE220v1, 21.02.3
kmod-mac80211 - 5.4.188+5.10.110-1-1
kmod-mt76-core - 5.4.188+2021-12-03-678071ef-4
kmod-mt7603 - 5.4.188+2021-12-03-678071ef-4
kmod-nf-conntrack - 5.4.188-1
kmod-nf-conntrack6 - 5.4.188-1

RE200v3, latest snapshot, ======================
this one works, has both radios
"description": "OpenWrt SNAPSHOT r20787-3848cf458e"
kmod-mac80211 - 5.10.144+5.15.58-1-2
kmod-mt76-core - 5.10.144+2022-09-15-763a1d90-4
kmod-mt7603 - 5.10.144+2022-09-15-763a1d90-4
kmod-mt76x0-common - 5.10.144+2022-09-15-763a1d90-4
kmod-mt76x02-common - 5.10.144+2022-09-15-763a1d90-4
kmod-mt76x0e - 5.10.144+2022-09-15-763a1d90-4
kmod-nf-conntrack - 5.10.144-1
kmod-nf-conntrack6 - 5.10.144-1

RE220v1, previous test, ====================================
root@OpenWrt:/# ubus call system board
{
        "kernel": "5.10.144",
        "hostname": "OpenWrt",
        "system": "MediaTek MT7628AN ver:1 eco:2",
        "model": "TP-Link RE220 v1",
        "board_name": "tplink,re220-v1",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r20787-3848cf458e",
                "target": "ramips/mt76x8",
                "description": "OpenWrt SNAPSHOT r20787-3848cf458e"

kmod-mac80211 - 5.10.144+5.15.58-1-2
kmod-mt76-core - 5.10.144+2022-09-15-763a1d90-4
kmod-mt7603 - 5.10.144+2022-09-15-763a1d90-4
kmod-nf-conntrack - 5.10.144-1
kmod-nf-conntrack6 - 5.10.144-1

Okay, I will look into it tomorrow first thing in the morning

I recompiled the binaries with the following defaults; please, try the master snapshot again. I re-uploaded the files for you. I named the v2 for your reference.

CONFIG_DEFAULT_kmod-mt7603=y
CONFIG_DEFAULT_kmod-mt76x0-common=y
CONFIG_DEFAULT_kmod-mt76x02-common=y
CONFIG_DEFAULT_kmod-mt76x0e=y

still no radio1
some of the packages showed up on opkg list-installed

but, Still missing kmod-mt76x0e
also, got signature error on 'opkg update'
tried to install ipk file directly, no luck there

kmod-mac80211 - 5.10.144+5.15.58-1-2
kmod-mt76-core - 5.10.144+2022-09-15-763a1d90-4
kmod-mt7603 - 5.10.144+2022-09-15-763a1d90-4
kmod-mt76x0-common - 5.10.144+2022-09-15-763a1d90-4
kmod-mt76x02-common - 5.10.144+2022-09-15-763a1d90-4
kmod-nf-conntrack - 5.10.144-1
kmod-nf-conntrack6 - 5.10.144-1

root@OpenWrt:~# opkg update
Downloading https://downloads.openwrt.org/releases/22.03.0/targets/ramips/mt76x8/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
Downloading https://downloads.openwrt.org/releases/22.03.0/targets/ramips/mt76x8/packages/Packages.sig
Signature check failed.
Remove wrong Signature file.

root@OpenWrt:/tmp# opkg install kmod-mt76x0e_5.10.144+2022-09-15-763a1d90-4_mipsel_24kc.ipk
Unknown package 'kmod-mt76x0e'.
Collected errors:
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 5.10.144-1-3c5b1ea4df7d3b7efcc7bf88f6631102) for kmod-mt76x0e
 * pkg_hash_fetch_best_installation_candidate: Packages for kmod-mt76x0e found, but incompatible with the architectures configured
 * opkg_install_cmd: Cannot install package kmod-mt76x0e.
root@OpenWrt:/tmp#

Oh, FFS! This is ridiculous, let me force it. :smiley: Give me a few minutes.