首页 > 其他分享 >如何在 macOS Sonoma 及更高版本上修复 Broadcom WiFi

如何在 macOS Sonoma 及更高版本上修复 Broadcom WiFi

时间:2023-10-25 14:14:19浏览次数:37  
标签:macOS Sonoma Broadcom kext WiFi config plist

如何在 macOS Sonoma 及更高版本
本指南介绍了使用 Clover 和 OpenCore 在 macOS Sonoma 及更高版本上修复 Broadcom WiFi。通过遵循本指南,您将能够使用 Clover 或 OpenCore Bootloader 在 macOS Sonoma 及更高版本上启用基于 Broadcom 的 WiFi。本指南仅适用于 OpenCore 用户,可能不适用于 Clover,因为除了通过 Clover GUI 选择器手动完成之外,它没有永久阻止 kext 的选项。如果 Clover 获得这样的功能,本指南将在未来更新。

仅在 macOS Sonoma 及更高版本上必须遵循本指南。如果您运行的是早期版本的 macOS,则可以使用适用于 macOS Ventura 的原始 Broadcom WiFi 和蓝牙指南:
概述

最近,Apple 于 2023 年 6 月 6 日宣布了新的 macOS 系列,即 macOS Sonoma,并于今年秋季即 2023 年 9 月 26 日公开发布了最终版本。不幸的是,随着 macOS Sonoma 的发布,Apple 已正式放弃对 Skylake 的支持,包括 IGPU 支持,其次是 macOS Ventura。然而,我们看到的最大的失败是 macOS Sonoma 中取消了 Broadcom WiFi 支持。这让使用安装了 macOS 的非 Apple 电脑的用户感到非常失望。

如果您不是新手并且熟悉运行 macOS 的非 Apple 电脑,您可能已经知道,在非 Apple 电脑上,Broadcom WiFi 通常是原生 WiFi/BT 功能的首选(例如 Fenvi T919、BCM94360NG、BCM94352Z 等) )。然而,自从 macOS Sonoma 发布以来,Apple 已经取消了对所有未焊接的 Broadcom WiFi 的支持,因此如果您有任何此类型号,则 WiFi 目前将无法工作。如果您检查 S/L/E,您会注意到对基于 Broadcom 的旧 WiFi 卡的支持完全不存在,并且所有相关的 kext 都从相应的目录中删除。这意味着即使您安装了原生 WiFi 卡(例如 Fenvi T919 或 BCM94360NG),由于缺少所需的驱动程序,WiFi 仍然无法工作。英特尔等第三方 WiFi 将继续与第三方 kext 配合使用。此外,具有 Realtek/MediaTek 芯片组的基于 USB 的 WiFi 也将与其制造商提供的驱动程序配合使用。不过,由于 OCLP 团队对旧硬件的持续支持,仍然有一种解决方法可以让这些卡在 macOS Sonoma 上运行。

Apple 开始从 Monterey 给出提示,其中 AirPortBrcmNIC 作为插件移至新位置,并引入了新的 kext IO80211FamilyLegacy.kext。为了支持其他最新的 WiFi 型号,自 macOS Ventura 以来引入了新的 kext AppleBCMWLANBusInterfacePCIeMac.kext,并快进到 macOS Sonoma,IO80211FamilyLegacy.kext 已被完全删除并且不再存在。这清楚地告诉我们,苹果已经计划淘汰旧型号,并在未来版本中取消对旧型号的支持,因为他们从英特尔转向了自己的基于 Apple Silicon 的 Mac 系列。这并不是苹果第一次这样做。这种做法在苹果公司很常见,如果你是苹果爱好者,你可能会知道。

您可能有一个疑问,苹果长期以来一直在其 Mac 机型中使用 Broadcom WiFi,

这是否意味着支持 macOS Sonoma 的本机支持的 ​​Mac 机型将缺乏 WiFi 功能?嗯,答案是否定的。那是因为

因此,使 WiFi/BT 卡处于不可用/不工作状态。


