[Banana BPI-R4] Wifi7 status

In fact, I created a patch to iwinfo which resolves the issue by filtering survey dump entries by frequency. Only for the NL80211 backend, though, but I'm not sure the other ones a still relevant.

--- a/iwinfo_nl80211.c
+++ b/iwinfo_nl80211.c
@@ -1688,7 +1688,11 @@ static int nl80211_get_signal(const char
 
 static int nl80211_get_noise_cb(struct nl_msg *msg, void *arg)
 {
-	int8_t *noise = arg;
+	struct {
+		int8_t *noise;
+		int *freq;
+	} *args = arg;
+
 	struct nlattr **tb = nl80211_parse(msg);
 	struct nlattr *si[NL80211_SURVEY_INFO_MAX + 1];
 
@@ -1704,22 +1708,33 @@ static int nl80211_get_noise_cb(struct n
 	                     tb[NL80211_ATTR_SURVEY_INFO], sp))
 		return NL_SKIP;
 
-	if (!si[NL80211_SURVEY_INFO_NOISE])
+	if (!si[NL80211_SURVEY_INFO_NOISE] || !si[NL80211_SURVEY_INFO_FREQUENCY])
 		return NL_SKIP;
 
-	if (!*noise || si[NL80211_SURVEY_INFO_IN_USE])
-		*noise = (int8_t)nla_get_u8(si[NL80211_SURVEY_INFO_NOISE]);
+	if (!*args->noise ||
+		(nla_get_u32(si[NL80211_SURVEY_INFO_FREQUENCY]) == *args->freq &&
+		si[NL80211_SURVEY_INFO_IN_USE])) {
+			*args->noise = (int8_t)nla_get_u8(si[NL80211_SURVEY_INFO_NOISE]);
+	}
 
 	return NL_SKIP;
 }
 
-
 static int nl80211_get_noise(const char *ifname, int *buf)
 {
 	int8_t noise = 0;
+	int freq = 0;
+
+	struct {
+		int8_t *noise;
+		int *freq;
+	} args = { .noise = &noise, .freq = &freq };
+
+	if (nl80211_get_frequency(ifname, &freq) < 0)
+		goto out;
 
 	if (nl80211_request(ifname, NL80211_CMD_GET_SURVEY, NLM_F_DUMP,
-	                    nl80211_get_noise_cb, &noise))
+	                    nl80211_get_noise_cb, &args))
 		goto out;
 
 	*buf = noise;

I'll send it to the OpenWrt mailing list to be reviewed and merged.

6 Likes

There we go, different noise values now.

9 Likes

Can somebody help me with this hostapd.conf content who has MT7x MLO setup?
Please.

Thnx.

Here's my hostapd.conf files for each radio.

driver=nl80211
logger_syslog=127
logger_syslog_level=2
logger_stdout=127
logger_stdout_level=2
country_code=RU
ieee80211d=1
hw_mode=g
supported_rates=60 90 120 180 240 360 480 540
basic_rates=60 120 240
beacon_int=100
stationary_ap=1
channel=1
chanlist=1



#num_global_macaddr=1
#macaddr_base=
ieee80211n=1
ht_coex=0
ht_capab=[LDPC][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][MAX-AMSDU-7935]
ieee80211ax=1
he_su_beamformer=1
he_su_beamformee=1
he_mu_beamformer=1
he_bss_color=128
he_spr_sr_control=3
he_default_pe_duration=4
he_rts_threshold=1023
he_mu_edca_qos_info_param_count=0
he_mu_edca_qos_info_q_ack=0
he_mu_edca_qos_info_queue_request=0
he_mu_edca_qos_info_txop_request=0
he_mu_edca_ac_be_aifsn=8
he_mu_edca_ac_be_aci=0
he_mu_edca_ac_be_ecwmin=9
he_mu_edca_ac_be_ecwmax=10
he_mu_edca_ac_be_timer=255
he_mu_edca_ac_bk_aifsn=15
he_mu_edca_ac_bk_aci=1
he_mu_edca_ac_bk_ecwmin=9
he_mu_edca_ac_bk_ecwmax=10
he_mu_edca_ac_bk_timer=255
he_mu_edca_ac_vi_ecwmin=5
he_mu_edca_ac_vi_ecwmax=7
he_mu_edca_ac_vi_aifsn=5
he_mu_edca_ac_vi_aci=2
he_mu_edca_ac_vi_timer=255
he_mu_edca_ac_vo_aifsn=5
he_mu_edca_ac_vo_aci=3
he_mu_edca_ac_vo_ecwmin=5
he_mu_edca_ac_vo_ecwmax=7
he_mu_edca_ac_vo_timer=255

