acidanthera / bugtracker

Acidanthera Bugtracker
385 stars 45 forks source link

[AirportBrcmFixup.kext] Bad rate/speed on 5 GHz on BCM94360NG when coldbooting #1532

Open kushwavez opened 3 years ago

kushwavez commented 3 years ago

The problem:

1137644367_Kpernyfot2021-01-22-11_25_34 png b4f69432b25898c1e098a3cf3c931f8c 1063271302_Kpernyfot2021-01-22-11_25_23 png cf169475cc230dbd86a4eba151f47c02

866win PNG cf14d6f4faefa1fe5588e20f0ceb0b4b

The interesting thing:

1061714981_Kpernyfot2021-01-22-11_30_09 png 3d45b9cadabc3a6fad045b9c1bf836361966641297_Kpernyfot2021-01-22-11_30_45 png 30c7535f89b961fe55aff18478fa7c25

Tried things:

Environment: 1. RT-AC66U - Original Up-to-date FW - 80 MHz/channel 44, notebook is 3 metres away

2. RT-AC66U - FreshTomato custom FW (2020.8) - 80 MHz/channel 151, notebook 3 metres away

3. RT-AC56U - DD-WRT FW v3.0-r44772 std (11/11/20) - 80 MHz/channel 112, notebook 1 metres away

Lastly:

Spec: Lenovo X1 Carbon 6th i5-8250U 8 GB DDR3 OC 0.6.6 macOS Big Sur 11.2.2

Attaching zip with logs/efi airport_logs_restartfromwin.zip airport_logs_cold_boot.zip

vit9696 commented 3 years ago

Try brcmfx-country=#a If it does not work, well, it is likely a limitation of the driver we cannot lift at the moment. Sorry. CC @lvs1974

kushwavez commented 3 years ago

Yep, tried that too but did not help. Well, this is unfortunate then, thanks anyway.

it is likely a limitation of the driver

But then I still do not understand why it is working perfectly fine after restarting from Windows directly to macOS and why not from coldboot/off state. Do not get me wrong, it is not AirportBrcmFixup's or your fault at all, just trying to understand what is going on here.

lvs1974 commented 3 years ago

I had to send BCM94360NG back to the seller since I got only 434 Mbit/sec in Windows and macOS. I have tried everything. I think this card is a crap.

kushwavez commented 3 years ago

I think this card is a crap.

Well, you're right. I'm really upset about this... Looks like the only REALLY OOB solution is to use original Apple cards with an NGFF adapter. I'm gonna do that.

Thanks for confirming.

Mieze commented 3 years ago

I also have an BCM94360NG installed in a Dell Inspiron 5370 and get only 434 Mbit/sec with macOS but 866 Mbit/sec with Windows. I don't think that there is something wrong with the card because the BCM94352Z and the Dell DW1820A I also tried in this machine exhibit the same behavior. All of them are limited to one stream with macOS but work fine using two with Windows.

As the Dell Inspiron 5370 came with an Intel 3165 which is also a 1x1 module and the spatial placement of both antennas isn't optimal for multi-stream support (both antennas are parallel, with only a few centimeters of distance between them), the limitation to one stream with macOS is more likely a result of the combination of two factors: the antenna placement and the macOS driver's firmware.

lvs1974 commented 3 years ago

I have tried BCM94360NG with Dell Inspiron 7590 (original card is Intel Wireless-AC 9560). In Windows I had the same speed as in macOS. When I replaced BCM94360NG with DW1820A I got stable 867 Mbit/sec in Windows and in macOS. When I said "it is a crap" I meant so many different user experiences with this card, and very rarely I saw somebody with 867 Mbit/sec.

kushwavez commented 3 years ago

When I replaced BCM94360NG with DW1820A I got stable 867 Mbit/sec in Windows and in macOS.

Me too, the speed is also good with that card (~60 MB/s)

Mieze commented 3 years ago

@lvs1974 As your machine came with a 2x2 module, the antenna placement is most likely designed to support two stream modules. That would explain the difference.

lvs1974 commented 3 years ago