它在菜单栏中都不可用。



要求

以下是在 macOS 上启用 Broadcom WiFi 的要求。在继续阅读本指南之前,请确保您满足要求。
如果您尝试全新安装或升级,强烈建议您先执行全新安装或升级,然后再按照本指南进行操作。

第 1 步:设置BIOS
第一步是设置 BIOS 以在系统上启用 Broadcom WiFi/BT。这是因为有一些系统可以选择在 BIOS 中启用 WiFi/BT,这会影响 macOS/OS X 下的功能。

  1. 在目标计算机上,启动至 BIOS。请参阅您的用户手册了解 BIOS 密钥
  2. 启用 WiFi/BT 功能。
  3. 保存并退出设置。

第 2 步:验证 WiFi检测
下一步是验证 macOS 下是否检测到安装的卡。需要执行此步骤,以确保您走在正确的轨道上,并且根据兼容性列表拥有正确的卡。如果未检测到该卡,即使正确遵循指南也无助于识别该卡。此外,并非所有 WWN 插槽都是 M.2。有一些带有 cNVi 插槽的系统,即使您用兼容的卡更换卡,也根本不会检测到该卡。这是因为英特尔专有的连接接口。这意味着主板上的特定 CNVi 插槽仅接受基于 Intel 的 WiFi/BT 卡,因此如果更换该卡,则必须验证 WiFi/BT 模块的检测。要验证 WiFi/BT 检测,请按照以下步骤操作。

  1. 从下载部分下载 Hackintool。
  2. 打开 Hackintool。
  3. 在 Hackintool 的 PCIe 部分下找到您的 WiFi 模块。WiFi 模块通常在“类”和“子类”列下列为网络控制器。

    第 3 步:添加所需的Kexts
    下一步是安装所需的驱动程序以启用 WiFi 和蓝牙支持。根据您的卡类型,从下面选择一种。

I. Apple Airport 和 Fenvi 卡

要启用 WiFi 支持,您需要添加IOSkywalkFamily.kext和IO80211FamilyLegacy.kext以及子 kext AirPortBrcmNIC.kext。这两个 kext 需要协同工作,才能为基于 Airport 和 Fenvi 的卡启用 WiFi。

1.下载IOskywalkFamily.kext和IO80211FamilyLegacy.kext。
2.安装 ESP。
3. 将IOSkywalkFamily.kext和复制IO80211FamilyLegacy.kext到 EFI/OC/Kexts目录。

4. 打开您的 config.plist 部分config.plist并添加IOSkywalkFamily.kext条目IO80211FamilyLegacy.kext。Kernel>Add此外,您需要指定 MinKernel 以23.0.0确保 kext 仅在 macOS Sonoma 上加载。

注意:您的 kext 列表和条目可能会有所不同,因为每个系统都不同并且有不同的要求。
二. 非Apple AirPort和非Fenvi卡

