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

iw dev 
phy#0
	Unnamed/non-netdev interface
		wdev 0x2
		addr 58:cd:c9:4d:fb:bd
		type P2P-device
	Interface wlP4p1s0
		ifindex 2
		wdev 0x1
		addr 58:cd:c9:4d:fb:bd
		ssid TP-Link_EFAC_MLO
		type managed
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0
		MLD with links:
		 - link ID  1 link addr 6e:da:46:85:53:d4
		   channel 40 (5200 MHz), width: 160 MHz, center1: 5250 MHz
		   txpower 18.00 dBm
		 - link ID  2 link addr f6:90:5a:28:d6:69
		   channel 69 (6295 MHz), width: 320 MHz, center1: 6265 MHz
		   txpower 18.00 dBm

This is from a Ubuntu 26.04 Kernel7 computer with a with a qualcomm QCNCM865 Wifi7 adapter connected to a TP-Link Wifi7 MLO router running original firmware (not OpenWRT)

And it turns out that I did not set up MLO correctly on my BT8 with the original firmware - when i do that I get:

iw dev 
phy#0
	Unnamed/non-netdev interface
		wdev 0x2
		addr 58:cd:c9:4d:fb:bd
		type P2P-device
	Interface wlP4p1s0
		ifindex 2
		wdev 0x1
		addr 58:cd:c9:4d:fb:bd
		ssid BT8_MLO
		type managed
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0
		MLD with links:
		 - link ID  0 link addr ea:06:5f:74:7e:cf
		   channel 5 (2432 MHz), width: 20 MHz, center1: 2432 MHz
		   txpower 0.00 dBm
		 - link ID  1 link addr ea:33:59:f6:5b:63
		 - link ID  2 link addr d6:5f:da:12:01:18
		   channel 85 (6375 MHz), width: 160 MHz, center1: 6345 MHz
		   txpower 0.00 dBm

	SSID: BT8_MLO
	Link 0 BSSID ce:28:aa:5e:40:58
		freq: 2432.0
	Link 2 BSSID ce:28:aa:4e:40:5a
		freq: 6375.0
	Link 1 BSSID ce:28:aa:4e:40:59
		freq: 5180.0
MLD 06:28:aa:6e:40:58 stats:
	RX: 16666115 bytes (20330 packets)
	TX: 8796977 bytes (6416 packets)
	signal: -47 dBm
	rx bitrate: 1297.1 MBit/s 160MHz EHT-MCS 6 EHT-NSS 2 EHT-GI 0
	tx bitrate: 864.6 MBit/s 160MHz EHT-MCS 4 EHT-NSS 2 EHT-GI 0
	bss flags: 
	dtim period: 1
	beacon int: 100

Nice to have something to go after when I try to get the correct setup on my BT8 with OpenWRT :slight_smile:

1 Like

Lots more changes dropping for MT76 in Linux 7.1, https://www.phoronix.com/news/MediaTek-MT76-Linux-7.1 including some further MLO improvements.

1 Like

OpenWrt has its own mt76 repo.

And AFAIK, all those patches are in 25.12.2 or snapshot already.

@Pulver Now use wireshark and grab the relevant beacon frames. Compare TPlink, BT8 OEM, and BT8 openwrt/snapshot.

I look into that, at the same time Im helping the people working on rtw89 (realtek wifi7 usb) to get MLO to work.

Noticed one really disturbing thing in the Original Asus web-settings.

My MLO connected computer is not identified as a "Lenovo Slim 7x/Qualcomm wifi7" - the connection is in fact really slow and its identified as:

Cloud Network Technology Singapore ?

Sounds like Asus is sending everyting I do for ad-analysis.

1 Like

https://www.reddit.com/r/HomeNetworking/comments/d7klgw/cloud_network_technology_samoa/

Normal if you confirm the mac address. It's your wifi card getting reported as that. Asus is not spying.

OK, thanks - just sounded suspicious.

Still, its things like this that make me prefer OpenWRT where you can trust that no one is spying on you, selling your information or opening backdoors for govervents to take control.