interface=phy0.0-ap0
ctrl_interface=/var/run/hostapd
ap_isolate=1
bss_load_update_period=60
chan_util_avg_period=600
disassoc_low_ack=1
skip_inactivity_poll=0
preamble=1
wmm_enabled=1
ignore_broadcast_ssid=0
uapsd_advertisement_enabled=1
utf8_ssid=1
multi_ap=0
sae_require_mfp=1
sae_pwe=2
wpa_passphrase=***
wpa_psk_file=/var/run/hostapd-phy0.0-ap0.psk
sae_password_file=/var/run/hostapd-phy0.0-ap0.sae
auth_algs=1
wpa=2
wpa_pairwise=CCMP
ssid=home-ap-1
bridge=br-lan
wds_bridge=
snoop_iface=br-lan
wpa_disable_eapol_key_retries=0
wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE
okc=1
ieee80211w=1
group_mgmt_cipher=AES-128-CMAC
dynamic_vlan=0
vlan_naming=1
vlan_no_bridge=1
vlan_file=/var/run/hostapd-phy0.0-ap0.vlan
qos_map_set=0,0,2,16,1,1,255,255,18,22,24,38,40,40,44,46,48,56
bssid=*
#default_macaddr
driver=nl80211
logger_syslog=127
logger_syslog_level=2
logger_stdout=127
logger_stdout_level=2
country_code=RU
ieee80211d=1
ieee80211h=1
hw_mode=a
beacon_int=100
stationary_ap=1
channel=132
chanlist=132

tx_queue_data2_burst=2.0

#num_global_macaddr=1
#macaddr_base=
ieee80211n=1
ht_coex=0
ht_capab=[HT40+][LDPC][SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][MAX-AMSDU-7935]
ieee80211ac=1
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=138
vht_capab=[RXLDPC][SHORT-GI-80][TX-STBC-2BY1][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][MU-BEAMFORMEE][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][RX-STBC-1][SOUNDING-DIMENSION-3][BF-ANTENNA-4][MAX-MPDU-11454][MAX-A-MPDU-LEN-EXP7]
ieee80211ax=1
he_oper_chwidth=1
he_oper_centr_freq_seg0_idx=138
he_su_beamformer=1
he_su_beamformee=1
he_mu_beamformer=1
he_bss_color=128
he_spr_sr_control=3
he_default_pe_duration=4
he_rts_threshold=1023
he_mu_edca_qos_info_param_count=0
he_mu_edca_qos_info_q_ack=0
he_mu_edca_qos_info_queue_request=0
he_mu_edca_qos_info_txop_request=0
he_mu_edca_ac_be_aifsn=8
he_mu_edca_ac_be_aci=0
he_mu_edca_ac_be_ecwmin=9
he_mu_edca_ac_be_ecwmax=10
he_mu_edca_ac_be_timer=255
he_mu_edca_ac_bk_aifsn=15
he_mu_edca_ac_bk_aci=1
he_mu_edca_ac_bk_ecwmin=9
he_mu_edca_ac_bk_ecwmax=10
he_mu_edca_ac_bk_timer=255
he_mu_edca_ac_vi_ecwmin=5
he_mu_edca_ac_vi_ecwmax=7
he_mu_edca_ac_vi_aifsn=5
he_mu_edca_ac_vi_aci=2
he_mu_edca_ac_vi_timer=255
he_mu_edca_ac_vo_aifsn=5
he_mu_edca_ac_vo_aci=3
he_mu_edca_ac_vo_ecwmin=5
he_mu_edca_ac_vo_ecwmax=7
he_mu_edca_ac_vo_timer=255