通过注入IOSkywalker.kext + IO80211FamilyLegacy.kext(由AirPortBrcmNIC.kext组成)并使用OCLP修补(指南后面),本机卡将可以工作(例如Fenvi T919,BCM94360NG , ETC)。但是,如果您的卡没有任何这些匹配 ID(14E4:43ba、14e4:43a3 或 14e4:43a0),例如 BCM94352Z,则还需要注入 AirPortBrcmFixup.kext 才能驱动它们。难怪尽管这些卡受到支持,但它们不能 OOTB 工作,并且始终需要 AirPortBrcmFixup.kext 和相关的蓝牙驱动程序才能工作!这是因为这些卡大多不是 Apple 制造的卡。此步骤仅适用于非 Apple Airport 和非 Fenvi 卡,即在 macOS Ventura 或更低版本中无法进行 OOTB 操作的卡(例如 BCM94352Z)。如果您拥有带设备 ID(14E4:43ba、14e4:43a3 或 14e4:43a0)的 Apple AirPort 和 Fenvi 卡,请跳过此步骤。

  1. 下载IOSkywalkFamily.kext、IO80211FamilyLegacy.kext和AirPortBrcmFixup.kext。
    2.安装 ESP。
  2. 将IOSkywalkFamily.kext、IO80211FamilyLegacy.kext、复制AirPortBrcmFixup.kext到 EFI/OC/Kexts目录中。
  3. 打开config.plist 部分config.plist并添加IOSkywalkFamily.kext,IO80211FamilyLegacy.kext,和AirPortBrcmFixup.kext条目。Kernel>Add此外,如果使用相同的 EFI 引导多个 macOS 版本,您还需要指定 MinKernel 和 MaxKernel(如下所示),以确保 kext 仅在适当版本的 macOS 上加载。
  4. 你必须阻止AirPortBrcm4360_Injector.kext加载。这可以通过以下方式实现:(i) 删除 kext 条目以保持 config.plist 更加整洁,或 (ii) 使用引导参数仅加载一个特定驱动程序,或 (iii) 通过设备属性或 (iv) DSDT/SSDT补丁或 (v) 通过指定 MinKernel 和 MaxKernel。

    笔记:
    请确保 kext 以正确的排序顺序加载。
    下载最新版本以获得更好的支持。
    仅下载 RELEASE.zip 文件。
    如果目录中已存在 kext,请将其替换为新版本
    不要使用 AirportBrcmFixup.kext.dSYM
    您的 kext 列表和条目可能会有所不同,因为每个系统都不同并且有不同的要求。
    三.旧卡

尽管这些旧卡以前曾受到支持,但自 Sierra 以来,对 Broadcom 43224 和 Mojave 以来的 Broadcom 4331 的支持已被删除。要启用对这些旧卡(BCM4331 和 BCM43224)的 WiFi 支持,您需要添加corecaptureElCap.kext和IO80211ElCap.kext以及子 kext(AirPortBrcm4331.kext 和AirPortBrcm43224.kext)。这两个 kext 需要协同工作才能为旧卡启用 WiFi。

1.下载corecaptureElCap.kext和IO80211ElCap.kext。
2.安装 ESP。
3. 将corecaptureElCap.kext 和IO80211ElCap.kext到 EFI/OC/Kexts目录。

4. 打开您的 config.plist 部分config.plist并添加corecaptureElCap.kext条目IO80211ElCap.kext。Kernel>Add由于本指南仅适用于 Broadcom,因此您需要删除该AirPortAtheros40.kext条目,如下所示。此外,如果使用相同的 EFI 启动多个 macOS 版本,您还需要指定 MinKernel(如下所示),以确保 kext 仅在适当版本的 macOS 上加载。您还可以根据您的卡使用其中一个 kext 并删除不相关的 kext 以保持 config.plist 更加整洁(指南后面)。

根据您拥有的卡(例如 Broadcom 4331),您可以保留AirPortBrcm4331.kext并删除AirPortBrcm43224.kext以使 config.plist 更加整洁。

根据您拥有的卡(例如 Broadcom 43224),您可以保留AirPortBrcm43224.kext并删除AirPortBrcm4331.kext以使 config.plist 更加整洁。

注意:您的 kext 列表和条目可能会有所不同,因为每个系统都不同并且有不同的要求。

第 4 步:阻止所需的Kexts
下一步是阻止 IOSkywalk.kext。仅现代 WiFi 需要此步骤,无论 Apple AirPort 和 Fenvi 卡还是非 AirPort 和非 Fenvi 卡。如果您有旧卡,则可以跳过此步骤。在 macOS Sonoma 中阻止IOSkywalkFamily.kext将允许我们手动注入以前版本的IOSkywalkFamily.kext,从而允许我们降级。这是必需的,因为除非您不阻止此 kext,否则您将无法注入之前版本的IOSkywalkFamily.kext,并且虽然IOSkywalkFamily.kext注入之前版本时没有阻止,但从系统驱动器启动时会抛出错误。要阻止IOSkywalk.kext,请按照以下步骤操作。

  1. 假设config.plist仍处于打开状态,请Kernel>Block在config.plist. 此外,您需要指定 MinKernel 以23.0.0确保仅在 macOS Sonoma 上阻止 kext。
