802.11ax 4x4 (mt7915) with R2

Hi everyone!

Recently i got a mt7915 (asiarf version)

After it was successfully installed and the kernel recompiled with CONFIG_MT7915E=m option it has succesfully started. After setup i got decent speed boost over mt7612e (average ~195/205 vs ~130/170 mbps for D/U using iperf3 on ~9m distance w/o walls)

Everything seems good for me, i only have a couple of questions:

  1. The driver is looking for mt7915e_rf.bin eeprom which is absent (i didn’t found in on internet) is it important?

     r2-gentoo /etc/hostapd # dmesg | grep mt79
     [   27.001069] mt7915e 0000:01:00.0: enabling device (0140 -> 0142)
     [   27.181023] mt7915e 0000:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20200819112315a
     [   27.281535] mt7915e 0000:01:00.0: WM Firmware Version: ____000000, Build Time: 20200819112349
     [   27.371699] mt7915e 0000:01:00.0: WA Firmware Version: DEV_000000, Build Time: 20200819112407
     [   27.476542] mt7915e 0000:01:00.0: Load eeprom: /lib/firmware/mediatek/mt7915e_rf.bin
     [   27.476615] mt7915e 0000:01:00.0: Open eeprom file failed: /lib/firmware/mediatek/mt7915e_rf.bin
     [   27.667229] mt7915e 0000:01:00.0 wlp1s0: renamed from wlan0
    
  2. As i got this version (mt7915A(?)) has no DBDC? (I read - it’s Dual Bands selectable, just clarifying)

  3. Are there other enclosures than aluminium exists which have more than 2 antenna holes?

P.S. hostapd needts to be compiled with CONFIG_IEEE80211AX=y option to enable wifi6, which was disabled by default in my distro.

Hi Alex,

nice that you can test 7915 now :wink:

i guess you use one of my kernels as base?

  1. mt7915e_rf.bin is likely from my patch to support loading eeprom from file :wink: i have the mt7615_rf and mt7622_rf, but no mt7915_rf
  2. idk, if you have no dbdc in sysfs maybe kernel have not yet support for it as mt7915 is newer than 7615 so you can try newer kernel e.g. 5.12
  3. why no drilling more holes in :wink:

edit seems like in 5.12 dbdc is not yet available:

https://elixir.bootlin.com/linux/v5.12-rc3/source/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.h#L120

Thnx :wink:

Yep, i use your 5.10 with crypt-engine patches. (5.11 with hw nat is in plans, does it has internal wifi support, or it needs to be added separately?)

It seems like it works fine, i’m just not sure what are there files for.

There is dbdc in sysfs, but echo 1 > /sys/kernel/debug/ieee80211/phy0/mt76/dbdc doen’t affect anything (no dmesg messages, no new interfaces). (As for me it’s not a problem most my devices have 5G support, and internal wifi is enough for my needs :slight_smile: )

Sounds like a plan :wink:

EDIT:

Looks like dbdc card isn’t yet available too.

See code-position i’ve posted…seems like actual code does support only 2g4 OR 5g…not yet dbdc

i try to get hnat working on 5.12, but it seems i need newer nft userspace tool…currently try to compile it

mhm, seems only mt7915D supports dbdc: https://lkml.kernel.org/linux-wireless/fe7c9a82055c51058726c19c4abdefe4a348a047.1605261982.git.lorenzo@kernel.org/T/

According to changelog you need at least 0.9.4

Yep, and mine is likely MT7915A.

I heard that AsiaRF has plan to have mt7915d card which can support 2x2 DBDC mode via one PCIe slot next quarter.

According to asiarf, MT7915 AW7915-NP1 supports it already:

  • Configurable 4×4/3×3 or 2x2n+2x2ax DBDC

In my opinion, it describes the capability of mt7915 chip, so we can use mt7915 chip for 4x4ax or 2x2 DBDC card but they need to use different PCB layout with different RF setting in 7915 internal flash. That’s why we need to wait DBDC card.