interface=phy0.1-ap0
ctrl_interface=/var/run/hostapd
ap_isolate=1
bss_load_update_period=60
chan_util_avg_period=600
disassoc_low_ack=1
skip_inactivity_poll=0
preamble=1
wmm_enabled=1
ignore_broadcast_ssid=0
uapsd_advertisement_enabled=1
utf8_ssid=1
multi_ap=0
ocv=0
sae_require_mfp=1
sae_pwe=2
wpa_passphrase=***
wpa_psk_file=/var/run/hostapd-phy0.1-ap0.psk
sae_password_file=/var/run/hostapd-phy0.1-ap0.sae
auth_algs=1
wpa=2
wpa_pairwise=CCMP
ssid=home-ap-1
bridge=br-lan
wds_bridge=
snoop_iface=br-lan
wpa_disable_eapol_key_retries=0
wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE
okc=1
ieee80211w=1
group_mgmt_cipher=AES-128-CMAC
dynamic_vlan=0
vlan_naming=1
vlan_no_bridge=1
vlan_file=/var/run/hostapd-phy0.1-ap0.vlan
qos_map_set=0,0,2,16,1,1,255,255,18,22,24,38,40,40,44,46,48,56
bssid=36:7c:84:0f:51:84
#default_macaddr


bss=phy0.1-ap1
ctrl_interface=/var/run/hostapd
bss_load_update_period=60
chan_util_avg_period=600
disassoc_low_ack=1
skip_inactivity_poll=0
preamble=1
wmm_enabled=1
ignore_broadcast_ssid=0
uapsd_advertisement_enabled=1
utf8_ssid=1
multi_ap=0
ocv=0
sae_require_mfp=1
sae_pwe=2
wpa_passphrase=betonomeshalka
wpa_psk_file=/var/run/hostapd-phy0.1-ap1.psk
sae_password_file=/var/run/hostapd-phy0.1-ap1.sae
auth_algs=1
wpa=2
wpa_pairwise=CCMP
ssid=home-ap-guest-1
wpa_disable_eapol_key_retries=0
wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE
okc=1
ieee80211w=1
group_mgmt_cipher=AES-128-CMAC
dynamic_vlan=0
vlan_naming=1
vlan_no_bridge=1
vlan_file=/var/run/hostapd-phy0.1-ap1.vlan
qos_map_set=0,0,2,16,1,1,255,255,18,22,24,38,40,40,44,46,48,56
bssid=***
#default_macaddr
driver=nl80211
logger_syslog=127
logger_syslog_level=2
logger_stdout=127
logger_stdout_level=2
country_code=RU
ieee80211d=1
ieee80211h=1
hw_mode=a
beacon_int=100
he_6ghz_reg_pwr_type=0
stationary_ap=1
channel=53
chanlist=53



#num_global_macaddr=1
#macaddr_base=
op_class=134
ieee80211ax=1
he_oper_chwidth=2
he_oper_centr_freq_seg0_idx=47
he_su_beamformer=1
he_su_beamformee=1
he_mu_beamformer=1
he_bss_color=128
he_spr_sr_control=3
he_default_pe_duration=4
he_rts_threshold=1023
he_mu_edca_qos_info_param_count=0
he_mu_edca_qos_info_q_ack=0
he_mu_edca_qos_info_queue_request=0
he_mu_edca_qos_info_txop_request=0
he_mu_edca_ac_be_aifsn=8
he_mu_edca_ac_be_aci=0
he_mu_edca_ac_be_ecwmin=9
he_mu_edca_ac_be_ecwmax=10
he_mu_edca_ac_be_timer=255
he_mu_edca_ac_bk_aifsn=15
he_mu_edca_ac_bk_aci=1
he_mu_edca_ac_bk_ecwmin=9
he_mu_edca_ac_bk_ecwmax=10
he_mu_edca_ac_bk_timer=255
he_mu_edca_ac_vi_ecwmin=5
he_mu_edca_ac_vi_ecwmax=7
he_mu_edca_ac_vi_aifsn=5
he_mu_edca_ac_vi_aci=2
he_mu_edca_ac_vi_timer=255
he_mu_edca_ac_vo_aifsn=5
he_mu_edca_ac_vo_aci=3
he_mu_edca_ac_vo_ecwmin=5
he_mu_edca_ac_vo_ecwmax=7
he_mu_edca_ac_vo_timer=255
ieee80211be=1
eht_oper_chwidth=2
eht_oper_centr_freq_seg0_idx=47

