TP-Link TL-MR3420 V3 LEDE(OpenWRT fork) Custom Build

# This is just my old build log for TP-Link TL-MR3420 V3 LEDE (OpenWRT fork) custom build firmware.

Forums thread is here >>

I have some experience in openWRT platform and it’s hack-able features. I like and select to buy this 3420 router because this one is dead cheap and full featured, especially support with USB and 3G modem. Some alternative like 3020 and 703 are also cheap but very small and no feature like eth-switch and little gpio. But problem is TL-MR 3420 V3 is not supported by openWRT. So, I have to build my own custom firmware. I choose LEDE (the fork of openWRT) build.


1- First build attempt

I recently build TL-MR 3420 V3 firmware which was not yet supported by openwrt.
The board is very similar to V2 board but V3 is with new processor Qualcomm Atheros QCA9531.

My V3 Board specifics brief are as follows:
– Qualcomm Atheros QCA9531 650MHz
– 25Q32CS1G 4M
– Zentel A3S56D40FTP -G5 32 MiB

I started with TL-MR 3420 V2 profile.
“Target System” ⇒ “Atheros AR7xxx/AR9xxx”
“Target Profile” ⇒ “TP-LINK TL-MR3420 v2”

Build success without showing any error.
Then I tried to build from stock web based firmware upgrade but failed with error 18005 because of TP-Link genuine firmware check hash.
So, I tried with serial/tftp flash method and flashing “lede-ar71xx-generic-tl-mr3420-v2-squashfs-factory.bin” was successful :slight_smile: . LEDE is booted checked from serial console.

Error : But when I check from serial console, ifconfig shows only lo interface. No Eth/Wan nor WLAN is up.

Tried ./etc/init.d/network reload and show error.

root@lede:/# /etc/init.d/network reload
Failed to connect to the switch. Use the "list" command to see which switches are available.
[   56.975151] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
'radio0' is disabled
'radio0' is disabled

Checked boot log and noticed errors.

[    0.115999] ar71xx: invalid MDIO id 1
[    1.414894] ag71xx ag71xx.0: invalid speed specified
[    1.420074] ag71xx: probe of ag71xx.0 failed with error -22
[    2.014883] ag71xx ag71xx.1: invalid speed specified
[    2.020033] ag71xx: probe of ag71xx.1 failed with error -22

Seem Switch/Eth driver is failed to load. How can I add network support for my board. If someone has experience on this series, also let me know.

Forum user @ahmadrasyidsalims point me out for the patch >>

I think you should be try :joy:


2- Second attempt

After loosing some hairs, some coffees + some nights, it was successfully booted and worked 🙂 .

TP-Link TL-MR-3420 V3 LEDE ( OpenWRT ) Custom Build

I re-patch this manually in current lede build.
In “menuconfig”, there is an option for “TL-MR3420 V3” profile. Good!!

This patch works basically,
– “lede-ar71xx-generic-tl-mr3420-v3-squashfs-factory.bin” was flashed and booted without any error
– LAN & WAN configured and works well now
– status LED works but other LED not
– USB storage is detected but 3G dongle not tested


  •  like other 4Mib flash router, space left in overlay/roots_data lefts only 492k
  • no space to install luci nor USB support package
  • – Seem extroot is solution but I want to use 3G dongle for usb.

Anyway, I have to rebuild firmware with removing some packages.
And any suggestion for which packages should be removed??

And some suggestion thankfully accepted 🙂 .

If you want to strip either PPPoE or IPv6, make sure you deselect the top LuCI entry as well, so you can deselect LuCI’s PPPoE support (and I think the same applies to IPv6).

you should be able to fit packages if you select them with “y” so they are integrated on build time. Build time integration compresses packages, 500k should be enough for luci and usb if integrated like that.

seem extroot is solution but I want to use 3G dongle for usb. >>

There are 3G/4G dongles with a microSD slot, you can do extroot there and be happy.
For example Huawei E3372h.
You can keep 3g/4g dongle tools in the extroot, as even if it does not detect the dongle’s modem it will detect the usb storage on it fine, so it will extroot and then detect the modem too.


3 – Third Attempt (Success)

Finally, tried to manage packages to fit in 4MiB. After removing some packages, custom build firmware worked fine with V-3 hardware.

For those who want to try, I build two versions. One for standalone and another for extroot support. Both versions removed ipv6 and pppoe supports.

1) This version supports
* Luci+bootstrap,
* 3G, usb, and
* ext-4 file system. Like @bobafetthotmail said, this version can detect SD card inside 3G-dongle.
* And I added mwan+luci-app-mwan3 for multi-wan support. Tested this also worked (Failed-over worked, load balancing is not tested)
Leaving about 104k space after flashed. Good point is you can still use extroot with this build (with ext-4, no vfat)


2) This version-2 is especially for extroot
* Luci+bootstrap,
* usb, and ext-4 and VFAT file system. This version can also detect SD card inside 3G-dongle.
* No mwan3 and no serial, no 3G dongle support. You can install whatever after extroot :slight_smile:
Leaving about 76k space after flashed.


By the way, Dear LEDE admin and developers, LEDE aimed for flash at least 8MiB, right!. But the problem is these cheap routers with USB support only have mostly 4MiB. Pls also consider for devices with 4M flash for some transition time.



thanks all,