- Joined
- Jul 22, 2018
- Messages
- 9,287
- Motherboard
- Supermicro X11SPA-T
- CPU
- Intel Xeon W-3275 28 Core
- Graphics
- 2xAMD RX 580 8GB
- OS X/macOS
- 13.x
- Bootloader
- OpenCore (UEFI)
- Mac
- Mac mini
- MacBook Pro
- Mobile Phone
- Android
- iOS
How to Enable Broadcom WiFi on macOS Sonoma and Later without Root Patching
This guide covers fixing Broadcom WiFi on macOS Sonoma and Later using Clover and OpenCore. By following this guide, you'll be able to enable Broadcom based WiFi on macOS Sonoma and Later using Clover or OpenCore Bootloader without root patching.This guide must be followed on macOS Sonoma and later only. If you're running a prior version of macOS, there is the original Broadcom WiFi and Bluetooth guide that works up to macOS Ventura:
GUIDE - How to Enable Broadcom WiFi and Bluetooth on macOS [Clover/OpenCore]
How to Enable Broadcom WiFi and Bluetooth on macOS [Clover/OpenCore] This guide describes how to enable Broadcom WiFi and Bluetooth on macOS using Clover and OpenCore. By following this guide, you'll be able to enable Broadcom WiFi and Bluetooth on your non-Apple computer running macOS using...
elitemacx86.com
Please note that for Bluetooth, the existing guide will serve on macOS Sonoma as well.
Overview
With the announcement of macOS Sonoma, Apple has officially dropped support up to Skylake, including IGPU support, followed by macOS Ventura. However, the biggest downfall we see is the removal of Broadcom WiFi support in macOS Sonoma. This has led to a major disappointment with the users who use non-Apple computers with macOS installed.If you're not new and familiar with non-Apple computers running macOS, you might already know that on non-Apple computers, Broadcom WiFi is generally preferred for a native WiFi/BT function (such as Fenvi T919, BCM94360NG, BCM94352Z, etc). However, since the release of macOS Sonoma, Apple has removed support for all unsoldered Broadcom WiFi so if you have any of such models, the WiFi will not work as of now. If you check S/L/E, you'll notice that the support for older Broadcom based WiFi Cards are absolutely absent and all the related kexts are removed from the respective directory. This means even if you install a native WiFi Card (such as Fenvi T919 or BCM94360NG), the WiFi will still not work due to the lack of required drivers. Third-party WiFi such as Intel will continue to work with third-party kexts. In addition, the USB based WiFi having Realtek/MediaTek chipsets will also work with the supplied drivers from its manufacturer. However, there is still a workaround to get those cards working on macOS Sonoma and Later, thanks to the OCLP team for their continued support for the legacy hardware.
Apple started to give hints from Monterey, where AirPortBrcmNIC was moved to a new location as a plugin, and a new kext IO80211FamilyLegacy.kext was introduced. To support the other latest WiFi models, a new kext AppleBCMWLANBusInterfacePCIeMac.kext was introduced since macOS Ventura and fast forward to macOS Sonoma, the IO80211FamilyLegacy.kext has been completely removed and no longer exists. This clearly tells us that Apple already planned to make the old models obsolete and remove the support in future releases due to their major shift from Intel to their own Apple Silicon based Mac lineups. This is not the first time Apple has done such. This practice is common with Apple and you would have probably known if you're an Apple enthusiast.
Thus, leaving the WiFi/BT card in an unusable/non-working state.
View attachment 6594View attachment 6595
Neither it is available in the Menu bar.
View attachment 6596View attachment 6597
In an effort to make the WiFi working on macOS Sonoma and later, the old workaround was to add the missing kexts and root patch the system volume using OCLP which downgrades the stock IOSkywalkFamily.kext. Although this worked fine, it had its own disadvantages as it broke several Ethernet (including onboard and AICs). Although, not every ethernet model was broken but most of them and the only solution was to use a third-party kext to use the Broadcom WiFi+Ethernet in conjunction. Today, most of the Ethernet chips are driven by the .DEXT and in order to load these new drivers, it heavily relies on the native IOSkywalkFamily.kext which was blocked and downgraded, resulting in broken ethernet. The IOSkwalkFamily serves as a dependency for several Ethernet chips including the high performance ones such as Intel XXV710, XL710, MLX. When you downgrade the IOSkywalkFamily to drive the BCM cards, the ethernet chips depending on the IOSkywalkFamily will no longer function. This is because, the other kexts (driver kit) has their minimum version set and it differs from each to each macOS version. But when you downgrade the IOSkywalkFamily, the other ethernet related kexts simply cannot find the IOSkywalkFamily version it requires and with the downgraded IOSkwalkFamily, you’ll have to downgrade the other related ethernet kexts which were bundled altogether so that the minumum kexts version requirements can be met if you wish to run the ethernet with the downgraded IOSkywalkFamily. See this thread for more information.
The advantage of this new method is that you no longer require to block and downgrade the IOSkywalkFamily and the WiFi works without root patching using OCLP. As a result, this is a preferred choice for users who want to use native ethernet drivers or want to use high speed ethernet that relies on IOSkywalkFamily.kext, giving you a full control over high performance NICs or onboard using the native built-in macOS drivers. However, the support is limited and it does not support several newer Broadcom models.
Requirements
Following are the requirements for enabling Broadcom WiFi on macOS. Please ensure you meet the requirements before proceeding with this guide.| WiFi/ BT Hardware |
|
| macOS |
|
| Bootloader |
|
| Kexts |
|
| Tools |
|
If you're attempting a clean install or an upgrade, it is highly recommended to perform a clean install or the upgrade first before you follow this guide.
STEP 1: Setup BIOS
The very first step is to set up BIOS to have the Broadcom WiFi/BT enabled on your system. This is because there are a few systems that have the option to Enable WiFi/BT in BIOS which affects the functionality under macOS/OS X.1. On your target computer, boot to BIOS. Refer to your user manual for the BIOS Key
2. Enable WiFi/BT function.
3. Save & Exit Setup.
STEP 2: Verify the WiFi Detection
The next step is to verify whether the installed card is being detected under macOS or not. This step is required in order to ensure you're on the right track and you have the right card as per the compatibility list. If the Card is not detected, even following the guide correctly will not help to get it recognized. In addition, not all WWN slots are M.2. There are a few systems with cNVi slots, where even if you replace the card with a compatible one, the card will not be detected at all. This is because of the proprietary connectivity interface by Intel. This means the particular CNVi slot on the motherboard will accept only Intel-based WiFi/BT Cards therefore if you replace the card, you must verify the detection of the WiFi/BT module. To verify the WiFi/BT detection, follow the steps below.1. Download Hackintool from the Download section.
2. Open Hackintool.
3. Locate your WiFi module under the PCIe section in Hackintool. The WiFi module is usually listed as a Network Controller under the Class and Subclass column.
View attachment 6598
STEP 3: Revert Root Patches
BCMC doesn't require the SIP or AMFI to be disabled and relies on Apple's WiFi driver and 802.11 wireless networking stack and you should ensure that the system must not have root patched and no kexts or frameworks should be modified/blocked. . However, if you have used OCLP to root patch the system volume, then you'll have to revert the root patches and remove the related configuration and kexts from the config.plist.1. Mount your ESP.
2. Remove
IOSkywalkFamily.kext, IO80211FamilyLegacy.kext, IO80211ElCap.kext, AirPortBrcmFixup.kext, and AMFIPass.kext from EFI/OC/Kexts directory.3. Open your config.plist and remove the above mentioned kext entries in the Kernel>Add section of your config.plist.
4. Remove the following under
Kernel>Block section of your config.plist.| Arch | Identifier* | Comment | MinKernel | MaxKernel | MaxKernel | Strategy | Enabled |
|---|---|---|---|---|---|---|---|
| Any | com.apple.iokit.IOSkywalkFamily | Allow IOSkywalkFamily Downgrade | Exclude | YES | NO |
5. Remove
amfi=0x80 from the boot-args key under the 7C436110-AB2A-4BBB-A880-FE41995C9F82 UUID list in the NVRAM section of your config.plist.6. Set the csr-active-config to
00000000 as the DATA value.7. Open OCLP and you'll see something similar to the screenshot attached below:
8. Click on Post Install Root Patch and you'll see something similar to the screenshot attached below:
As you can see, the OCLP has automatically detected what patch to apply. If the SIP is enabled, you may notice a message stating "SIP is Enabled"
If you notice that, make sure to disable it as described in STEP #1.
9. Click on Revert Root Patching and you'll need to run OCLP as root. You'll see something similar to the screenshot attached below:
10. Click on Yes to relaunch OCLP as root. When prompted, enter your system password. You'll see something similar to the screenshot attached below:
Once the OCLP is launched as root, it will start reverting the patches on the system volume.
STEP 4: Enable Apple VT-d
Most of the newer drivers require Apple VT-d and IOMapper to function. To enable Apple VT-d, follow the guide linked below:How to Enable Apple VTD on macOS [Clover/OpenCore]
An EliteMacx86 Exclusive Guide - This guide covers the implementation of the Apple VTD function on macOS for Desktops and Laptops. By following this guide, you'll be able to enable VT-d on macOS using Clover or OpenCore Bootloader.
Overview
Intel's VT-d feature provides Kernel DMA Protection which is required by a few Thunderbolt Devices such as Antelope. By enabling VT-d on macOS, a few additional Thunderbolt Devices can be made to work such as Apple's Thunderbolt to Ethernet Adapter. Since macOS Ventura...
An EliteMacx86 Exclusive Guide - This guide covers the implementation of the Apple VTD function on macOS for Desktops and Laptops. By following this guide, you'll be able to enable VT-d on macOS using Clover or OpenCore Bootloader.
Overview
Intel's VT-d feature provides Kernel DMA Protection which is required by a few Thunderbolt Devices such as Antelope. By enabling VT-d on macOS, a few additional Thunderbolt Devices can be made to work such as Apple's Thunderbolt to Ethernet Adapter. Since macOS Ventura...
- EliteMacx86
- amd-vi apple vtd clover dma dmar hackintosh intel kernel dma protection macos opencore virtualization vt-d
- Replies: 14
- Forum: General
STEP 5: Download and Copy WiFi Firmware
The next step is to download the WiFi firmware required by Broadcom FullMAC WiFi cards for a proper functioning.1. Open Terminal and execute the following commands:
Code:
#Clone AppleBCMWLANCompanion
git clone https://github.com/0xFireWolf/AppleBCMWLANCompanion.git
#Create wifi directory on system
sudo mkdir -p /usr/local/share/firmware/wifi/
#Move to AppleBCMWLANCompanion
cd AppleBCMWLANCompanion
#Copy the required firmwares to required location (use the appropriate firmware for your card)
sudo cp -R Firmwares/BCM4350/brcmfmac4350-pcie_7.35.180.119.bin /usr/local/share/firmware/wifi/
sudo cp -R Firmwares/BCM43602/brcmfmac43602-pcie_7.35.177.61 /usr/local/share/firmware/wifi/
2. Quit Terminal
STEP 6: Add Required Device Properties
1. Download Hackintool.2. Open Hackintool.
3. Locate your WiFi module under the PCIe section in Hackintool. The WiFi module is usually listed as a Network Controller under the Class and Subclass column:
4. Right click on the PCI path in the Device Path column and select Copy Device Path.
5. Mount your ESP.
6. Open config.plist and navigate to the DeviceProperties section.
7. Click on the + button and add the device path that you copied from Hackintool
8. Add the following key to the device path you added:
| Key | Value | Type | Required | Notes |
|---|---|---|---|---|
| bcmc-firmware-path | /usr/local/share/firmware/wifi/<FirmwareName>.bin | String | Yes | <FirmwareName>.bin is the firmware file name. |
| bcmc-firmware-hash | bf4cfc23ee952a3d82ef33a0f5f87853201c98f1bed034876a910f354f37862d (BCM43602) 5691d1e0ceb70baf18efb7a0ec6cb84feb9edd2d0700c525b42930c4e7e4b845 (BCM4350) | DATA | Yes | |
| bcmc-srom-slide | 00000000 for BCM43602, 40000000 for BCM4350 | DATA | Yes | Required for BCM4350. Not Required for BCM43602. |
| bcmc-disable-io-mapper | 00000000 to enable the IOMapper, 01000000 to disable the IOMapper | DATA | For systems that don't have Apple VT-d enabled. Mainly meant for AMD platforms | When the IOMapper is disabled (on AMD platforms), the network speed is reduced to an extent. |
| bcmc-default-country-code | String | No | Specify the Country code that will be used by the firmware. | |
| bcmc-enable-auto-country | 00000000 to disable the country code automatically, 01000000 to set the country code automatically | DATA | No | Specify whether the firmware should set the country code automatically. |
STEP 7: Add Required Kexts
The next step is to install the required kexts in order to enable WiFi support. To enable the WiFi support, you'll need to addAppleBCMWLANCompanion.kext along with the Lilu.kext. These two kexts are needed together to work in conjunction in order to enable the WiFi.1. Download AppleBCMWLANCompanion.
2. Extract the downloaded RELEASE.zip file.
3. Mount your ESP.
4. Copy AppleBCMWLANCompanion.kext to
EFI/OC/Kexts directory.5. Open your
config.plist and add AppleBCMWLANCompanion.kext entry in the Kernel>Add section of your config.plist. In addition, you'll need to specify the MinKernel to 23.0.0 to ensure that the kext only loads on macOS Sonoma and Later.NOTES:
- Please ensure the kexts are loading in the correct sorting order. AppleBCMWLANCompanion requires Lilu to function and must load after Lilu.kext.
- Download the latest version for better support.
- Download only the RELEASE.zip file.
- If the kext is already present in the directory, replace it with a new version
- Your kext list and entries may differ as each system is different and will have different requirements.
STEP 7: Add Boot Args
Once you have added the required kexts, the next step is to add the required boot args. To add the boot args, follow the steps below:1. Assuming the
config.plist is still open, add wlan.pcie.detectsabotage=0 to the boot-args key under the 7C436110-AB2A-4BBB-A880-FE41995C9F82 UUID list in the NVRAM section of your config.plist.2. Save config.plist.
STEP 8: Boot using the new Configuration
Once you're done with the above steps, you'll need to boot with the updated configuration. Simply restart your system for the applied changes to take effect. It is recommended to reset NVRAM twice at least.Verifying the WiFi
The next step is to verify whether the WiFi and BT are working or not. Follow the steps to verify the WiFi function.System Report
- Verify the WiFi Interface in About This Mac>System Report>Wi-Fi
System Preferences
- Verify WiFi discoverability in System Preferences>Network
System Report
- Verify the WiFi Interface connection with 2.4GHz and 5GHz in About This Mac>System Report>Wi-Fi
System Preferences
- Verify WiFi connection in System Preferences>Network
Menubar
- Verify connected WiFi Networks and Other Networks
Menubar
- Verify the network details such as signal strength and channel number using the Alt key.
View attachment 6656View attachment 6657
IOReg
- Verify AirPort_BrcmNIC and AirPort_Brcm43xxLLSkywalkInterface is loading in IOReg
Browser
- Verify the speed tests for 2.4GHz and 5GHz Network
View attachment 6662 View attachment 6663
Limitations and Known Issues
The current limitations and known issues are outlined below:AppleBCMWLANCompanion/Documentation/Issues.md at main · 0xFireWolf/AppleBCMWLANCompanion
Revive your legacy Broadcom Wi-Fi cards on macOS Sonoma, Sequoia, and Tahoe without root patches - 0xFireWolf/AppleBCMWLANCompanion
Last edited: