[Banana BPI-R4] Wifi7 status

update: board2.bin https://easyupload.io/h2qupn from COMpex now initialize card as it should be:
but have the same issue with 6GHZ not enabled:

		Frequencies:
			* 5935.0 MHz [2] (disabled)
			* 5955.0 MHz [1] (disabled)
			* 5975.0 MHz [5] (disabled)
			* 5995.0 MHz [9] (disabled)
			* 6015.0 MHz [13] (disabled)
			* 6035.0 MHz [17] (disabled)
			* 6055.0 MHz [21] (disabled)
			* 6075.0 MHz [25] (disabled)
			* 6095.0 MHz [29] (disabled)
			* 6115.0 MHz [33] (disabled)
			* 6135.0 MHz [37] (disabled)
			* 6155.0 MHz [41] (disabled)
			* 6175.0 MHz [45] (disabled)
			* 6195.0 MHz [49] (disabled)
			* 6215.0 MHz [53] (disabled)
			* 6235.0 MHz [57] (disabled)
			* 6255.0 MHz [61] (disabled)
			* 6275.0 MHz [65] (disabled)
			* 6295.0 MHz [69] (disabled)
			* 6315.0 MHz [73] (disabled)
			* 6335.0 MHz [77] (disabled)
			* 6355.0 MHz [81] (disabled)
			* 6375.0 MHz [85] (disabled)
			* 6395.0 MHz [89] (disabled)
			* 6415.0 MHz [93] (disabled)
			* 6435.0 MHz [97] (disabled)
			* 6455.0 MHz [101] (disabled)
			* 6475.0 MHz [105] (disabled)
			* 6495.0 MHz [109] (disabled)
			* 6515.0 MHz [113] (disabled)
			* 6535.0 MHz [117] (disabled)
			* 6555.0 MHz [121] (disabled)
			* 6575.0 MHz [125] (disabled)
			* 6595.0 MHz [129] (disabled)
			* 6615.0 MHz [133] (disabled)
			* 6635.0 MHz [137] (disabled)
			* 6655.0 MHz [141] (disabled)
			* 6675.0 MHz [145] (disabled)
			* 6695.0 MHz [149] (disabled)
			* 6715.0 MHz [153] (disabled)
			* 6735.0 MHz [157] (disabled)
			* 6755.0 MHz [161] (disabled)
			* 6775.0 MHz [165] (disabled)
			* 6795.0 MHz [169] (disabled)
			* 6815.0 MHz [173] (disabled)
			* 6835.0 MHz [177] (disabled)
			* 6855.0 MHz [181] (disabled)
			* 6875.0 MHz [185] (disabled)
			* 6895.0 MHz [189] (disabled)
			* 6915.0 MHz [193] (disabled)
			* 6935.0 MHz [197] (disabled)
			* 6955.0 MHz [201] (disabled)
			* 6975.0 MHz [205] (disabled)
			* 6995.0 MHz [209] (disabled)
			* 7015.0 MHz [213] (disabled)
			* 7035.0 MHz [217] (disabled)
			* 7055.0 MHz [221] (disabled)
			* 7075.0 MHz [225] (disabled)
			* 7095.0 MHz [229] (disabled)
			* 7115.0 MHz [233] (disabled)
	valid interface combinations:
		 * #{ managed } <= 1, #{ AP, mesh point } <= 16,
		   total <= 16, #channels <= 1, STA/AP BI must match, radar detect widths: { 20 MHz (no HT), 20 MHz, 40 MHz, 80 MHz }


@ DroZDi did you achieve 160mhz bandwith on 5GHZ ath12k? Qualcomm WCN6856

i got this error:

wlp7s0: DFS-CAC-START freq=5540 chan=108 sec_chan=1, width=2, seg0=114, seg1=0, cac_time=600s
nl80211: Start radar detection (CAC) 5540 MHz (ht_enabled=1, vht_enabled=1, he_enabled=1, bandwidth=160 MHz, cf1=5570 MHz, cf2=0 MHz)
  * freq=5540
  * eht_enabled=1
  * he_enabled=1
  * vht_enabled=1
  * ht_enabled=1
  * radar_background=0
  * bandwidth=160
  * channel_width=5
  * center_freq1=5570
  * center_freq2=0
nl80211: kernel reports: (extension) channel is disabled
nl80211: Failed to start radar detection: -22 (Invalid argument)

I think you have the wrong center frequency here - shouldn't it be 5530? I don't think you can use 160MHz with channel 108.

Is this a regulatory domain issue?

i have tried all of them.... no luck..
can yo umaybe try, and then share with me your settings . remove sensitive data
please

I am using openwrt, not debian. I'll check it out a little later and post what I have :slight_smile:

OH SHOOT, I just realized that you are talking about the ath12k series. That's what I am using as a client device, not host. My host is the BPI card

with more logging i got this: while trying to achieve 160Mhz

[Fri Mar 28 11:36:04 2025] br-lan: port 7(wlp7s0) entered disabled state
[Fri Mar 28 11:36:20 2025] wlp7s0: start-radar-detection, starting dfs-cac-timer-work.
[Fri Mar 28 11:36:52 2025] br-lan: port 7(wlp7s0) entered disabled state
[Fri Mar 28 11:37:54 2025] chandef-usable, ch-160 not supported, ext-nss-bw issue
[Fri Mar 28 11:37:54 2025] br-lan: port 7(wlp7s0) entered disabled state

Enabling ASPM on the PCIe bus can significantly improve Wi-Fi noise level on the BE14 with no immediate drawbacks. Is there a reason why it's not enabled by default in OpenWrt and can it be enabled during build time instead of a post-installation command/script?

4 Likes

To answer my own question, I opened the file target/linux/mediatek/filogic/config-6.6 in the OpenWrt build root and swapped these two parameters around. Now the kernel defaults to powersave as the ASPM governor.

CONFIG_PCIEASPM_PERFORMANCE=y
# CONFIG_PCIEASPM_POWERSAVE is not set
4 Likes

Did you open an issue / MR on github's openwrt over this ?

It might be too soon to do until more people confirm there's no drawbacks to this change. I, for one, have only tested it with the 2 and 5 GHz bands active. By the way, using "powersupersave" instead of "powersave" seems to negatively affect Wi-Fi throughput.

1 Like

It depends on the Wi-Fi SoC how much power-saving affects performance. It should be a user-facing configuration option with a reasonable default (not superpowersave).

"powersave" works for me and gains about 5-6dbm on 2 different bpi-r4, been using it for a couple of weeks now without additional problems. Did not check the throughput.

I do have instability with multiple SSID per interface in last Friday's snapshot that I did not have a month ago, but I have those even without the "powersave", so they are unrelated.

Last month I also had weird problems on ssh where interactive ssh connections (to the router or other internal server) would hang, but ssh commands would have no problems. Only on wifi. Restarting the wireless interface a couple of times would solve the issue for a while.
Luckily that is gone now, that was maddening,

I saw this commit: https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=372c2ea65612fc86039f441be16714df249cd063
that merged new mt76 commits.

Just finished trying it (did not try wifi7/be)

I still have the same problems as before:

  • it is still very unstable with multiple ssid
  • it still requires "powersave" for better noise margin (~5dbm)
  • restarting the 2.4g device can drop you out of the 6ghz and vice versa...

example of problems on multiple ssid:
my IoT network does does not work at boot (have to disable/enable) and when I enable it I start having all sort of issues with the other network, sometimes packet loss, other times no internet (but no packet loss), ssh connections on a local (wired) server hanging after login, can't connect via ssh to the router...

...anyone has any workaround for the multiple ssid? I kinda need the IoT network...

Has anyone looked into this issue when LuCi gets stuck on the reading lowest on the list of Wi-Fi noise values? Here CLI returns different values from iw phy0.0-ap0 survey dump, but it's all the same noise level in LuCi.

Survey data from phy0.0-ap0
	frequency:			2412 MHz [in use]
	noise:				-82 dBm
Survey data from phy0.0-ap0
	frequency:			5660 MHz [in use]
	noise:				-91 dBm
Survey data from phy0.0-ap0
	frequency:			6215 MHz [in use]
	noise:				-80 dBm

I've opened a bug report on GitHub, but the OpenWrt bug tracker is clearly overwhelmed now.

I would love to get the wrong noise reporting solved. With limited knowledge I looked into the code:

  • LuCi uses iwinfo to get the noise Source
  • iwinfo uses a header called nl80211 Source
  • nl80211 acts as a interface for acessing the kernel/driver Source

From here I am lost and don't how to continue finding the root cause.

1 Like

Another long-standing LuCi issue is the inability to launch channel scans on the 5 and 6 GHz bands. The results come up empty. It scans just fine with iw phy0.1 scan, though.

1 Like

I managed to get to the bottom of it. The three bands of the BE14 appear as belonging to the same Phy. Look for "wiphy":

root@home-rt-edge-1:~# iw dev phy0.1-ap0 info
Interface phy0.1-ap0
	ifindex 12
	wdev 0x3
	addr 
	ssid home-ap-1
	type AP
	wiphy 0
	channel 132 (5660 MHz), width: 80 MHz, center1: 5690 MHz
	txpower 20.00 dBm
	multicast TXQ:
		qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
		0	0	29829	0	0	0	2	28150887		29970
	Radios: 0 1 2
root@home-rt-edge-1:~# iw dev phy0.0-ap0 info
Interface phy0.0-ap0
	ifindex 10
	wdev 0x1
	addr 
	ssid home-ap-1
	type AP
	wiphy 0
	channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
	txpower 15.00 dBm
	multicast TXQ:
		qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
		0	0	29931	0	0	0	28625	28241957		30158
	Radios: 0
	root@home-rt-edge-1:~# iw dev phy0.2-ap0 info
Interface phy0.2-ap0
	ifindex 16
	wdev 0x6
	addr 
	ssid home-ap-1
	type AP
	wiphy 0
	channel 53 (6215 MHz), width: 320 MHz, center1: 6105 MHz
	txpower 23.00 dBm
	multicast TXQ:
		qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
		0	0	0	0	0	0	0	0		0
	Radios: 0 1 2

As the result, iwinfo reports the same noise value for each radio. The higher channels are lower on the list, so that's what LuCi picks up from iwinfo.

phy0.0-ap0 ESSID: "home-ap-1"
          Access Point:
          Mode: Master  Channel: 1 (2.412 GHz)  HT Mode: HE20
          Center Channel 1: 1 2: unknown
          Tx-Power: 15 dBm  Link Quality: 54/70
          Signal: -56 dBm  Noise: -78 dBm
          Bit Rate: 65.0 MBit/s
          Encryption: mixed WPA2/WPA3 PSK/SAE (CCMP)
          Type: nl80211  HW Mode(s): 802.11ac/ax/b/be/g/n
          Hardware: 14C3:7990 14C3:6639 [MediaTek MT7996E]
          TX power offset: none
          Frequency offset: none
          Supports VAPs: yes  PHY name: phy0

phy0.1-ap0 ESSID: unknown
          Access Point: 
          Mode: Master  Channel: 132 (5.660 GHz)  HT Mode: EHT80
          Center Channel 1: 138 2: unknown
          Tx-Power: 20 dBm  Link Quality: 44/70
          Signal: -66 dBm  Noise: -78 dBm
          Bit Rate: 383.8 MBit/s
          Encryption: unknown
          Type: nl80211  HW Mode(s): 802.11ac/ax/b/be/g/n
          Hardware: 14C3:7990 14C3:6639 [MediaTek MT7996E]
          TX power offset: none
          Frequency offset: none
          Supports VAPs: yes  PHY name: phy0

phy0.1-ap1 ESSID: unknown
          Access Point: 
          Mode: Master  Channel: 132 (5.660 GHz)  HT Mode: EHT80
          Center Channel 1: 138 2: unknown
          Tx-Power: 20 dBm  Link Quality: unknown/70
          Signal: unknown  Noise: -78 dBm
          Bit Rate: unknown
          Encryption: unknown
          Type: nl80211  HW Mode(s): 802.11ac/ax/b/be/g/n
          Hardware: 14C3:7990 14C3:6639 [MediaTek MT7996E]
          TX power offset: none
          Frequency offset: none
          Supports VAPs: yes  PHY name: phy0

phy0.2-ap0 ESSID: "home-ap-1"
          Access Point: 
          Mode: Master  Channel: 53 (6.215 GHz)  HT Mode: EHT320
          Center Channel 1: 31 2: unknown
          Tx-Power: 23 dBm  Link Quality: unknown/70
          Signal: unknown  Noise: -78 dBm
          Bit Rate: unknown
          Encryption: WPA3 SAE (CCMP)
          Type: nl80211  HW Mode(s): 802.11ac/ax/b/be/g/n
          Hardware: 14C3:7990 14C3:6639 [MediaTek MT7996E]
          TX power offset: none
          Frequency offset: none
          Supports VAPs: yes  PHY name: phy0

iw survey dump returns the same channel list regardless of the virtual interface selected, too.

Is this how the MT7995AV + MT7976CN + MT7977IAN combo of chips found on the BE14 board supposed to work, or is it a software shortcoming that needs to be fixed?

Regardless, I think iwinfo needs a more robust parsing function (source) to be able to tell apart separate radios which belong to the same Phy. The BE14 might not be the only device that does this.

i think it hase something with MLO support.
after kernel 6.15(https://lore.kernel.org/lkml/20250326163652.2730264-1-kuba@kernel.org/), my QCA9274 (ath12k) now shows just one phy with two band's.

Mediatek MLO only has been ported to openwrt, ath12k still not, so i could not figure out hostapd.conf settings for two bands.

Before are two phy's

Could you please,
dump your hostapd.conf here please...?
ps |grep hostapd

just remove your sensitive data, like passwords, and mac addresess,,names...

Thnx..

ps. i do not have configuration of hostapd.conf for one phy and multiple bands..