interface=phy0.2-ap0
ctrl_interface=/var/run/hostapd
ap_isolate=1
bss_load_update_period=60
chan_util_avg_period=600
disassoc_low_ack=1
skip_inactivity_poll=0
preamble=1
wmm_enabled=1
ignore_broadcast_ssid=0
uapsd_advertisement_enabled=1
utf8_ssid=1
multi_ap=0
ocv=0
sae_require_mfp=1
sae_pwe=2
wpa_passphrase=***
sae_password_file=/var/run/hostapd-phy0.2-ap0.sae
auth_algs=1
wpa=2
wpa_pairwise=CCMP
ssid=home-ap-1
bridge=br-lan
wds_bridge=
snoop_iface=br-lan
wpa_disable_eapol_key_retries=0
wpa_key_mgmt=SAE
okc=1
ieee80211w=2
group_mgmt_cipher=AES-128-CMAC
dynamic_vlan=0
vlan_naming=1
vlan_no_bridge=1
vlan_file=/var/run/hostapd-phy0.2-ap0.vlan
qos_map_set=0,0,2,16,1,1,255,255,18,22,24,38,40,40,44,46,48,56
bssid=***
#default_macaddr

2 Likes

it works. 6GHZ ... THNX sooo much!

if somebody has just wifi module with just one phy and multiple band's, please share hostapd.conf.
You can verify it via :slight_smile: iw list command.

1 Like

May I suggest you create a separate topic for your issue, since you're not using the stock BPI-R4 Wi-Fi module (the BE14, which is, somewhat confusingly, missing from the title of this one), and also be more descriptive of what you're trying to achieve? That way it'll be easier for others to notice it and offer help.

2 Likes

Where do I place this patch file to test it out?
Thank you.

Put it into package/network/utils/iwinfo/patches/ and name it something like 101-xxx.patch. The "101" is important, as there is already a patch starting with a "100".

2 Likes

Has anyone been able to get MLO to work on the latest snapshots? Wifi7 is also not working properly....

On latest snapshot... Nope. But you can try community folks build from [Banana BPI-R4] all related to MTK-SDK

1 Like

If any of you are playing with SFPs I made a new post because I need help [Banana BPI-R4] SFP Status - For Developers - OpenWrt Forum

Thanks

Has anyone actually confirmed / tested the claim on the wiki page that the background radar is supported on the BE14 2+3+3 and it's not just a placebo (since setting it does nothing if the underlying hardware doesn't support it)?

I don't see background radar support listed when I do "iw list" or in the mt76 code..

Just to say the issue with BPI 4 "penetration" is false, it's power amplifier is perfectly fine, the issue is in the noise levels being high

1 Like

What are you basing your claim on? My short experience with BE-14 was that it's BOTH: The transmitted signal strength is much lower than advertised 25/27dBm even with the TX power patch applied and simultaneously the noise floor is also very very high.

I used an android phone with Wifi Analyzer app to compare my old Linksys WRT1900AC signal strength with the BE-14 in the same exact spot and on the same exact channel on 2.4 and 5GHz.

You would need to use professional equipment to validate that claim, because as as I'm concerned in house there's no issue with the signal strength I get full bars everywhere the issue lies in signal noise

Very interesting. I definitely get less bars with BE-14 on my laptop, both phones and the PC as well as 10dBm+ difference in reported signal strength by various IoT ESP8266 devices.

What OpenWRT build do you use?

EDIT: This user's post on Banana Pi official forum contradicts your statement: https://forum.banana-pi.org/t/bpi-r4-wifi-range/19418/107

It sounds like Sinovoip directly confirmed to this user that there's an issue with BE14 chip and that the power amplifier on the chip isn't powerful enough.

1 Like

The comment under it explains the problem

I read the last couple of days before deciding to buy the device with the BE 14.
for what i found out is new mt7996_eeprom_233_2i5i6i.bin without any patches should resolve txpower issues in actual snapshot.
BUT
even if the signal is good the rate is poor like 1-30mbit/s (should be fixed by using wpad-openssl)

since i plan to buy im actually testing image build including this fixes, if interrested say it, but i cant guarantee that it even boots, but it should...
i have also a 8gb variant handy, needs to be tested...

The speed is fine tbh I get full 800mbps in my house, the issue it suffers from is noise

Yeah - I've never indicated that Wireless is broken - perhaps sub-optimal, but it is functional enough for platform work...

My point was that it's a development board - temper this as it's not necessarily of production/commercial level...