Hi everyone,
I would like to share my experience trying to get OpenWrt running on a Mercusys MR80X v4.0 (BR), using firmware intended for the v3 hardware, since both versions appear to share the same SoC (MediaTek MT7981) and very similar hardware.
Device details
- Model: Mercusys MR80X v4.0 (Brazil version)
- SoC: MediaTek MT7981
- Flash: SPI-NAND (128MB)
- Bootloader: Vendor U-Boot (custom Mercusys implementation)
- Storage layout: UBI with dual firmware partitions (
ubi0/ubi1)
Initial assumption
Based on hardware inspection, v4.0 seems nearly identical to v3.0 (same SoC, memory, etc.), so I attempted to use OpenWrt images built for MR80X v3.
What I managed to do
Booting OpenWrt (initramfs)
Using serial console + TFTP, I was able to:
tftpboot 0x46000000 openwrt-initramfs.bin
bootm 0x46000000
This worked successfully.
OpenWrt booted and was fully functional (network, Wi-Fi, LuCI, etc.).
Flashing via LuCI / sysupgrade
From the initramfs environment, I uploaded a sysupgrade image and ran:
sysupgrade -F -n /tmp/fw.bin
The upgrade process completed successfully, including:
- UBI formatting
- Creation of volumes:
kernelrootfsrootfs_data
No errors during flashing.
Main problem
After reboot, the device does not boot OpenWrt.
Instead, serial output shows:
Cannot find volume 'uboot'
Cannot find volume 'rootfs'
ubi_boot_image: try two times failed
Start web server.
The device then enters recovery mode (web server at 192.168.1.1).
Root cause (analysis)
The issue appears to be bootloader incompatibility, not flashing failure.
The Mercusys bootloader:
- Uses a custom UBI layout
- Expects specific volume names (e.g.
uboot) - Does NOT follow standard OpenWrt UBI layout
OpenWrt creates:
kernelrootfsrootfs_data
But the bootloader tries to read:
volume 'uboot'
→ which does not exist in standard OpenWrt installations.
Dual firmware behavior
The bootloader cycles between:
ubi1ubi0
Trying both slots, but failing in both because the expected volume layout is missing.
Attempts to fix
Tried:
- Forcing boot partition (
tp_boot_idx) - Manually creating UBI volumes via U-Boot:
ubi create uboot
ubi write ...
- Direct NAND flashing (
nand write) - Rebuilding UBI manually
None of these resulted in a stable boot.
Observations
- OpenWrt does install correctly
- UBI is valid and clean
- Kernel + rootfs are present and written
- But bootloader refuses to boot due to layout mismatch
Conclusion
This device likely requires one of the following:
- Proper OpenWrt support for MR80X v4
- Including compatible UBI layout and partition definitions
- Bootloader modification or replacement
- To support standard OpenWrt layout
- Custom image with vendor-compatible UBI volume names
- Possibly including a
ubootvolume or adjusted structure
Questions
- Has anyone successfully ported OpenWrt to MR80X v4?
- Is there a known way to adapt OpenWrt images to Mercusys UBI layout?
- Any documentation on this bootloader behavior?
Final note
Even though the hardware is nearly identical to v3, the bootloader behavior makes it incompatible out-of-the-box.
OpenWrt runs perfectly via initramfs, but persistent installation fails due to boot expectations.
Thanks in advance for any insights ![]()