Jump to content

Wifi in Sonoma/Sequoia: Patching for legacy Broadcom wireless cards


Jake Lo

Recommended Posts

  • Moderators

Wifi in Sonoma & later: Patching for legacy Broadcom wireless cards

 

Sonoma has dropped support for our beloved legacy Broadcom wireless devices (DW1560, DW1820A, DW1830).  If you opt for a legacy BCM4352, BCM4360 or BCM43602 wireless card, you'll need to apply OCLP root patches and boot with OpenCore in order to bypass vanilla IOSkywalkFamily kext and inject replacement IOSkywalkFamily+ IO80211FamilyLegacy kexts.

 

Assuming you have a working Broadcom wireless config prior to upgrading to Sonoma. the following steps are added:

1) Download latest OCLP (v1.1.0 at time of writing)

2) Download the necessary kexts (attached below)

3) Configure the following in your Config file

     a) System Integrity Protection is set to 0x803 csr-active-config | data | 03080000

     b) Reset NVRAM or add csr-active-config to Delete to ensure the new variable is set

     c) Secure Boot Model is set to Disabled

     d) Following kexts are blocked:

          i) com.apple.iokit.IOSkywalkFamily Set the Strategy of the blocked kext to "Exclude" 

              a) Set MinKernel to 23.0.0 to ensure patches only apply on Sonoma

     e)  Following kexts are injected in these order:

          i) IOSkywalk.kext

               a) Set MinKernel to 23.0.0 to ensure patches only apply on Sonoma

          ii) IO80211FamilyLegacy.kext

               a) Set MinKernel to 23.0.0 to ensure patches only apply on Sonoma

          iii) IO80211FamilyLegacy.kext has a plugin, AirPortBrcmNIC.kext, ensure this is injected as well

              a) Set MinKernel to 23.0.0 to ensure patches only apply on Sonoma

          iv) AMFIPass.kext

     f) add to bootarg

          i) -amfipassbeta

Screenshot 2023-10-23 at 11.37.43.png

4) Once these are injected, you can run OpenCore-Patcher's Post-Install option and root patch.

Systen will reboot after patching is done.

On reboot, Wireless support should be restored assuming your machine was configured correctly to the above."

1.png2.png

Necessary Kexts

Kexts.zip

 

References:

Edited by Hervé
Edited for Sequoia
  • Like 1
Link to comment
Share on other sites

  • Administrators

Further to my communication of July 2023 and Jake Lo's post above, I can confirm that Clover r5157 now supports blocking of vanilla kext IOSkywalkFamily kext which is required to support and use "legacy" wireless cards in Sonoma, i.e. cards that worked perfectly, natively or not, up to Ventura. This is basically equivalent to the kext exclusion available in OpenCore but limited to IOSkywalkFamily kext. The blocking is available as kext patch called BlockSkywalk and is integrated to latest versions of CloverConfigurator too.

 

Process with Clover is therefore as follows:

  • update or install Clover r5157 (versions r5155 and r5156 are supposed to provide the patch too but I found that it was not working and resulted in a freeze at startup)
  • apply/enable Kernel & Kexts patch BlockSkywalk in your Clover config
  • either
    • add boot arg -amfi_get_out_of_way=1 in your config
  • or
    • add AMFIPass kext provided above by Jake to your kexts/14 or kexts/Other Clover folder and add boot arg -amfipassbeta boot arg in your Clover config
  • add kexts IOSkywalk (renamed copy of older version of IOSkywakFamily kext) and IO80211FamilyLegacy kexts provided above by Jake to your kexts/14 or kexts/Other Clover folder
  • you can keep SIP disabled with CsrActiveConfig set to 0xFEF, I found there was no need to change to, say, 0x803
  • install and run OCLP Patcher and apply Networking: modern wireless or Networking legacy wireless (depending on the card) root patch which should be automatically offered
  • reboot and enjoy recovered wireless services out of your PCIe wireless card

Clover_r5157.pkg.zip     Clover Configurator.zip

 

Example with the Apple BCM94360CS2 card fitted with an adapter board to the M.2 WLAN slot of my Dell Latitude E7270:

CC_BlockSkywalk.jpg

or (as text):

        <key>BlockSkywalk</key>
        <true/>

 

Screenshot 2024-01-17 at 22.50.10.png

 

E7270_Sonoma_SysInfo_PCI.jpg

 

E7270_Sonoma_Settings_Wifi.jpg

 

E7270_Sonoma_Wifi_Services.jpg

  • Like 2
Link to comment
Share on other sites

  • Administrators

Important note about BCM4352 cards (eg: DW1560), given that these are not supported OOB. Injection of the device id or injection of compatibility statement was always required so that it could be activated through AirPortBrcm4360 (older OS X/macOS versions up to Catalina) or AirPortBrcmNIC (Big Sur & later) kexts. In addition, a binary patch of the drivers was required to obtain operation on 5Ghz networks. Injecting the property "compatible    pci14e4,43a0    STRING" only provides operation on 2,4GHz networks.

 

In Sonoma, BCM4352 cards can be fully activated with the above process + injection of Acidanthera's AirportBrcmFixup v2.1.8. With OpenCore, only the AirportBrcmNIC injector needs to be specified for loading in the config, AirportBrcm4360 injector being irrelevant (target kext not present).

 

The injector does exactly what its name implies: it injects the missing device id (eg: 14e4:43b1 for the DW1560) in the AirPortBrcmNIC PlugIn of IO802FamilyLegacy kext. The binary/executable module of the kext handles the binary patch required to obtain operation on 5GHz networks.

 

For BCM4350 cards (eg: DW1820a), no changes to what was required with previous macOS versions. It's a simple matter of applying the above process is + injecting the property "compatible   pci14e4,43a0   STRING". No need of AirportBrcmFixup.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...