I want ask everybody something related to Bluetooth in all these modules. The issue with all these combo modules: 8Khz audio when I use bluetooth headset. I does not depend on headset (it works brilliantly with iMac 27" 2017). But the same issue happens with MacBookAir 2015, and in Dell 7590 with BCM94360NG, DW1820A and Intel Wireless-AC 9560) - in both OS (win & mac). Is there any card with 2 antennas which works in hackintosh and does not have this limitation in bluetooth module?

Mieze commented 3 years ago

@lvs1974 Sorry, I don't use bluetooth audio devices.

m0d16l14n1 commented 3 years ago

Have the same BCM94360NG in my Hasee KingBook X57S1 (default card is Intel AX201). WIthout that AirportBrcmFixup.kext i have lower speed than on Windows. With kext - speeds result are the same as in Windows/Linux (comparing speedtests results). I have no issues with speed after sleep or hot/cold boot-reboots at all.

Without kext I have 50/90 mbps, with kext I have 200/300 mbps.

(Have the same speeds on desktop with ASUS PCE-AC68 which is working without any kext)

For bluetooth issues - i haven't seen any of them, but i am just using mouse/AirPods.

kushwavez commented 3 years ago

Without kext I have 50/90 mbps, with kext I have 200/300 mbps.

Without kext for me sometimes it's connecting 40 MHz mode instead of 80 MHz, that time I have the same slow speed. (~90 Mbps) With kext me too, have ~200 Mbps (download) by default, the problem is that it should be ~480 Mbps as on Windows, and it's only can reach that by restarting from Windows.

@lvs1974 As for Bluetooth I'm using a BT speaker, I have no issues with that. What do you mean by 8KHz issue? Do you mean that there should be lower frequencies, but there isn't?

m0d16l14n1 commented 3 years ago

Without kext for me sometimes it's connecting 40 MHz mode instead of 80 MHz, that time I have the same slow speed. (~90 Mbps) With kext me too, have ~200 Mbps (download) by default, the problem is that it should be ~480 Mbps as on Windows, and it's only can reach that by restarting from Windows.

Same problem, without kext it's only supporting 40Mhz mode. But with kext (without any special boot-args) speeds are equal between different OSes. What's the version of drivers are you using in Windows? Just interesting to test with yours if there will be any difference

kushwavez commented 3 years ago

It's installed by Windows Update

Driver date: 2015. 07. 20. Version: 7.35.295.2

m0d16l14n1 commented 3 years ago

It's installed by Windows Update

Driver date: 2015. 07. 20. Version: 7.35.295.2

I am using drivers from Fenvi site

Driver date: 03.02.2016 Version: 7.35.317.3

I will try to use your drivers and will check speed/reboot and etc

lvs1974 commented 3 years ago

@kushwavez: the issue can be observed only if headset' microphone is used (in Skype or Microsoft Teams). It looks like the broadband width is not enough to transmit and receive audio data at 16 Khz simultaneously, so bluetooth driver forces both channels to 8 Khz. But it does not happen with iMac 27 2017 or with any modern smartphone.

kushwavez commented 3 years ago

I see. Unfortunately I can't test that, sorry.

kushwavez commented 3 years ago

UPDATE: some users reported that with 2016 Windows BCM drivers it's only 400 mbit/s (like on macOS), but with my drivers (2015. 07. 20., 7.35.295.2) it's going up to 866 mbit/s and is working even after sleep, so it is clearly a driver issue.

alessiomatricardi commented 3 years ago

Seems that BCM94360NG card has the spacial stream (NSS) limited to 1, instead of 2, in macOS. I also have this card and report same problems (in macOS, from cold boot, Tx rate is capped to 434 but in Windows - and rebooting from Win to Mac - is 867) This card works OOB without any kext but its performance is too poorly at this state of art. It's probably related to a driver issue in macOS... @vit9696 could you or your collaborators investigate? Can something be done with your Broadcom kexts?

vit9696 commented 3 years ago

That's an interesting theory. How did you discover this?

My first guess would be to wrap the relevant functions in the Lilu plugin and see their returned data:

__ZN15AirPort_BrcmNIC9setTX_NSSEP8OSObjectP22apple80211_tx_nss_data
__ZN15AirPort_BrcmNIC9getTX_NSSEP8OSObjectP22apple80211_tx_nss_data
__ZN15AirPort_BrcmNIC6getNSSEP8OSObjectP19apple80211_nss_data

The interfaces are fortunately public as of OpenIntelWireless.

For some reason getNSS and getTX_NSS are implemented very differently in AirPortBrcmNIC.kext.

In my opinion, one should try to wrap all these functions and dump the flow (which are called, and which are not) through the start/end prints. It will also help to print the arguments and some values, e.g. that boolean at wlc_bsscfg_t + 0xC or returned apple80211_nss_data / apple80211_tx_nss_data contents. If anything hints that something is wrong, I would firstly try to swap one implementation with the other, and then perhaps check the resulting values.

alessiomatricardi commented 3 years ago

@vit9696 let me know if you need some testers

tangdai commented 3 years ago

same card 94360ng, same issue on Big Sur and Monterey , tx speed highest 434, NSS = 1 from cold boot. only reboot from windows to Mac the NSS will be 2 and Tx speed normal to 867

m0d16l14n1 commented 3 years ago

It's installed by Windows Update Driver date: 2015. 07. 20. Version: 7.35.295.2

I am using drivers from Fenvi site

Driver date: 03.02.2016 Version: 7.35.317.3

I will try to use your drivers and will check speed/reboot and etc

Yep, I can report the same result. With that driver installed (7.35.295.2) on Windows > after reboot to macOS I have NSS 2. If I cold boot macOS > i will have NSS 1 only.

Tx Rate is twice lower with NSS 1 (234 vs 527)

Sorry for delay @kushwavez, i totally forgot about that

Lorys89 commented 3 years ago

that card is very bad, as the twin of the fenvi bcm94352z is a fake dw1560, it always has dev id 14e4 43a0 like the bcm94360ng, I have all these wifi cards, I also have the real dw1560 14e4 43b1, the dw1820a 14e4 43a3 and the dw1830 14e4 43ba. drivers showing 867mb in bcm94360ng on Windows are fake. also with 1 notch show 867mb, I have ftth gigabit and I did various speed test its showing 434mb or 867mb always goes to the same download speed. it is a limitation of fenvi cards.

ff19 commented 2 years ago

that card is very bad, as the twin of the fenvi bcm94352z is a fake dw1560, it always has dev id 14e4 43a0 like the bcm94360ng, I have all these wifi cards, I also have the real dw1560 14e4 43b1, the dw1820a 14e4 43a3 and the dw1830 14e4 43ba. drivers showing 867mb in bcm94360ng on Windows are fake. also with 1 notch show 867mb, I have ftth gigabit and I did various speed test its showing 434mb or 867mb always goes to the same download speed. it is a limitation of fenvi cards.

However, my bcm94352z (dev id 14e4 43a0) has a speed more than 434mbps(by iperf3) on windows , and reboot from windows will not get a speed 866mbps ,NSS just 1.

manhattan98 commented 2 years ago

I can confirm that with AirportBrcmFixup wifi on BCM94360NG works as fast as in Windows

li3p commented 2 years ago

I can confirm that with AirportBrcmFixup wifi on BCM94360NG works as fast as in Windows

Can you show some screen captures ? Wondering how fast the speed is . And except the AirportBrcmFixup kext, any boot args or extra kext have to apply?

dikamsiyoung commented 2 years ago

@manhattan98 Please can you share more information on your build and possibly the EFI config that gave you that result?

gulios commented 2 years ago

Hi All,

@lvs1974, @vit9696

Is there any chance to try fix that issue? It's not a big deal because still BCM94360NG is better(works OOB) than DW1560 but maybe there is some solution to speed up that card (tx rate, nss 2 etc)

Thank you

lvs1974 commented 1 year ago

@gulios: it will be much easier to use this: https://www.ebay.com/itm/281701519595?hash=item4196b810eb:g:cSwAAOSwnZJff99l&amdata=enc%3AAQAHAAAA4Mja2neAiulfHRAac9yWMDB56frfztXppyyUWDbqmoi4M1SR9%2FP05Kf%2BP2zEi11P89KEDiwP%2FM7v8NgpEFP9agX8bWnUsk7D326v3M1qOBHJtab1YrshNkrc8WGPPXySsrekikaXsiesCWuivEWrFMj0zXTwzQPhZU8LuEosCA8PVJchqlCOz%2Bv5EW0e8Nmkza6T9b1WIJ9bj7Vn6ZOo2EWvIvPzM7K5W1FIPzHAuE32Mm3QelFnLbKtHUtN9k5%2Bcvm8KxJ9%2BxjNnCijTlBJfGvrWNpBPUC65O72tS31QKAY%7Ctkp%3ABFBM5sLe4_9g https://www.aliexpress.com/item/4000300239745.html?spm=a2g0o.order_list.0.0.68de1802fBgS06

I use this set in my Dell Inspiron 7590, it works perfectly & OOB. This adapter has 3 buses 20 cm/30cm/40cm, so it might be possible to find free place in almost any laptop.

gulios commented 1 year ago

ok, i've ordered BCM943602CS and m.2 adapter.

EDIT: ok, card+adapter arrived and it works OOB. Little problems how to fit in small laptop it but works great.

Screenshot 2022-11-03 at 23 56 34

maclinit commented 1 year ago

I'm experiencing the same issue as OP and others in the thread, NSS 1 and TX Rate never going above 434mbps. Download speeds hovering around 200mbps. My card is a Fenvi FV-HB1200 which uses the BCM94360CS2 chipset (according to OpeCore). Wi-Fi works as described above, bluetooth works fine, including airdrop and I haven't tested HandOff.

Like OP, I've tried running with AirportBrcmFixup but it made no difference in speeds. I'm also dual booting Windows 10 via OpenCore, but unlike OP, rebooting from Windows into MacOS does not improve speeds, still showing 434mbps for TX Rate and downloading at max 200mbps.

Running on Monterey 12.6.1.

I'm happy to try any suggestions or config changes, but I'm not sure I have the ability to try out @vit9696's suggestion about wrapping those functions in the Lilu plugin.

Vorshim92 commented 1 year ago

I have this problem too. For the first 15second I have 2NSS and then 1nss with half or less performance. 504BA9D9-66B9-46E4-AD37-9F6FE5CE8848 DE43E5CC-3E22-4F14-A0BB-BD97BAC1351D

I already tried AirportBrcmfixup kext without injector. I think something in bigsur has changed... anyidea how to resolve this nss problem?

z3DD3r commented 1 year ago

I also had this problem with Fenvi FV-HB1200 on my hackintosh. NSS was alway 1 on 2.4Ghz and 5.0Ghz wifi networks. After upgrading to MacOS Ventura 13.2 and latest OpenCore (0.8.9) NSS shows 2 and network speed improved (tested on speedtest.net). Here are screenshots: 2_4G5_0G

The Tx Rate is low in my case because i've disabled 40Mhz channel for 2.4Ghz networks and 80Mhz for 5.0Ghz networks. Currently with a 100Mb internet plan speedtest shows 93Mb on 5.0Ghz wifi which is great!

m0d16l14n1 commented 1 year ago

I also had this problem with Fenvi FV-HB1200 on my hackintosh. NSS was alway 1 on 2.4Ghz and 5.0Ghz wifi networks. After upgrading to MacOS Ventura 13.2 and latest OpenCore (0.8.9) NSS shows 2 and network speed improved

Hello. Still no issue is appeared? In my case nothing changed at all, i still get NSS 2 if I reboot to macOS from Windows, if I cold boot macOS > NSS 1.

m0d16l14n1 commented 1 year ago

That's an interesting theory. How did you discover this?

My first guess would be to wrap the relevant functions in the Lilu plugin and see their returned data:

__ZN15AirPort_BrcmNIC9setTX_NSSEP8OSObjectP22apple80211_tx_nss_data
__ZN15AirPort_BrcmNIC9getTX_NSSEP8OSObjectP22apple80211_tx_nss_data
__ZN15AirPort_BrcmNIC6getNSSEP8OSObjectP19apple80211_nss_data

The interfaces are fortunately public as of OpenIntelWireless.

For some reason getNSS and getTX_NSS are implemented very differently in AirPortBrcmNIC.kext.

  • getNSS calls _wlc_bsscfg_find_by_wlcif (can be found here) with wlcif == NULL. I think what it then checks is whether dtim_programmed is true, which is at wlc_bsscfg_t + 0xC, but this structure varies across the public drivers. If this succeeds, then _wlc_get_rspec_history gets called to get the NSS rate (can be found here).
  • getTX_NSS calls _wlc_iovar_getint with "tx_nss" argument.

In my opinion, one should try to wrap all these functions and dump the flow (which are called, and which are not) through the start/end prints. It will also help to print the arguments and some values, e.g. that boolean at wlc_bsscfg_t + 0xC or returned apple80211_nss_data / apple80211_tx_nss_data contents. If anything hints that something is wrong, I would firstly try to swap one implementation with the other, and then perhaps check the resulting values.

Hello, @vit9696! Sorry for pinging and bother you with that problem. I did grep some logs, it's as good as should be to understand what's happening with those NSS 2 issue, but i did notice some weird issue when it's NSS 2 > wl0: getNss: not associated

Can you look into that? Maybe you have some time to help and understand that? Thanks in advance!

logs.zip

lvs1974 commented 1 year ago

@m0d16l14n1, @vit9696: I overrided those methods in AirportBrcmFixup, now three of them call original method and print debug information into boot log. AirportBrcmFixup-2.1.7-DEBUG.zip

lvs1974 commented 1 year ago

Here is the version overriding nss with value 2: AirportBrcmFixup-2.1.7-DEBUG.zip

Actually, only method AirPort_BrcmNIC::getNSS is called. Please test and deploy your logs.

m0d16l14n1 commented 1 year ago

Here is the version overriding nss with value 2: AirportBrcmFixup-2.1.7-DEBUG.zip

Actually, only method AirPort_BrcmNIC::getNSS is called. Please test and deploy your logs.

In my case that one worked, NSS is finally 2 (after cold boot / sleep / hibernation). I can't test the speeds properly now, I have limits on evenings. I will test and report speed later. I will share bunch of logs (which i did already sent (most of them) you at applelife.ru), so it's just a collection for those, who will test too and want to compare (?).

Guys, (@Vorshim92, @maclinit, @tangdai, @gulios, @z3DD3r, @kushwavez, @dikamsiyoung, @li3p, @alessiomatricardi, @ff19, @Lorys89), first of all - I am really sorry to ping you all, you might not have the card anymore, or not interested in hackintoshing (or you just unsubscribed of that issue), but if somebody still experience that issue with bad rate and speed of NG cards, can you please test the build above and check if it's finally fixing that problem?

Please check not only NSS=2 is displaying in Wi-Fi setting, but the actual speed is better and improved comparing to previous versions of kexts / not using kexts / rebooting from Windows / or cold booting macOS.

Thanks in advance and sorry again!

NSS1:2-logs.zip

Vorshim92 commented 1 year ago

Here is the version overriding nss with value 2: AirportBrcmFixup-2.1.7-DEBUG.zip Actually, only method AirPort_BrcmNIC::getNSS is called. Please test and deploy your logs.

In my case that one worked, NSS is finally 2 (after cold boot / sleep / hibernation). I can't test the speeds properly now, I have limits on evenings. I will test and report speed later. I will share bunch of logs (which i did already sent (most of them) you at applelife.ru), so it's just a collection for those, who will test too and want to compare (?).

Guys, (@Vorshim92, @maclinit, @gulios, @z3DD3r, @kushwavez, @dikamsiyoung, @li3p, @alessiomatricardi, @ff19, @Lorys89), first of all - I am really sorry to ping you all, you might not have the card anymore, or not interested in hackintoshing (or you just unsubscribed of that issue), but if somebody still experience that issue with bad rate and speed of NG cards, can you please test the build above and check if it's finally fixing that problem?

Please check not only NSS=2 is displaying in Wi-Fi setting, but the actual speed is better and improved comparing to previous versions of kexts / not using kexts / rebooting from Windows / or cold booting macOS.

Thanks in advance and sorry again!

NSS1:2-logs.zip

no problem. I will test it as soon as possible :)

