Porting Firmware to TP-Link Archer C20 v5

I will try that method - i need to manually install luci and go ahead.

The work week has been exhausting and it is a beautiful sunny day to go for a walk. Thanks for the help.
I will then make the computer compile the GIT to this machine and then report tomorrow your steps in LUCI and if sucess the newest version (19.x) of OpenWRT (they only compiled the C20v4 version that is more or less equivalent but not booting at all).
Best regards!

Try upload the image via openwrt 18.06.5 like what I'm done for the last time before openning the case and wire up
and as I know Stripped firmware is Okay

I Appreciate that :pray:

I had your problem yesterday and tried upload the image via TFTP and only the lan led is blinking
Today when I used this method and worked (just wanted to make sure that image I created is fine)

v4 port works fine on 5Ghz since 19.07.x

1 Like

I have the archer c20 v5 stock but the firmware version is v5(BR), is it okay to follow these steps?

Yeah it's Okay but you need to Strip the right firmware (BR) for your router
Want to revert to tplink or openwrt?!!

I just did the described procedure and everything is ok. v5 client with relayd connecting to a v4 ap on 5Ghz and everything is working perfectly. Thanks for the clarification!

1 Like

But it was not turning on after updating firmware via tftp. Even leds not blinking. Do you have any idea? Anyway I flashed chip with wrong firmware after all of that, so think my bootloader is overwritten now.

Hi thanks for providing firmware. Is it full dump from chip? Can I use it for full recovering?

Good night David.
The router is with TPLink firmware now - uploaded via LUCI as you said - had to check "force flash" because LUCI complaint about unknown filetype/ident. Now that i can go one way or another (OpenWRT / TPLink) to do the tests i will continue the building the 19.x image.
I will post then the results.

I did this reversal procedure to test, and it worked! The settings are all the same as before the flash openwrt, including the language.

I did the procedure by cli, downloading the firmware with wget to / tmp and mtd -r write tp_recovery.bin firmware

Hi
Can you upload and install openwrt via tftp or not!? If your answer is yes
First install 18.06.5 then upload the stripped firmware through openwrt WEBUI
Which firmware version does your router work with!? EU,BR or US!?

Hi
That was because of SNAPSHOT and if you installed the other version you could upload it without "force flash" alert
Anyway
Sounds good :+1: and have you checked the mac addresses after going back to TP stock firmware!? Is Everything Okay!?

Thank you and god bless you :pray::+1::ok_hand:

Hi :ok_hand::handshake::slightly_smiling_face::+1:
You used the firmware that I uploaded before or already created Brazilian version by yourself!?

The mac addresses are all ok.
The compiled version has produced two files (that i see as firmware) and i will try to test them. I do not know which use, so if one fails it should load the other. I think this u-boot do not use initramfs... so... i will try the squashfs first.
Note - i compiled only by select the platform and target device (ramips -> mt76x8 -> archer-c20v5 ).
The directory content:

[jorge@toshiba mt76x8]$ ls -la
total 7488
drwxr-xr-x 3 jorge jorge    4096 Mar  7 21:06 .
drwxr-xr-x 3 jorge jorge    4096 Mar  7 20:53 ..
-rw-r--r-- 1 jorge jorge   18073 Mar  7 20:54 config.buildinfo
-rw-r--r-- 1 jorge jorge     263 Mar  7 20:54 feeds.buildinfo
-rw-r--r-- 1 jorge jorge 3743784 Mar  7 21:06 openwrt-ramips-mt76x8-tplink_archer-c20-v5-initramfs-kernel.bin
-rw-r--r-- 1 jorge jorge    2387 Mar  7 21:06 openwrt-ramips-mt76x8-tplink_archer-c20-v5.manifest
-rw-r--r-- 1 jorge jorge 3867411 Mar  7 21:06 openwrt-ramips-mt76x8-tplink_archer-c20-v5-squashfs-sysupgrade.bin
drwxr-xr-x 2 jorge jorge    4096 Mar  7 21:06 packages
-rw-r--r-- 1 jorge jorge     630 Mar  7 21:06 sha256sums
-rw-r--r-- 1 jorge jorge      18 Mar  7 20:54 version.buildinfo
[jorge@toshiba mt76x8]$ ls -lah
total 7.4M
drwxr-xr-x 3 jorge jorge 4.0K Mar  7 21:06 .
drwxr-xr-x 3 jorge jorge 4.0K Mar  7 20:53 ..
-rw-r--r-- 1 jorge jorge  18K Mar  7 20:54 config.buildinfo
-rw-r--r-- 1 jorge jorge  263 Mar  7 20:54 feeds.buildinfo
-rw-r--r-- 1 jorge jorge 3.6M Mar  7 21:06 openwrt-ramips-mt76x8-tplink_archer-c20-v5-initramfs-kernel.bin
-rw-r--r-- 1 jorge jorge 2.4K Mar  7 21:06 openwrt-ramips-mt76x8-tplink_archer-c20-v5.manifest
-rw-r--r-- 1 jorge jorge 3.7M Mar  7 21:06 openwrt-ramips-mt76x8-tplink_archer-c20-v5-squashfs-sysupgrade.bin
drwxr-xr-x 2 jorge jorge 4.0K Mar  7 21:06 packages
-rw-r--r-- 1 jorge jorge  630 Mar  7 21:06 sha256sums
-rw-r--r-- 1 jorge jorge   18 Mar  7 20:54 version.buildinfo