I use an QAC6174 m.2 card and a m.2 to minipcie adapter at r2(mt7623) to achive 670Mbps at the distance of 1m… but singal quarlity never be a problem for me, runing top when benchmarking show me a cpu core is 100%loaded with softirq,

compare with 550Mbps at mir2100(mt7622+mt7615), it is a little faster(with better cpu).

the speed test is runing with only 1 client activate. 802.1w is disabled sence it is no hw support at QCA6174 but MT76 has.

I’m curious that how fast mt7915 will go (when two devices close enough)?

550Mbps for mt7615? Could you please try the latest mt76 to see if it gets better?

Done with it:

And now i have a question is the order how antennas connected and placed on the case somehow affects speed?

P.S. Also i’ve replaced SATA JST connector to 4-pin with 12v to power 10k rpm hdd

IMHO it’s very convenient to have the opportunity to connect HDD which requires 12V.

mt7915 in ac mode faster than in ax:

AX:

-----------------------------------------------------------                                                                                                                                                         
Server listening on 5201                                                                                                                                                                                            
-----------------------------------------------------------                                                                                                                                                         
Accepted connection from 10.0.1.132, port 42656                                                                                                                                                                     
[  5] local 10.0.1.1 port 5201 connected to 10.0.1.132 port 42658                                                                                                                                                   
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd                                                                                                                                                    
[  5]   0.00-1.00   sec  40.0 MBytes   335 Mbits/sec    2    264 KBytes                                                                                                                                             
[  5]   1.00-2.00   sec  28.8 MBytes   241 Mbits/sec    1    240 KBytes                                                                                                                                             
[  5]   2.00-3.00   sec  32.5 MBytes   273 Mbits/sec    0    327 KBytes                                                                                                                                             
[  5]   3.00-4.00   sec  33.8 MBytes   283 Mbits/sec    0    396 KBytes                                                                                                                                             
[  5]   4.00-5.00   sec  30.0 MBytes   251 Mbits/sec    1    341 KBytes                                                                                                                                             
[  5]   5.00-6.00   sec  33.8 MBytes   284 Mbits/sec    1    291 KBytes                                                                                                                                             
[  5]   6.00-7.00   sec  33.8 MBytes   283 Mbits/sec    0    372 KBytes                                                                                                                                             
[  5]   7.00-8.00   sec  35.0 MBytes   294 Mbits/sec    1    327 KBytes                                                                                                                                             
[  5]   8.00-9.01   sec  33.8 MBytes   281 Mbits/sec    0    395 KBytes                                                                                                                                             
[  5]   9.01-10.00  sec  32.5 MBytes   274 Mbits/sec    1    352 KBytes                                                                                                                                             
[  5]  10.00-10.03  sec  1.25 MBytes   374 Mbits/sec    0    354 KBytes                                                                                                                                             
- - - - - - - - - - - - - - - - - - - - - - - - -                                                                                                                                                                   
[ ID] Interval           Transfer     Bitrate         Retr                                                                                                                                                          
[  5]   0.00-10.03  sec   335 MBytes   280 Mbits/sec    7             sender          

AC:

-----------------------------------------------------------                                                                                                                                                         
Server listening on 5201                                                                                                                                                                                            
-----------------------------------------------------------                                                                                                                                                         
Accepted connection from 10.0.1.132, port 42890                                                                                                                                                                     
[  5] local 10.0.1.1 port 5201 connected to 10.0.1.132 port 42892                                                                                                                                                   
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd                                                                                                                                                    
[  5]   0.00-1.00   sec  51.2 MBytes   430 Mbits/sec  100    433 KBytes                                                                                                                                             
[  5]   1.00-2.01   sec  41.2 MBytes   343 Mbits/sec    0    491 KBytes                                                                                                                                             
[  5]   2.01-3.00   sec  40.0 MBytes   339 Mbits/sec    0    543 KBytes                                                                                                                                             
[  5]   3.00-4.00   sec  41.2 MBytes   346 Mbits/sec    0    592 KBytes                                                                                                                                             
[  5]   4.00-5.00   sec  46.2 MBytes   388 Mbits/sec    0    642 KBytes                                                                                                                                             
[  5]   5.00-6.00   sec  48.8 MBytes   409 Mbits/sec   21    512 KBytes                                                                                                                                             
[  5]   6.00-7.00   sec  47.5 MBytes   399 Mbits/sec    0    570 KBytes                                                                                                                                             
[  5]   7.00-8.00   sec  41.2 MBytes   346 Mbits/sec    0    612 KBytes                                                                                                                                             
[  5]   8.00-9.00   sec  40.0 MBytes   336 Mbits/sec   32    488 KBytes                                                                                                                                             
[  5]   9.00-10.00  sec  45.0 MBytes   377 Mbits/sec    0    547 KBytes                                                                                                                                             
[  5]  10.00-10.03  sec  1.25 MBytes   355 Mbits/sec    0    550 KBytes                                                                                                                                             
- - - - - - - - - - - - - - - - - - - - - - - - -                                                                                                                                                                   
[ ID] Interval           Transfer     Bitrate         Retr                                                                                                                                                          
[  5]   0.00-10.03  sec   444 MBytes   371 Mbits/sec  153             sender                                                                                                                                        
-----------------------------------------------------------                                                                                                                                                         
Server listening on 5201                                                                                                                                                                                            
-----------------------------------------------------------

Both test performed at same setup: distance, ap config, etc. The only change is:

ieee80211ax=1 in hostapd.conf

my config:

r2-gentoo ~ # cat /etc/hostapd/hostapd.conf
interface=wlp1s0
ssid=ap-5G
hw_mode=a
ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40]
#ht_capab=[LDPC][HT40-][HT40+][SHORT-GI-20][SHORT-GI-40][TX-STBC][TX-STBC1][DSSS_CCK-40]
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42
ieee80211n=1
ieee80211ac=1
#ieee80211ax=1 # commented for AC
ieee80211d=1
wmm_enabled=1

country_code=US
#channel=161
channel=48

ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
#wpa_pairwise=TKIP
rsn_pairwise=CCMP
wpa_passphrase=mypassword

what can be the reason?

Also in ax mode intel AX200/AX201 often connects in low speed mode (420/54 - down/up), especially in win10, while in ac mode it’s usually between 720/720 to 866/866 and usually symmetric. My Qualcomm based smartphone connects in 1200/1200 in ax mod and 866/866 in ac, but speed is faster in ac mode, see iperf results at top.

are you running openwrt ? kernel version?

I use custom-built gentoo, with @frank-w’s 5.12 kernel branch. All drivers built-in to kernel. (CONFIG_MT7915E=m)

FIX. linux-5.10, but i’ve tested also 5.12-rc. The result is the same.

I could see 1.5g in ideal environment. maybe you can try openwrt 5.4.

one possible reason is txpower patches haven’t accepted by linux-wireless but have been merged into openwrt.

https://patchwork.kernel.org/project/linux-wireless/list/?series=305467&archive=both&state=* https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/ https://patchwork.kernel.org/project/linux-wireless/list/?series=303913&archive=both&state=*

1 Like

Hi everyone.

Just in case. My main problem was incomplete 802.11ax setup (no he_oper_chwidth, he_oper_centr_freq_seg0_idx, etc ). Now, after completing the setup ax mode has very similar to ac performance.

The connection speed shown by a client is 1200/1200 in most cases, but the average speed (iperf3) is about 500Mbit/s. Looking forward to optimizing hostapd.conf

UPD:

after some configuration and channel selection i got link speed up to 2162/2162Mbps(average 1700/1700) with iperf speed test up to ~650/850 mbit/s (down/up),