Lorys89 commented 1 year ago

I tried in the bcm94360cs2 on my dell and continues to see nss1, I will do other tests as soon as I have more time, I also have a bcm94360z3 3 antennas and sees nss2 with low speeds, and that should be nss3 like the BCM943602cs 🤪 IMG_20230311_170109

lvs1974 commented 1 year ago

@Lorys89: current implementation only replaces nss=1 with nss=2, it is not ready for cards with 3 antennas. And I think AirPort_BrcmNIC::getNSS can fix only cosmetic NSS displayed in wi-fi submenu (when opened with option). But you can get logs, you should see NSS = 2. You need add boot-arg -brcmfxdbg, add DebugEnhancer.kext and use sudo dmesg | grep BRCMFX after boot

lvs1974 commented 1 year ago

On my dell laptop and BCM943602CS - none of the three methods is called.

CobanRamo commented 1 year ago

should I take the kext here from this thread from you or the latest corrected build from https://github.com/acidanthera/AirportBrcmFixup

I would also like to test and finally have this problem solved. Thanks

lvs1974 commented 1 year ago

@CobanRamo, you can download it here or build from latest commit on GitHub, or download build for the last commit from dortania.

CobanRamo commented 1 year ago

So for me nothing essential changes there, I don't recognize anything particularly in Log. All that has changed is; Locale: ETSI --> With Kext Locale: RoW --> without kext NSS --> is always 1 with and without kext