[jorge@toshiba mt76x8]$ pwd
/opt/OPENWRT/openwrt/bin/targets/ramips/mt76x8

[jorge@toshiba mt76x8]$ ls packages/
base-files_214-r12470-dfb7a4ce5d_mipsel_24kc.ipk                    kmod-nf-conntrack6_4.14.171-1_mipsel_24kc.ipk
fstools_2020-01-21-deb745f8-1_mipsel_24kc.ipk                       kmod-nf-flow_4.14.171-1_mipsel_24kc.ipk
fwtool_2019-11-12-8f7fe925-1_mipsel_24kc.ipk                        kmod-nf-ipt_4.14.171-1_mipsel_24kc.ipk
ip6tables_1.8.3-2_mipsel_24kc.ipk                                   kmod-nf-ipt6_4.14.171-1_mipsel_24kc.ipk
iptables_1.8.3-2_mipsel_24kc.ipk                                    kmod-nf-nat_4.14.171-1_mipsel_24kc.ipk
iwinfo_2020-01-05-bf2c1069-1_mipsel_24kc.ipk                        kmod-nf-reject_4.14.171-1_mipsel_24kc.ipk
kernel_4.14.171-1-af99b5908ccd74072a01a1a26d6c5bb8_mipsel_24kc.ipk  kmod-nf-reject6_4.14.171-1_mipsel_24kc.ipk
kmod-cfg80211_4.14.171+5.4-rc8-1-1_mipsel_24kc.ipk                  kmod-ppp_4.14.171-1_mipsel_24kc.ipk
kmod-gpio-button-hotplug_4.14.171-3_mipsel_24kc.ipk                 kmod-pppoe_4.14.171-1_mipsel_24kc.ipk
kmod-ip6tables_4.14.171-1_mipsel_24kc.ipk                           kmod-pppox_4.14.171-1_mipsel_24kc.ipk
kmod-ipt-conntrack_4.14.171-1_mipsel_24kc.ipk                       kmod-slhc_4.14.171-1_mipsel_24kc.ipk
kmod-ipt-core_4.14.171-1_mipsel_24kc.ipk                            libc_1.1.24-2_mipsel_24kc.ipk
kmod-ipt-nat_4.14.171-1_mipsel_24kc.ipk                             libgcc1_8.3.0-2_mipsel_24kc.ipk
kmod-ipt-offload_4.14.171-1_mipsel_24kc.ipk                         libip4tc2_1.8.3-2_mipsel_24kc.ipk
kmod-leds-gpio_4.14.171-1_mipsel_24kc.ipk                           libip6tc2_1.8.3-2_mipsel_24kc.ipk
kmod-lib-crc-ccitt_4.14.171-1_mipsel_24kc.ipk                       libiwinfo20200105_2020-01-05-bf2c1069-1_mipsel_24kc.ipk
kmod-mac80211_4.14.171+5.4-rc8-1-1_mipsel_24kc.ipk                  libpthread_1.1.24-2_mipsel_24kc.ipk
kmod-mt7603_4.14.171+2020-02-25-81476f11-1_mipsel_24kc.ipk          libxtables12_1.8.3-2_mipsel_24kc.ipk
kmod-mt76-core_4.14.171+2020-02-25-81476f11-1_mipsel_24kc.ipk       mtd_25_mipsel_24kc.ipk
kmod-mt76x02-common_4.14.171+2020-02-25-81476f11-1_mipsel_24kc.ipk  Packages
kmod-mt76x0-common_4.14.171+2020-02-25-81476f11-1_mipsel_24kc.ipk   Packages.gz
kmod-mt76x0e_4.14.171+2020-02-25-81476f11-1_mipsel_24kc.ipk         Packages.manifest
kmod-nf-conntrack_4.14.171-1_mipsel_24kc.ipk                        Packages.sig

