Support for Asus ZenWiFi BT8 Tri-band Wifi7 (Mediatek MT7988)

OK, I am basically back on track :slight_smile:

I have been able to do:

mtd erase ubi
ubi part ubi

without dontskipbad and did not have any errors or bad blocks at all.
I have installed BL31+U-Boot, BL2, recovery system and production system of OpenWRT to NAND.

I have been able to set and save my ethaddr i U-Boot with:

MT7988> setenv eth1addr cc:28:aa:72:39:65
MT7988> setenv ethaddr cc:28:aa:72:39:64
MT7988> saveenv

The problem that many of you have warned me about - I am missing a backup of my original factory means that I dont have access to wired network when I am up and running OpenWRT.

What I do have is a complete bin-dump of my (broken) nand before I made erase - I am gonna try to extract and see if I can find anything in there with binwalk.

I also have a complete bin-dump of a brand new Asus BT8 and nanddump of mtd3 and mtd4 (factory 1 and factory 2) from the same new BT8.

If nothing of that will work I still have the option of running my BT8 with a USB3 to 2.5Gbps ethernet adapter making it a working AP.

must be Wireless network

Had not really come further than noticing that basic network seemed to be missing, but yes there is a:

 74.711318] mt7996e 0000:01:00.0: Message 00120057 (seq 8) timeout

Ok, thats the next thing to look at I guess.

wired, because of mac-address from the factory partition

https://git.openwrt.org/?p=openwrt/staging/dangole.git;a=blob;f=target/linux/mediatek/dts/mt7988d-asus-zenwifi-bt8.dts;h=ed0d79bc0e721b77f044d31141ff38a7ce95b53a;hb=6e69052a22f9f0e003d35813b6ca59aaf9dce076#l120

Some of you might have noticed that Im not too familiar with ubi and mtd (:wink:) in my production version of OpenWRT that I am currently running from nand I get:


root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00200000 00020000 "bl2"
mtd1: 07e00000 00020000 "ubi"

And under /dev/ I find:

crw-------    1 root     root       90,   0 Jan  1  1970 mtd0
crw-------    1 root     root       90,   1 Jan  1  1970 mtd0ro
crw-------    1 root     root       90,   2 Jan  1  1970 mtd1
crw-------    1 root     root       90,   3 Jan  1  1970 mtd1ro
brw-------    1 root     root       31,   0 Jan  1  1970 mtdblock0
brw-------    1 root     root       31,   1 Jan  1  1970 mtdblock1

crw-------    1 root     root      250,   0 Jan  1  1970 ubi0
crw-------    1 root     root      250,   1 Jan  1  1970 ubi0_0
crw-------    1 root     root      250,   2 Jan  1  1970 ubi0_1
crw-------    1 root     root      250,   3 Jan  1  1970 ubi0_2
crw-------    1 root     root      250,   4 Jan  1  1970 ubi0_3
crw-------    1 root     root      250,   5 Jan  1  1970 ubi0_4
crw-------    1 root     root      250,   6 Jan  1  1970 ubi0_5
crw-------    1 root     root       10, 127 Jan  1  1970 ubi_ctrl
brw-------    1 root     root      254,   0 Jan  1  1970 ubiblock0_4

But I dont have (and have not created) any UBI_DEV.

I assuming that this is normal (?)

ubinfo -a

you should have one fip and two uboot-env just from flashing uboot

root@OpenWrt:/dev# ubinfo -a
UBI version:                    1
Count of UBI devices:           1
UBI control device major/minor: 10:127
Present UBI devices:            ubi0

ubi0
Volumes count:                           6
Logical eraseblock size:                 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks:     1008 (127991808 bytes, 122.0 MiB)
Amount of available logical eraseblocks: 0 (0 bytes)
Maximum count of volumes                 128
Count of bad physical eraseblocks:       0
Count of reserved physical eraseblocks:  20
Current maximum erase counter value:     2
Minimum input/output unit size:          2048 bytes
Character device major/minor:            250:0
Present volumes:                         0, 1, 2, 3, 4, 5