Tx-Rate: 434 MBit/s --> with and without kext

AirportBrcmFixup_LOG.txt

My Config; deviceProp

What I have to mention is that I don't notice any difference in the download speed from the Internet is always constant and stable with & without kext. wlanspeed

But my big problem is that I move a large file between the two NG cards via WiFi (LAN is deactivated) (SMB), the speed is always under all sow, kb area, that's really not acceptable.

lvs1974 commented 1 year ago

@CobanRamo: in your case none of those three NSS methods is called. Did you try to start downloading something and take a log again (after 30-50 seconds)? May be then it will be called?

CobanRamo commented 1 year ago

So I went through different things, cold start, warm start, start after windows boot etc. always the same result for me. Wlan_Desktop AirportBrcmFixup_LOG_Desktop.txt

Wlan_Laptop AirportBrcmFixup_LOG_Laptop.txt

I hope I'm not wrong, double checked.

Another question, I have the driver version 7.35.317.3 under Windows. I would like to test the older driver but I can't find it anywhere, can one of you make this old version: 7.35.295.2 package available?

m0d16l14n1 commented 1 year ago

@CobanRamo: in your case none of those three NSS methods is called. Did you try to start downloading something and take a log again (after 30-50 seconds)? May be then it will be called?

That's might be the problem I didn't think about. That's might be the need of "special" Windows Broadcom driver, which will "trigger" method to call after first reboot from Windows to macOS?

For guys who didn't notice overriding in logs > try to install that version of the driver in Windows, hot reboot to macOS > check if you see NSS=2, it's should be even without test version of AirportBrcmFixup.kext. After you can try to hibernate / sleep or just shutdown and cold boot macOS > it usually will get NSS=1 after boot, but you will see NSS=2 and overriding in log.

So you can test the speeds on Windows / hot reboot from Windows to macOS / cold boot to macOS (when you have NSS=2), so you can truly compare speeds and understand is that issue is fixed or not.

P.S. I did upload that driver to my cloud drive, so you can get it here version of zip .cab unpacked and .cab version

CobanRamo commented 1 year ago

Wlan_Desktop_Neu Wlan_Laptop_New

That's exactly what it was, with driver version 7.35.295.2 and after a Windows boot, the NSS 2 comes....