It is getting late so tomorrow i resume the work.

Well done :ok_hand::+1::pray:
Thanks a lot and gšŸ‘€d night

Hi
No I can't. It's not reacting at all. I'm using EU version

  1. When you set up lan with 192.168.0.66 and push the reset button then turn the router on,anything!?you should wait for 10 seconds and release the reset button
    2.did you try to program flash chip via CH341a And remove flash chip from mainboard!? :thinking::cold_sweat:

So here is the result of compilation and upload TFTP:


BusyBox v1.31.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r12470-dfb7a4ce5d
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:~# uname -a
Linux OpenWrt 4.14.171 #0 Sat Mar 7 03:02:13 2020 mips GNU/Linux
root@OpenWrt:~# dmesg 
[    0.000000] Linux version 4.14.171 (jorge@toshiba) (gcc version 8.3.0 (OpenWrt GCC 8.3.0 r12470-dfb7a4ce5d)) #0 Sat Mar 7 03:02:13 2020
[    0.000000] Board has DDR2
[    0.000000] Analog PMU set to hw control
[    0.000000] Digital PMU set to hw control
[    0.000000] SoC Type: MediaTek MT7628AN ver:1 eco:2
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019655 (MIPS 24KEc)
[    0.000000] MIPS: machine is TP-Link Archer C20 v5
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 04000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] On node 0 totalpages: 16384
[    0.000000] free_area_init_node: node 0, pgdat 804e0880, node_mem_map 81000040
[    0.000000]   Normal zone: 144 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 16384 pages, LIFO batch:3
[    0.000000] random: get_random_bytes called from start_kernel+0x98/0x4a0 with crng_init=0
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16240
[    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Writing ErrCtl register=00059bcf
[    0.000000] Readback ErrCtl register=00059bcf
[    0.000000] Memory: 58372K/65536K available (3918K kernel code, 181K rwdata, 896K rodata, 1204K init, 205K bss, 7164K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 256
[    0.000000] intc: using register map from devicetree
[    0.000000] CPU Clock: 580MHz
[    0.000000] timer_probe: no matching timers found
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6590553264 ns
[    0.000010] sched_clock: 32 bits at 290MHz, resolution 3ns, wraps every 7405115902ns
[    0.007537] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
[    0.073495] pid_max: default: 32768 minimum: 301
[    0.078208] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.084559] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.097297] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.106804] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.112782] pinctrl core: initialized pinctrl subsystem
[    0.118840] NET: Registered protocol family 16
[    0.231083] mt7620-pci 10140000.pcie: Port 0 N_FTS = 1b105000
[    0.386365] PCI host bridge /pcie@10140000 ranges:
[    0.390948]  MEM 0x0000000020000000..0x000000002fffffff
[    0.395966]   IO 0x0000000010160000..0x000000001016ffff
[    0.420262] mt7621_gpio 10000600.gpio: registering 32 gpios
[    0.425906] mt7621_gpio 10000600.gpio: registering 32 gpios
[    0.431397] mt7621_gpio 10000600.gpio: registering 32 gpios
[    0.437655] PCI host bridge to bus 0000:00
[    0.441560] pci_bus 0000:00: root bus resource [mem 0x20000000-0x2fffffff]
[    0.448238] pci_bus 0000:00: root bus resource [io  0xffffffff]
[    0.453900] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    0.460463] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.468136] pci 0000:00:00.0: [14c3:0801] type 01 class 0x060400
[    0.468175] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x7fffffff]
[    0.468190] pci 0000:00:00.0: reg 0x14: [mem 0x00000000-0x0000ffff]
[    0.468262] pci 0000:00:00.0: supports D1
[    0.468273] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    0.468511] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
[    0.476420] pci 0000:01:00.0: [14c3:7650] type 00 class 0x028000
[    0.476469] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
[    0.476612] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    0.476832] pci 0000:01:00.1: [14c3:8650] type 00 class 0x0d1100
[    0.476875] pci 0000:01:00.1: reg 0x10: [mem 0x00000000-0x000fffff]
[    0.477009] pci 0000:01:00.1: supports D1
[    0.477018] pci 0000:01:00.1: PME# supported from D0 D1 D3hot D3cold
[    0.477223] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    0.477241] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 01
[    0.477299] pci 0000:00:00.0: BAR 0: no space for [mem size 0x80000000]
[    0.483630] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x80000000]
[    0.490401] pci 0000:00:00.0: BAR 8: assigned [mem 0x20000000-0x201fffff]
[    0.496903] pci 0000:00:00.0: BAR 1: assigned [mem 0x20200000-0x2020ffff]
[    0.503476] pci 0000:01:00.0: BAR 0: assigned [mem 0x20000000-0x200fffff]
[    0.510011] pci 0000:01:00.1: BAR 0: assigned [mem 0x20100000-0x201fffff]
[    0.516573] pci 0000:00:00.0: PCI bridge to [bus 01]
[    0.521349] pci 0000:00:00.0:   bridge window [mem 0x20000000-0x201fffff]
[    0.533142] clocksource: Switched to clocksource MIPS
[    0.539270] NET: Registered protocol family 2
[    0.544286] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.550977] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.557166] TCP: Hash tables configured (established 1024 bind 1024)
[    0.563423] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.569022] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.575442] NET: Registered protocol family 1
[    0.579661] PCI: CLS 0 bytes, default 32
[    0.583454] Crashlog allocated RAM at address 0x3f00000
[    0.590276] workingset: timestamp_bits=14 max_order=14 bucket_order=0
[    0.603179] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.608756] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.631218] io scheduler noop registered
[    0.635017] io scheduler deadline registered (default)
[    0.640714] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[    0.647961] console [ttyS0] disabled
[    0.651404] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 28, base_baud = 2500000) is a 16550A
[    0.660183] console [ttyS0] enabled
[    0.667181] bootconsole [early0] disabled
[    0.676524] spi-mt7621 10000b00.spi: sys_freq: 193333333
[    0.696601] m25p80 spi0.0: s25fl064k (8192 Kbytes)
[    0.701521] 7 fixed-partitions partitions found on MTD device spi0.0
[    0.707983] Creating 7 MTD partitions on "spi0.0":
[    0.712861] 0x000000000000-0x000000030000 : "factory-uboot"
[    0.719432] 0x000000030000-0x000000050000 : "boot"
[    0.725176] 0x000000050000-0x0000007c0000 : "firmware"
[    0.734139] 2 tplink-fw partitions found on MTD device firmware
[    0.740153] Creating 2 MTD partitions on "firmware":
[    0.745248] 0x000000000000-0x0000001988ea : "kernel"
[    0.751146] 0x0000001988ec-0x000000770000 : "rootfs"
[    0.757030] mtd: device 4 (rootfs) set to be root filesystem
[    0.764541] 1 squashfs-split partitions found on MTD device rootfs
[    0.770817] Creating 1 MTD partitions on "rootfs":
[    0.775737] 0x000000217714-0x0000005d7714 : "rootfs_data"
[    0.782100] 0x0000007c0000-0x0000007d0000 : "config"
[    0.788037] 0x0000007d0000-0x0000007e0000 : "rom"
[    0.793698] 0x0000007e0000-0x0000007f0000 : "romfile"
[    0.799601] 0x0000007f0000-0x000000800000 : "radio"
[    0.806108] libphy: Fixed MDIO Bus: probed
[    0.824609] rt3050-esw 10110000.esw: link changed 0x00
[    0.831459] mtk_soc_eth 10100000.ethernet eth0: mediatek frame engine at 0xb0100000, irq 5
[    0.841586] NET: Registered protocol family 10
[    0.850463] Segment Routing with IPv6
[    0.854360] NET: Registered protocol family 17
[    0.858937] 8021q: 802.1Q VLAN Support v1.8
[    0.874207] VFS: Mounted root (squashfs filesystem) readonly on device 31:4.
[    0.887989] Freeing unused kernel memory: 1204K
[    0.892582] This architecture does not have kernel memory protection.
[    1.852308] init: Console is alive
[    1.856108] init: - watchdog -
[    2.280679] random: fast init done
[    2.866020] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    3.038458] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    3.056392] init: - preinit -
[    4.417120] rt3050-esw 10110000.esw: link changed 0x00
[    4.597244] random: procd: uninitialized urandom read (4 bytes read)
[    7.396987] rt3050-esw 10110000.esw: link changed 0x02
[    8.751067] mount_root: jffs2 not ready yet, using temporary tmpfs overlay
[    8.784922] urandom-seed: Seed file not found (/etc/urandom.seed)
[    8.899883] procd: - early -
[    8.902922] procd: - watchdog -
[    9.491374] procd: - watchdog -
[    9.494992] procd: - ubus -
[    9.525535] random: ubusd: uninitialized urandom read (4 bytes read)
[    9.620831] random: ubusd: uninitialized urandom read (4 bytes read)
[    9.627906] random: ubusd: uninitialized urandom read (4 bytes read)
[    9.635488] procd: - init -
[   10.435765] kmodloader: loading kernel modules from /etc/modules.d/*
[   10.458462] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   10.488301] Loading modules backported from Linux version v5.4-rc8-0-gaf42d3466bdc
[   10.496056] Backport generated by backports.git v5.4-rc8-1-0-g368e8c51
[   10.525915] ip_tables: (C) 2000-2006 Netfilter Core Team
[   10.551567] nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
[   10.680236] xt_time: kernel timezone is -0000
[   10.806540] mt76_wmac 10300000.wmac: ASIC revision: 76280001
[   10.914161] urngd: v1.0.2 started.
[   11.110348] random: crng init done
[   11.113835] random: 6 urandom warning(s) missed due to ratelimiting
[   11.845312] mt76_wmac 10300000.wmac: Firmware Version: 20151201
[   11.851331] mt76_wmac 10300000.wmac: Build Time: 20151201183641
[   11.893152] mt76_wmac 10300000.wmac: firmware init done
[   12.069607] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   12.188598] PPP generic driver version 2.4.2
[   12.204205] NET: Registered protocol family 24
[   12.224727] mt76x0e 0000:01:00.0: card - bus=0x1, slot = 0x0 irq=4
[   12.231204] mt76x0e 0000:01:00.0: ASIC revision: 76100002
[   12.503873] mt76x0e 0000:01:00.0: Firmware Version: 0.1.00
[   12.757690] mt76x0e 0000:01:00.0: EEPROM ver:02 fae:00
[   12.766648] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[   12.787097] kmodloader: done loading kernel modules from /etc/modules.d/*
[   24.343820] rt3050-esw 10110000.esw: link changed 0x00
[   26.255001] jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
[   26.261997] jffs2_build_filesystem(): unlocking the mtd device... 
[   26.278028] done.
[   26.286323] jffs2_build_filesystem(): erasing all blocks after the end marker... 
[   26.286362] jffs2: Erase at 0x003b0000 failed immediately: errno -22
[   27.402535] rt3050-esw 10110000.esw: link changed 0x02
[   30.083533] br-lan: port 1(eth0.1) entered blocking state
[   30.089022] br-lan: port 1(eth0.1) entered disabled state
[   30.094937] device eth0.1 entered promiscuous mode
[   30.099803] device eth0 entered promiscuous mode
[   30.172151] br-lan: port 1(eth0.1) entered blocking state
[   30.177703] br-lan: port 1(eth0.1) entered forwarding state
[   30.183581] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   31.083668] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   54.914123] done.
[   54.916125] jffs2: notice: (1199) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
[   55.084402] overlayfs: upper fs does not support tmpfile.

I presume that, being pulled from GIT, it is the latest review at 21:02 (EU-PT CET+00) 7 Mar 2020, and i can see that the same problem is in, kernel continue to printout "ffs2: Erase at 0x003b0000 failed immediately: errno -22" ...

I will see if this is somewhat bad mappings or problem with FLASH EEPROM write functions.

Note - i used the openwrt-ramips-mt76x8-tplink_archer-c20-v5-squashfs-sysupgrade.bin file from compilation.
Now i will opkg packages and see the results ... but i think this is make overlay jffs2 corruption because of that error... will see.

Edit:

I went try another way to see if settings are retained in the router on reboot and it seems ok: I edited the /etc/config/network and configure it as my network needs and on reboot it retains the configuration, so i will include some more software in it - i don't know if, right now, the radio firmware is in image. I conclude by now that kernel message is not the problem.

Edit:
The software on the second reboot clears overlay jffs2 partition... on the next ssh it changed the rsa key and my settings where lost like factory reset. Seems that the partition is allocated in some bad area (this router is new but never knows, besides the original firmware works without any problem - tested yesterday night). I will debug this with umount / mount partition because on reboot the log is not there...

And the results are the same - corruptions on /overlay partition mtdblock5
I created 2 files with aprox. 1MB of random data /overlay/teste/teste.bin and /overlay/teste/teste2.bin
Resulting in kernel:

[   74.665731] jffs2: Erase at 0x003b0000 failed immediately: errno -22
[  779.407562] jffs2: Header CRC failed on REF_PRISTINE node at 0x001612fc: Read 0xffffffff, calculated 0x44660075
[  779.423429] jffs2: Header CRC failed on REF_PRISTINE node at 0x0016158c: Read 0xffffffff, calculated 0x44660075
[  779.456900] jffs2: Header CRC failed on REF_PRISTINE node at 0x001619f0: Read 0xffffffff, calculated 0x44660075
[  779.471974] jffs2: Header CRC failed on REF_PRISTINE node at 0x00161c44: Read 0xffffffff, calculated 0x44660075
[  779.489940] jffs2: Header CRC failed on REF_PRISTINE node at 0x001620e4: Read 0xffffffff, calculated 0x44660075
[  779.509597] jffs2: Header CRC failed on REF_PRISTINE node at 0x00162784: Read 0xffffffff, calculated 0x44660075
[  779.530638] jffs2: Header CRC failed on REF_PRISTINE node at 0x00162e88: Read 0xffffffff, calculated 0x44660075
[  779.550854] jffs2: Header CRC failed on REF_PRISTINE node at 0x001635b0: Read 0xffffffff, calculated 0x44660075
[  779.568841] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 001639e8
[  779.576763] jffs2: read of old metadata failed in jffs2_garbage_collect_metadata(): -5
[  779.584785] jffs2: Error garbage collecting node at 001639e8!
[  779.591081] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 001639e8
[  779.598975] jffs2: read of old metadata failed in jffs2_garbage_collect_metadata(): -5
[  779.607016] jffs2: Error garbage collecting node at 001639e8!
[  779.612836] jffs2: No space for garbage collection. Aborting GC thread
[  779.620155] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 001639e8
[  779.628063] jffs2: read of old metadata failed in jffs2_garbage_collect_metadata(): -5
[  779.636119] jffs2: Error garbage collecting node at 001639e8!
[  798.341448] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 001639e8
[  798.349381] jffs2: read of old metadata failed in jffs2_garbage_collect_metadata(): -5
[  798.357433] jffs2: Error garbage collecting node at 001639e8!
[  803.451234] jffs2: Node CRC ffffffff != calculated CRC f09e7845 for node at 001639e8
[  803.459164] jffs2: read of old metadata failed in jffs2_garbage_collect_metadata(): -5
[  803.467210] jffs2: Error garbage collecting node at 001639e8!

So this router is not fully compatible (yet) with this current hardware configuration (different FLASH Chip ?) . Strange that my first test it went ok but on second reboot simply the data had gone. The mount / umount process detects some failed metadata (because bad sector write it seems) and on fixing it "kills the partition" (is doing what is supposed to, so then when the init process detect an empty partition it create an factory reset data).

Now lets see some details:

In the process of creating the two "big" random files:

oot@OpenWrt:/overlay/teste# cat teste.bin >> teste2.bin
root@OpenWrt:/overlay/teste# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.3M      2.3M         0 100% /rom
tmpfs                    29.1M     56.0K     29.0M   0% /tmp
overlayfs:/overlay        3.8M      1.6M      2.2M  43% /
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/mtdblock5            3.8M      1.6M      2.2M  43% /overlay
root@OpenWrt:/overlay/teste# cat teste2.bin >> teste.bin
root@OpenWrt:/overlay/teste# cat teste.bin >> teste2.bin
cat: write error: No space left on device
root@OpenWrt:/overlay/teste# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.3M      2.3M         0 100% /rom
tmpfs                    29.1M     56.0K     29.0M   0% /tmp
overlayfs:/overlay        3.8M      3.0M    804.0K  79% /
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/mtdblock5            3.8M      3.0M    804.0K  79% /overlay
root@OpenWrt:/overlay/teste# ls -la
drwxr-xr-x    2 root     root             0 Mar  7 03:14 .
drwxr-xr-x    6 root     root             0 Mar  7 03:11 ..
-rw-r--r--    1 root     root       1283425 Mar  7 03:14 teste.bin
-rw-r--r--    1 root     root       1400832 Mar  7 03:15 teste2.bin
root@OpenWrt:/overlay/teste# ls -lah
drwxr-xr-x    2 root     root           0 Mar  7 03:14 .
drwxr-xr-x    6 root     root           0 Mar  7 03:11 ..
-rw-r--r--    1 root     root        1.2M Mar  7 03:14 teste.bin
-rw-r--r--    1 root     root        1.3M Mar  7 03:15 teste2.bin
root@OpenWrt:/overlay/teste# md5sum * 
9d9a1d75ed4a4694716e36b1572d33e7  teste.bin
75b29976d3a856a4bbd6dd61e19060a5  teste2.bin
root@OpenWrt:/overlay/teste# md5sum *  > md5sum.txt
-ash: can't create md5sum.txt: No space left on device
root@OpenWrt:/overlay/teste# sync
root@OpenWrt:/overlay/teste# md5sum *  > md5sum.txt
-ash: can't create md5sum.txt: No space left on device

Ok, no space left on device even with 804KB available... so went umount and remount the partition:

root@OpenWrt:/# umount overlay/
root@OpenWrt:/# ls /overlay/
root@OpenWrt:/# sync
root@OpenWrt:/# mount -t jffs2 /dev/mtdblock5 /overlay/
root@OpenWrt:/# cd overlay/
root@OpenWrt:/overlay# ls
teste  upper  work
root@OpenWrt:/overlay# cd teste/
root@OpenWrt:/overlay/teste# ls
teste.bin   teste2.bin
root@OpenWrt:/overlay/teste# ls -la
drwxr-xr-x    2 root     root             0 Mar  7 03:14 .
drwxr-xr-x    6 root     root             0 Mar  7 03:11 ..
-rw-r--r--    1 root     root       1283425 Mar  7 03:14 teste.bin
-rw-r--r--    1 root     root       1400832 Mar  7 03:15 teste2.bin
root@OpenWrt:/overlay/teste# md5sum *
9d9a1d75ed4a4694716e36b1572d33e7  teste.bin
75b29976d3a856a4bbd6dd61e19060a5  teste2.bin

What's going on here ?
So the files are there... and the checksum checks !
Note that the files were created with /dev/random initially.

It seems that the data got corrupted on reboot ... how ?
Will reboot and see...
... and gone! The data has gone to oblivium...

root@OpenWrt:/overlay/teste# reboot
root@OpenWrt:/overlay/teste# Connection to 192.168.1.1 closed by remote host.
Connection to 192.168.1.1 closed.
[jorge@toshiba ~]$ ssh -lroot 192.168.1.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:2EaXszwfxZds3lqSQU09vrCR1Vi2JqIdWG28VN24E6c.
Please contact your system administrator.
Add correct host key in /home/jorge/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/jorge/.ssh/known_hosts:1
RSA host key for 192.168.1.1 has changed and you have requested strict checking.
Host key verification failed.
[jorge@toshiba ~]$ rm .ssh/known_hosts 
[jorge@toshiba ~]$ ssh -lroot 192.168.1.1
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
RSA key fingerprint is SHA256:2EaXszwfxZds3lqSQU09vrCR1Vi2JqIdWG28VN24E6c.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.1' (RSA) to the list of known hosts.


BusyBox v1.31.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r12470-dfb7a4ce5d
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:~# ls /overlay/
upper  work

I used the firmware you uploaded.