ZBT-Z8103AX bricked after sysupgrade - UBI recovery required

:sos_button: HELP: ZBT-Z8103AX Won't Boot After Sysupgrade - Recovery Needed

  • Device: ZBT-Z8103AX (MT7981)

  • Issue: Sysupgrade between custom OpenWrt 24.10.2 builds → won't boot

  • Status: NOT bricked (U-Boot works, InitRAMFS boots fine)

  • Need: How to recover persistent boot capability

What's Happening


ubi0 error: vtbl_check: too large reserved_pebs 751, good PEBs 512

UBI error: cannot attach mtd4

Kernel panic - not syncing: VFS: Unable to mount root fs

Root cause: U-Boot creates UBI volumes expecting 916 PEBs, but Linux only sees 512 PEBs available.

What Works :white_check_mark:

  • U-Boot console access

  • InitRAMFS boots perfectly (all hardware functional)

  • TFTP/Ymodem file transfers

  • Original device with different build works fine

What I Need :sos_button:

Any working solution to get persistent firmware booting again.

Specific Questions:

  1. Boot parameters: How to force Linux to see full UBI partition size?

  2. UBI rebuild: Commands to recreate volumes within 512 PEB limit?

  3. Compatible firmware: Anyone have working custom ZBT-Z8103AX build?

  4. Recovery method: Alternative approach that bypasses this issue?

Failed Attempts :cross_mark:

  • Various ubi.mtd= boot parameters

  • Complete MTD erase and recreation

  • Factory firmware → same issue

  • U-Boot environment changes

Quick Details


U-Boot partition: mtd6, 114 MiB, 916 PEBs ← Works

Linux partition: mtd4, 64 MiB, 512 PEBs ← Fails

Help Appreciated

  • ZBT-Z8103AX users: Seen this before? How did you fix it?

  • OpenWrt devs: Standard way to handle UBI volume table mismatches?

  • Anyone: Even hacky workarounds welcome!

Have serial console access and can test any suggestions. Device is recoverable - just need the right approach.

Quick responses much appreciated! :folded_hands:

Waay too much (AI ?) text in the post, TLDR.

recreate the original layout from within the initramfs, attempt to flash again, afterwards.

Thanks for the reply! Sorry for the long post, Made it short. I have tried recreating original layout within initramfs, at certain point that is failing. Let me try again and get back here.

The layout Openwrt expects is in the PR -
https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=target/linux/mediatek/dts/mt7981b-zbtlink-zbt-z8103ax.dts;h=2b079f5bcac6afb143329bc81d69826ac393a171;hb=4300bc668819a77226b6e8ea079d3067f216e7bb

Thanks @frollic for the dts. Finally found the issue. The ubi partition is having a different address range. This would the correct partition.

   partition@580000 {
                            label = "ubi";
                            reg = <0x580000 0x7280000>;
                    };

This needs to be patched.