Volume ID:   0 (on ubi0)
Type:        static
Alignment:   1
Size:        17 LEBs (2158592 bytes, 2.0 MiB)
Data bytes:  2097152 bytes (2.0 MiB)
State:       OK
Name:        fip
Character device major/minor: 250:1
-----------------------------------
Volume ID:   1 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        9 LEBs (1142784 bytes, 1.0 MiB)
State:       OK
Name:        ubootenv
Character device major/minor: 250:2
-----------------------------------
Volume ID:   2 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        9 LEBs (1142784 bytes, 1.0 MiB)
State:       OK
Name:        ubootenv2
Character device major/minor: 250:3
-----------------------------------
Volume ID:   3 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        61 LEBs (7745536 bytes, 7.3 MiB)
State:       OK
Name:        recovery
Character device major/minor: 250:4
-----------------------------------
Volume ID:   4 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        106 LEBs (13459456 bytes, 12.8 MiB)
State:       OK
Name:        fit
Character device major/minor: 250:5
-----------------------------------
Volume ID:   5 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        780 LEBs (99041280 bytes, 94.4 MiB)
State:       OK
Name:        rootfs_data
Character device major/minor: 250:6

you will need to delete rootfs_data and create volume Factory 1364KiB

for uboot

ubi remove rootfs_data

ubi create factory 0x155000 static
tftpboot $loadaddr factory.backup
ubi write $loadaddr factory 0x155000

ubi create rootfs_data - dynamic
3 Likes

Thanks romanovj :slight_smile: I took the factory.backup from the other BT8 and ran the commands in uboot - everything seems to work now, but not perfect.

As predicted, wireless has problems - it works, and is up for a while but then it disconnects.

I am aware that the reason is that Im not using my original factory file and am gonna continue trying to extract it from a complete backup.bin file I have.

3 Likes

And there...

I was able to extract ubi factory info from a backup I took after my unsuccessful firmware upgrade and rerun romanovj:s instructions - now (finally) everything works just like it should :smile:

Thanks to everyone that has helped me - I have learned a lot!

And a special thanks to the developers and romanovj that help me through the last mile :smiley:

... an extra thanks to remittor for all your special knowledge and knowhow :slight_smile:



6 Likes

these are sold for €165 atm so I snatched one to see if it's worth replacing the Flint 2.

2 Likes

As far as testing goes I can confirm that the version with stock loader works just fine.

I have been holding off trying the BT8 installer since there are no instructions yet and I dont want mess things up (again) :wink:

Since I purchased some more BT8 (the offer Gilgamesh is referring to - less than half of normal price) I now have one BT8 running OpenWRT with the OpenWRT custom uboot, one BT8 running OpenWRT with stock (Asus) uboot and one running Asus original firmware.

2 Likes

I look forward to official Openwrt support for this, I'm running it now with stock firmware and it will replace the Flint 2, nice to have the performance Cortex A73 cores (in this case 3 of them) from the ancient A53 cores, though it might not matter too much, but also this one blends in so much better against the white walls without external antennas.

3xA73@1.8GHz vs 4xA53@2.0GHz +40% in raw performance

yeah I know haha just thought for normal user maybe no big deal but yes A73 core much more powerful. :slight_smile:

Its weird, but it does have that option, however - only in AIMesh mode:

1 Like

I run it as normal router and I have the option to upload manual firmware.

It might have been in early versions of the original firmware that this function was missing - I upgraded when I tested the AIMesh setting.

So this is a very big plus for the option of creating firmware in the form of an TRX-image (for stock firmware and stock bootloader).

Yes, I will try to figure out from what version of the original firmware from Asus they added the possibility to upgrade from a local file.

I can confirm that its not possible to install asus original firmware with asus uboot web recovery after installing OpenWRT (the first version running stock uboot)

Edit: I think it was just in very first firmware

3.0.0.6.102_56199-gd950865_172-gbd161_M7EC

that shipped with routers manufactured in 2024, that was missing the ability to upload local firmware.

The first firmware published on the Asus website:

Version 3.0.0.6.102_56236

Has that function.

My most recent BT8 is manufactured in 2025 and came with a newer version of the firmware.