But also I’ve got a new problem - clients connected to the same ap cant communicate with each other, disabling ax mode doesn’t help. applying the working config from mt7615 doesn’t solve the problem. At this point, I’m not sure if it was working earlier on mt7915.

Summary: With ap on mt7615 clients can communicate each other, ap on mt7915(also with the same as mt7615 config) clients can’t communicate with each other.

the kernel is @frank-w’s 5.13-main, @Ryder.Lee or anyone else do You have any ideas?

I’ll attach the hostapd configs a bit later when reaching home.

UPD:

Here is my config:

interface=wlp1s0

ssid=test-5G
hw_mode=a
country_code=US

ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40]
channel=48
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42

ieee80211n=1
ieee80211ac=1
#ieee80211ax=1
ieee80211d=1
wmm_enabled=1

ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
#wpa_pairwise=TKIP
rsn_pairwise=CCMP
wpa_passphrase=mypass

This config works perfectly on mt7615 - all clients connected to the same ap can reach each other. But on mt7915 clients can connect only ap itself and all hosts in broadcast domain connected to ap over ethernet.

UPD2:

After switching to previous 5.10 kernel everything started to work just fine. Taking into account that i had the same 5.13 kernel on my both R2s (mt7915 and mt7615 wifi cards) with the same config it’s more likely a driver bug than configuration bug.

P.S. 5.13 in general seems to be faster with mt7915 than 5.10

mt7915 got many updates in last kernel versions…could you try 5.14 or 5.14-next?

I’ve tried 4.14-main. The same issue.

UPD:

As I got after testing, the last properly working kernel is 5.10. starting from 5.11 communication is possible only between the ap and the client (each client), but not between ap clients.

@Ryder.Lee do you have any ideas?

Just in case: tested on 5.18-rc - the same issue.

Also got next error in the dmesg - on non-dbdc card

[  300.054988] mt7915e 0000:01:00.0 wlp1s0: failed (err=-2) to del object (id=3)
[  300.056162] mt7915e 0000:01:00.0 wlp1s0: failed (err=-2) to del object (id=3)

but the card seems to be able to start hostapd and work.

the DBDC version is unable to init hostapd with the next msg:

cat /dmesg-518 | grep mt7915e
[   20.504139] mt7915e 0000:01:00.0: enabling device (0140 -> 0142)
[   21.139914] mt7915e 0000:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20211222184017a
[   21.158846] mt7915e 0000:01:00.0: WM Firmware Version: ____000000, Build Time: 20211222184052
[   21.184036] mt7915e 0000:01:00.0: WA Firmware Version: DEV_000000, Build Time: 20211222184111
[   26.681002] mt7915e 0000:01:00.0 wlp1s0: renamed from wlan1
         ==========hostapd attempt to start from here===========
[   78.660400] mt7915e 0000:01:00.0: Message 000008ed (seq 3) timeout
[   99.140135] mt7915e 0000:01:00.0: Message 00003aed (seq 4) timeout
[  119.620013] mt7915e 0000:01:00.0: Message 00005aed (seq 5) timeout
[  140.099705] mt7915e 0000:01:00.0: Message 00003aed (seq 6) timeout
[  160.579691] mt7915e 0000:01:00.0: Message 00005aed (seq 7) timeout
[  181.059783] mt7915e 0000:01:00.0: Message 000058ed (seq 8) timeout
[  201.539666] mt7915e 0000:01:00.0: Message 00003eed (seq 9) timeout
[  222.019654] mt7915e 0000:01:00.0: Message 00005aed (seq 10) timeout
[  242.499699] mt7915e 0000:01:00.0: Message 00005aed (seq 11) timeout
[  262.980099] mt7915e 0000:01:00.0: Message 00003aed (seq 12) timeout

no hostapd logs yet.

P.S. Just let me know if someone can use a mt7615 card in ap mode to let communicate some wifi clients successfully on a recent kernel? May be on a different platform.