Hi Guys,
An update on WiFi & BT experiments ...
As i already
posted i swapped out the intel WiFi/bT card in my 2017 15" HP Spectre X360 for BCM94352Z ... WiFi in OSX and linux worked perfect but in windows 10 the laptop would lock up as soon as i attempted to connect to a network .. it seems to be a very common issue with this card and windows 10 ...
Searching the internet results in lots of suggestions (mainly trying different driver versions) but after several attempts and god knows how many different driver versions .. i've given up trying to get the BCM94352Z card working in windows ... and yes i did try another BCM94352Z card but it resulted in the same issues.
So I dug deeper into the issue, after examining the ini install files it became clear that the driver is actually a repackaged BCM95342 mini PCIe Windows 7 driver and is not specific to the M.2 BCM95342Z version of the card or Windows 10. Examining the Windows event logs showed that the driver file bcmwl63a.sys was crashing when ever a badly timed interrupt occurred, I confirmed this using an oscilloscope on the interrupt line ... needless to say this is not good.
Additionally as i reported in the same
post (and by
others elsewhere) the BT USB device on the BCM94352Z would not always initialise correctly during POST resulting in it not being seen in windows or osx ... it was possible to get it to work but required a random number of reboots/sleep/wakes ... once it was seen by osx it worked fine ... even after sleep/wake ... but for me the BCM94352Z has not been an ideal solution especially with the windows wifi issues.
So time to look for a different solution ...
Despite warnings about it not being suitable for Lenovo and HP laptops I bought a
Dell DW1830 on ebay for $25 ... this card has a BCM43602 PCI WiFi chipset and a BCM20450 USB bluetooth controller ... both of these chipsets (a variant of) are used on genuine Apple WiFi/BT cards so it should be much compatible if i can get it t work. Since this card is a 3x3 MIMO and supports three antenna's and the Spectre only has two i also purchased a suitable MHF-4 antenna ...
Its very important that if you install a wifi card that has more antenna connections than your system has physically that you install additional antenna's even if you can not locate the new antenna's in the same location as the original ones. Running a wifi card without all antennas connected could result in you burning out the radio transmitter on the card due to not enough load being placed and the transmitters radio amplifier thus causing it to run hot.
In my case i was unable to install an additional antenna in the laptops lid as the screen is bonded and i did not want to go through the potentially dangerous procedure of un-bonding and re-bonding the screen. The 15" X360 has some air inlet grills either side of the keyboard so i mounted mine in that area. Its not a perfect location as only a small amount of the antenna is able to access free air and thus effects its ability to pull in a signal but its better than nothing and ensures that the radio on the wifi card will not burn out.
Once the card and antenna was delivered i installed them in the X360, powered up and was disappointed to see that the WiFi (pci) part of the card was not detected in any OS (Windows/OSX/Linux) ....
Then i remembered an
old trick some users have to do with the BCM94352Z so i masked pins 56 & 54 (BT & WiFi disable lines) .. and tried again ... booting into windows and checking device manager showed that the card was now detected so I went ahead and installed the latest Dell DW1830 WiFi and BT drivers, both installed fine and the card came on-line with no crashes or lock ups ... I gave it a good test for an hour or so and all was good.
Note: the DW1830 is missing pin 50 unlike the BCM94352Z so its a group of three pins not four as shown in the linked
guide.
Reading up on the DW1830 on this site seems to state that it should work OOB .... so i booted into OSX (10.12.6) in safe mode and removed all the fixes for the BCM94352Z (fakepciXXX, BCMpatchram, clover patches .. etc) and rebooted ..
Sure enough WiFI was detected (both 2.4Ghz & 5Ghz) and i was able to connect to my 5Ghz wireless network ... all be it at a slower speed of 450mbs compared to the 878Mbs i got with the BCM94352Z ... also no BT.
So I reinstalled BCMPatchRam2 & the repo kexts ... rebooted and BT was detected and working. Having now tested BT extensively i can say that this is the best BT support i've seen in a hackingtosh ... the BCM20450 BT controller supports LMP4.1 which is natively supported by OSX 10.12.XX .. i've seen no problems so far with handoff or airdrop.
Checking sys info showed that the WiFi card was being identified as 3rd party ... i checked the info.plist in RehabMans FakePCIID_Broadcom_WiFi.kext which indeed showed that it supports my cards id's (14E4/43BA) so i reinstalled it along with FakePCIID.kext .. once the kext cache sorted itself out the card was identified as Apple AirPort Extreme (0x14E4, 0x24)
The speed cap of 450Mbs indicated to me that that the card was probably only running in the 20/40 frequency band and not using the full 20/40/80 range of the card .. I've seen this issue before with my old Sony Vaio Hackingtosh which was resolved by changing the county code to '#a' (see the
airport guide) so i applied the patch via Clover and rebooted.
As suspected it worked and my WiFi speed was back to 878Mbs, so now everything was working great in Windows and OSX and it was time to attack Linux.
Booting into Linux (I use Mint 18) the BT was detected straight away .. however it took some digging to get the WiFI working, it turned out the bcm firmware for the DW1830 in my kernel version (4.8) did not support the 14E4/43BA device. The solution was to to update the file brcmfmac43602-pcie.bin in /lib/firmware/brcm with
this version and reboot, the new card was detected immediately by the brcmfmac framework and the correct kernel driver automatically loaded without any further intervention.
Summary:
All in all swapping out the BCM94352Z for the DW1830 has been a big step forward for me ... I now have working WiFi (2.4Ghz & 5Ghz 802.11 AC) and BT4.1 in all OS's and i can now put WiFi and BT to bed.
In my opinion the DW1830 ( BCM43602 / BCM20450 combo) is a far superior card to the BCM94352Z ... this might not be true for all cases and will depend largely on if you can get your desktop/laptop to see the card on the PCI bus, but if it does you will see much better WiFi performance and far more stable BT support in any OS.
If your already running a BCM94352Z that is installed correctly you should only need to disable the 'fvco' and BT handoff Clover patches, if your not getting full 5Ghz AC WiFi speeds use the #a country code patch.
Just thought i'd share what i've leant so far with this card.
Cheers
Jay
Update-1: Since posting the above i've now noticed WiFi issues after sleep, please see this
thread for more info and workaround.
Update-2: After updating to High Sierra 10.13.6 i had a few issues with Hand Off & Continuity ... turns out this is a known issue as the Clover Continuity binary patch method no longer works in 10.13.6. The Solution that worked for me was as follows:-
1. Remove FakePCIID_Broadcom_WiFi.kext ( also FakePCIID.kext if not using any other of Rehabman's FakeXXXX.kexts)
2. Install
AirportBrcmFixup.kext (also requires latest
Lilu.kext if not already installed)
3. Remove All Clover WiFi & BT Patches from config.plist
4. Ensure you have
BrcmPatchRAM2.kext and BrcmFirmwareRepo.kext kext Installed
As an added bonus using this method I no longer have the issue with poor WiFi bit-rates after Sleep/Wake so no need for the workaround detailed in
Update-1. I believe that the AirportBrcmFixup kext does a much better and more complete card initialisation with the DW1830 than other methods as well as patching MacOS.
Note: All Kext's should be installed in /L/E for MacOS 10.12.X and above, see this guide for more info :-
Installing 3rd Party Kexts in /Library/Extensions Note: This guide was originally written to support MacOS Mojave and older versions (< r5200) of the Clover boot-loader. The methods detailed here are now considered legacy methods and should only used with older versions of MacOS as detailed...
www.tonymacx86.com
Update-3: As reported by
@sparc1234 in
this post, it seems that disabling "Wake On Magic Packet" and "Wake on Pattern Match" can resolve the badly timed interrupt that I reported above and stop Windows 10 from crashing when using a DW1560 combo card.
Update-4: If you have issues with Handoff and/or Continuity then install
BT4LEContinuityFixup which is another Lilu plugin, for more info on Lilu, AirportBrcmFixup and BT4LEContinuityFixup see this guide :-
An iDiot's Guide To Lilu and its Plug-in's Last Update: 22nd Jan 2021 (Add note about OpenCore config.plist modifications) About this Guide Note: This guide was written when Clover was the boot loader of choice as such the config.plist examples in this guide are mostley Clover specific ... if...
www.tonymacx86.com