Arch Identifier* Comment MinKernel MaxKernel MaxKernel Strategy Enabled
Any com.apple.iokit.IOSkywalkFamily Allow IOSkywalkFamily Downgrade 23.0.0 Exclude YES

注意:完成根修补并启用 WiFi 后,您可以再次将 SecureBootModel 设置为默认值。

第 6 步:添加引导参数
禁用安全启动模型后,下一步是添加所需的启动参数。要添加启动参数,请按照以下步骤操作

  1. 假设config.plist仍然打开,将启动参数添加到config.plist 部分的UUID 列表amfi=0x80下的 boot-args 项。7C436110-AB2A-4BBB-A880-FE41995C9F82NVRAM


快速信息:使用amfi=0x80boot arg 时,某些应用程序可能不会响应并最终崩溃,例如@svan71报告的 Firefox 。

第 7 步:禁用系统完整性保护 (SIP )
添加所需的启动参数后,下一步是禁用系统完整性保护。要禁用 SIP,请按照以下步骤操作。

  1. 假设config.plist仍然打开,将 设为csr-active-configDATA03080000值以进行根修补
  2. 保存您的config.plist.

第 8 步:使用新配置
完成上述步骤后,您需要使用更新的配置启动。只需重新启动系统即可。建议至少重置 NVRAM两次。

一旦您使用新配置启动,系统将在注入所需的 kext 时启用 wifi。但是,您将无法找到和/或连接到任何网络。


菜单栏中的 WiFi 网络均不可用

如果检查 IOReg,您会发现 AirPort_BrcmNIC 或 IOSkywalk Kext 均未加载。

第9步:修补系统卷
要使用 OCLP 修补系统,请按照以下步骤操作。

  1. 从本论坛的下载部分下载 OpenCore Legacy Patcher (OCLP)。

  2. 打开 OCLP,您将看到类似于下面所附屏幕截图的内容。

  3. 单击“安装根补丁后”,您将看到类似于下面所附屏幕截图的内容

    如您所见,OCLP 已自动检测要应用的补丁。如果启用了 SIP,您可能会注意到一条消息“SIP 已启用”


如果您注意到这一点,请确保按照步骤 #1 中的说明禁用它。

单击“Start Root Patching”(开始根修补),您需要以 root 身份运行 OCLP。您将看到类似于下面所附屏幕截图的内容。

单击是以 root 身份重新启动 OCLP。出现提示时,输入您的系统密码。您将看到类似于下面所附屏幕截图的内容。

**
一旦 OCLP 以 root 身份启动,它将开始修补系统卷。

一旦 OCLP 完成对系统卷的修补,它将提示重新启动。单击重新启动以重新启动系统。


第 10 步:重新启动系统
执行完上述所有步骤后,重新启动系统以使应用的更改生效。建议至少重置 NVRAM两次。

验证WiFi
下一步是验证 WiFi 和 BT 是否工作。按照以下步骤验证 WiFi 功能。

系统报告
在“关于本机”>“系统报告”>“Wi-Fi”中验证 WiFi 接口

系统偏好设置
在“系统偏好设置”>“网络”中验证 WiFi 的可发现性

系统报告
在“关于本机”>“系统报告”>“Wi-Fi”中验证 WiFi 接口连接是否为 2.4GHz 和 5GHz

以下内容为恢复开启sip 以及按照上面的配置减少amfi=0x80内容 配置完oc 重启重置 2次 nvram 不然好多软件无法使用

像我这样子的说明是开启了SIP

在OpenCore中关闭SIP · NVRAM · Add · 7C436110-AB2A-4BBB-A880-FE41995C9F82 · csr-active-config 类型值: 67000000 值从00000000修改为67000000 ![](/i/l/?n=23&i=blog/1334552/202310/1334552-20231025140228653-619881400.png)