Guess this is the best I will get with spectrum the bufferbloat is bad. With sqm off i can get just over 1100Mb down. Maybe high split will fix that maybe not. The 6ghz wifi I had to set the country code to GB as I do not want to compile from scratch with the regdb patch.

SQM should do gigabit with ease unless your connection is that bad. I think JP may be a better choice over GB.

Or binary apk available that may work:

Compiling from source isn't bad as you are only generating wireless-regdb.

1 Like

I just got a pair of BT8’s to try and flash OpenWRT on. However, I’m failing at the first step, which is to try to get to Uboot Recovery… If I hold reset and power on the device, I see a green LED for a second then it just flashes red non-stop. I tried holding reset for 60s, no dice.

I’ll try to boot the device normally, log in, maybe update FW, and see if that helps (I never logged in to it even, I just want OpenWRT :)).

Edit: after setting up the router (accepting EULA, setting admin password, setting as AP) I still can’t get it to boot into the uboot recovery :confused: If I have time this weekend I’ll try to get to the serial connection.

Edit: after reading https://github.com/dangowrt/owrt-ubi-installer/tree/asus-bt8 I saw that they mentioned the red flashing LED is OK! It turns out I wasn’t setting my subnet mask and that was preventing access /facepalm.

Fixed the wiki to mention red. Unknown what firmware/hardware revision combo does that. It should be magenta. Maybe certain color-blind people see magenta as red.

1 Like

Finally installed 25.12.2.

Also selling my WiFi 7 client as I don't need the headache

Thanks! I’m not colorblind (I can definitely see the difference between magenta and red). The pattern is different too, there is no green flashing and the red flash happens immediately after one second of solid green.

Early (firmware) versions of BT8 (that you can still find in stores) has blinkning red light for recovery mode but it changed in later firmware versions.

If you update BT8 to the latest (Asus) firmware it will have the magenta light for recovery mode.

2 Likes

@cookiemonster what TX power for all 3 radios do individuals from Japan (JP) get on this hardware? is it anywhere near 29 dBm?

(https://git.kernel.org/pub/scm/linux/kernel/git/wens/wireless-regdb.git/tree/db.txt)

country JP: DFS-JP
	(2402 - 2482 @ 40), (20)
	(2474 - 2494 @ 20), (20), NO-OFDM
	(4910 - 4990 @ 40), (23)
	(5170 - 5250 @ 80), (20), AUTO-BW
	(5250 - 5330 @ 80), (20), DFS, AUTO-BW
	(5490 - 5730 @ 160), (23), DFS
	(5925 - 6425 @ 320), (200 mW), NO-OUTDOOR
	# 60 GHz band channels 2-4 at 10mW,
	# ref: http://www.arib.or.jp/english/html/overview/doc/1-STD-T74v1_1.pdf
	(57000 - 66000 @ 2160), (10 mW)

Legally, only use it for quick testing.


A person recently just built the .db instead of the .apk with reported success.

git clone https://git.kernel.org/pub/scm/linux/kernel/git/wens/wireless-regdb.git
cd wireless-regdb
# edit db.txt: remove NO-IR from the US 6GHz line
python3 db2fw.py regulatory.db db.txt
sudo cp /usr/lib/firmware/regulatory.db /usr/lib/firmware/regulatory.db.bak
sudo cp regulatory.db /usr/lib/firmware/regulatory.db

That actually worked for me. Though on openwrt 25.12.2 it was /lib/firmware/regulatory.db instead of /usr/lib/firmware.

1 Like

Here is the patch I use:

If you use the above, remember to set tx power; mine ran at max power if left as auto.

If another person responds that this works, I'll add it to the wiki.

Note that on the W1700k, it will run at tx max power no matter what you set it at or what is shown on luci.

I suspect it works the same way on the BT8, since they share the same mt76 codebase.

sku_disable doesn't exist on BT8.

iw dev and /sys/kernel/debug/ieee80211/phy0/user_power shows correct set tx power rate. Anecdotal - 5/6Ghz range dropped after lowering.

Anywhere else to check tx power?

1 Like