ZBT Z8103AX-D: upgrading from 21.02 to 23.05

I'm sorry nyzxx, it seems I messed up and shared a wrong bin file as it turned out when I tried to flash my second router with it... :frowning_face:

Please give the below bin file a chance and hopefully it will work.

openwrt-mediatek-filogic-zbtlink_zbt-z8103ax-squashfs-sysupgrade_v2.bin

It worked!
Thank you so much for this build.
What files did you make changes to? - Just for future build purposes.

Cool, I'm glad it worked on your device as well :slight_smile:

Sure, based on the content of the original firmware's boot log I noticed 2 differences compared to the current dts file in git

0x000000000000-0x000000100000 : "BL2"
0x000000100000-0x000000180000 : "u-boot-env"
0x000000180000-0x000000380000 : "Factory"
0x000000380000-0x000000580000 : "FIP"
0x000000580000-0x000020580000 : "ubi"

  • the "bl2" partition's name has been renamed/uppercase to "BL2" git link
  • the size of ubi partition is increased so I changed the "0x4000000" to "0x20000000" git link

Thats all I changed and just called the make command and it generated the "proper" flash image.

Please note after the ubi size change I get the below entry in the boot log (just like in the original): "mtd: partition "ubi" extends beyond the end of device "nmbm_spim_nand" -- size truncated to 0x7280000"

so probalby the "0x20000000" value is too much but that is in the orginal image as well and as it solves itself automatically I can live with that :slight_smile:

Awesome, thanks.
Can you also share your .config you used to build?

Sure, please find it here: .config

Much appreciated!

Thanks for your update. Though one of my router worked (UART or Uboot menu) my second router is still not upgradable. It turns out that it has a different original firmware. UART menu does not have the same options as the newer version of the router. Can't get to U-boot menu from reboot+reset button too!! I tried to use the sysupgrade image @sese shared on the original router's luci upgrade page, but always getting 'Incorrect file type' error!!! I tried the official images from OpenWrt release too.

Many thanks! Flashed mine aliexpress z8103AX via gui, just forced upgrade and unchecked keep settings.

1 Like

Hi Sese

First of all, many thanks for helping the community.

I've got two models of the ZBT Z8103AX... "D" and "E" - both are the same inside, it's just the case that is different (confirmed by the manufacturer).

Your v2 image linked above works fine on my device and allowed me to upgrade it via sysupgrade just fine -thanks!

I then proceeded to build my own openwrt but when flashing the sysupgrade file from luci, all appeared fine but when it rebooted it was in uboot recovery mode so it didn't like something. Was sysupgrade the correct image to flash, from your v2 image? Or should I have just flashed kernel?

The only change I made from the trunk openwrt branch was changing the two lines in target/linux/mediatek/dts/mt7981b-zbtlink-zbt-z8103ax.dts as per your changes posted above.

Any thoughts on why the build didn't work?

Thanks

1 Like

Also, what OpenWRT build revision did you compile your working version against?

Thanks

1 Like

I've fixed this. I mistakedly missed used 0x2000000 instead of 0x20000000 when I changed the dts! All good now. Thanks!

1 Like

Hi, can you share your snapshot?

I don’t know exactly what’s wrong with this router…
I tried to make my own build, with blackjack and... extras. Nothing special, I used @sese's config and made two tweaks in the DTS, set the size correctly right away:

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

But that didn’t really change anything. I added the SQM package and built the firmware.
An attempt to flash it through the OpenWRT web interface... It flashed, but it starts up with an error about the inability to write a certain number of UBI blocks?. Unfortunately, I lost the log :(, sorry don't exactly remember what was it. But anyway, after several failed attempts, I figured out one thing: @sese's firmware, or my own build, only loads and works if I use Web failsafe mode. Even then, if the router boots and I try to flash it again with the same firmware through the OpenWRT web interface, I get the same UBI data loading error..

Overall, the preliminary conclusion is that, on the snapshot, I'm having issues at least with the fact that even if a client connects, traffic doesn't go beyond the access point, and this happens randomly, usually within a day or less, at least on 2.4GHz. Sometimes it can work for several days. Reboot always helps. I'm not sure if it matters, but I’m using the OpenWrt based router as a wireless AP and have VLANs configured to connect to the main router. There’s nothing unusual in the logs. The traffic simply doesn’t reach the main router. I’m currently on the third day of testing version 23.05.5 with the same settings, and so far, no issues.

EDIT:

Ended up with

Just flashed 23.05.5 for Z8103AX from openwrt website via websafe and then checked that i can flash it via LUCI, everything is just fine!

Hi @darknblack, I am trying to follow your steps for ZBT Z8103AX-G or zbtlink,z8103ax-pro. I have a 21.02 binary image from which I extracted the dtb file, but I don't know which dtc to use to convert into dts, which one did you use?

I am on Manjaro and there is a dtc package which I installed and ran:

dtc -I dtb -O dts -o dtb/02_dtbdump_zbtlink,z8103ax-pro.dtb

But it seems to be stuck.

I saw that it may be part of the kernel source but do I need to build it from the OpenWRT source?

Thanks!

Nevermind, installed dtc on my old router and ran it there, got the dts.

Does not seem that different from the "non-pro" version, I am thinking about force updating to see if it even boots, I swear that it came with a 2023 image that did not announce the router as "PRO", but I updated to the 2024 image provided from the manufacturer and now my wan port is not working. I do see a difference on the eth config.

Can you confirm this router has mediatek radios? on some aliexpress listings they say QCN5022 QCN5052 which i don't absolutely want

Hi!
I am pretty sure it does, but I can double check if someone tells me how.
As I said, it came with a non "pro" 21.x image of OpenWRT that worked fairly well but was missing a lot of packages when upgrading via opkg, I updated to the image they provided but my wan eth0 stopped working (seems like its trying to connect at 2500-x and wont allow anything else).

Anyway, here is the link to Ali express page.

I opened the case and the PCB looks a lot like the one posted here by sese back in July.

I have a UART adapter and was also able to connect and see it boot, but I did not want to keep it disassembled for too long out of fear of breaking the antenna connections which are directly soldered to the PCB.

I can post the OpenWRT binary image provided by the seller if required.

Thanks!

Ok, got mine, flashed with official version, ofc no longer boots, complains when attaching ubi


mtdparts=nmbm0:1024k(bl2),512k(u-boot-env),2048k(factory),2048k(fip),524288k(ubi)

I think that is the culprit because the used MT7981 ref board which likely had 512MB flash, this router has 128MB

MT7981> nand info
'spi-nand0' is now active device
* spi-nand0
  - device: spi_nand@0
  - parent: spi@1100a000
  - driver: spi_nand
  - type: NAND flash
  - block size:        0x20000 bytes
  - page size:         0x800 bytes
  - OOB size:          64 bytes
  - OOB available:     24 bytes
  - 0x000000000000-0x000008000000 : "spi-nand0"
MT7981>

[    1.013356] ubi0: attaching mtd4
[    1.193792] ubi0: scanning is finished
[    1.197567] ubi0 error: 0xffffffc0805c8564: the layout volume was not found
[    1.204620] ubi0 error: 0xffffffc0805cc3ac: failed to attach mtd4, error -22
[    1.211721] UBI error: cannot attach mtd4
[    1.215830] clk: Disabling unused clocks
[    1.220505] /dev/root: Can't open blockdev
[    1.224609] VFS: Cannot open root device "" or unknown-block(0,0): error -6
[    1.231576] Please append a correct "root=" boot option; here are the available partitions:
[    1.239928] 1f00            1024 mtdblock0 
[    1.239933]  (driver?)
[    1.246450] 1f01             512 mtdblock1 
[    1.246454]  (driver?)
[    1.252975] 1f02            2048 mtdblock2 
[    1.252979]  (driver?)
[    1.259499] 1f03            2048 mtdblock3 
[    1.259503]  (driver?)
[    1.266018] 1f04           65536 mtdblock4 
[    1.266022]  (driver?)
[    1.272547] List of all bdev filesystems:
[    1.276543]  ext3

I could change mtdparts like one above did, yes, but i will need to flash many of these so i check if i can fix it with a specialized build without touching uboot env, openwrt is building as i write...

1 Like

So basically ubi partition has to be correct size , the correct size is ubi end - ubi start

ubi end i got from "mtd part" command from uboot

( 0x000007800000-0x000000580000) = 0x7280000

By patching only that in the DTS, creating a new target, everything works, flashing from failsafe, and from openwrt snapshot itself, can't test on orig firmware because it is gone

Attached is a build for who wants to try

Please give me feedback on upgrade from stock firmware , and for the -E variant if someone has

1 Like