关闭方法

在OpenCore中开启SIP
· NVRAM
· Add
· 7C436110-AB2A-4BBB-A880-FE41995C9F82
· csr-active-config 类型值: 00000000
值从67000000修改为00000000

来自原文:https://elitemacx86.com/threads/how-to-fix-broadcom-wifi-on-macos-sonoma-and-later.1415/

标签:macOS,Sonoma,Broadcom,kext,WiFi,config,plist
From: https://www.cnblogs.com/wkvip/p/17787077.html

相关文章

  • [macOS] quit when last window close
    1.BTT中进行设置  2. 添加blockingapplescript: ```tellapplication"SystemEvents"setactiveProcessestofirstprocesswhereitisfrontmostrepeatwiththeProcessinactiveProcessesifnotbackgroundonlyoftheProcessthen......
  • [macOS] 打开应用的多个实例
    TryingtousetheFindertoopenmultipleinstancesofanapplicationonMacOSXwillsimplycausethefirstinstancetocometotheforeground.Togetaroundthis,usethe open commandfromthecommandlinewiththe -n option.The -n optionopensanew......
  • Nessus 10.6 Auto Installer for macOS Sonoma (updated Oct 2023)
    Nessus10.6AutoInstallerformacOSSonoma(updatedOct2023)发布Nessus试用版自动化安装程序,支持macOSSonoma、RHEL9和Ubuntu22.04请访问原文链接:https://sysin.org/blog/nessus-auto-install-for-macos/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......
  • CrossOver 23.6 for Mac:在 macOS 上运行 Windows 应用
    CrossOver23.6forMac:在macOS上运行Windows应用请访问原文链接:https://sysin.org/blog/crossover-23/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCrossOver:在macOS、Linux和ChromeOS上运行您的Windows®应用对比所有跨平台方案对比内容CrossOv......
  • Replacing gcc and g++ with GNU version in macOS
    AfterweinstallXcodeCommandLineTools,wewillgetgccandg++in/Library/Developer/CommandLineTools/usr/binandthesamecontentsin/usr/bin.Buttheproblemisthatgccandg++aresameasclangandclang++.Proofcanbeobtainedfromthefollowin......
  • 呜呜呜我要拿Go赢他~ Go language MacOs build development environment Hello! Go !
    前言Go编程语言是一个开源项目,旨在提高程序员的工作效率。Go富有表现力、简洁、干净且高效。它的并发机制使编写能够充分利用多核和联网机器的程序变得容易,而其新颖的类型系统可以实现灵活和模块化的程序构建。Go可以快速编译为机器代码,同时还具有垃圾收集的便利性和运行时反射......
  • MacOS安装 iTerm2
    iTerm2安装通过iterm2网站下载https://iterm2.com/安装即可iTerm2配置配置终端光标类型为Underline配置模糊度......
  • MacOS安装on-my-zsh
    1.on-my-zsh安装1.1.使用curl方式安装1.1.1官方镜像源sh-c"$(curl-fsSLhttps://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"1.1.2国内Gitee加速源sh-c"$(curl-fsSLhttps://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh......
  • 【MacOs】 env: node\r: No such file or directory
    报错的原因:执行具有Windows样式行结尾的js文件,主要发生在Mac/Linux操作系统中。行结尾更改为CRLF(Windows样式)而不是LS(Unix),因此解析器由于该字符“\R”而将换行符作为路径的一部分。通常来自具有js文件的第三方npm包。 解决方案:修改文件的行结尾$brew......
  • Apple macOS Sonoma All In One
    ApplemacOSSonomaAllInOneMBP2018✅/Macmini2018✅macOSSonomafeaturesHRD240FPS慢动作视频壁纸https://www.apple.com/macos/sonoma/https://www.apple.com/macos/sonoma/pdf/macOS_All_New_Features.PDFdemos(......