2021 年 6 月初的 WWDC2021 上,苹果发布了下一代 macOS,代号 Monterey(蒙特雷),大版本号 12.0。爱折腾爱尝鲜的黑苹果小伙伴们已经通过各种折腾安装上了新版 macOS。但是很快出现了各种各样的驱动问题,其中比较突出的是蓝牙掉驱动并且卡跑码问题。Monterey 大幅精简了蓝牙框架,原因是 macOS 12.0 砍掉了 2015 年之前机型的支持,另外可能也是为通用控制做准备。

很快,OC 团队做出反应添加了解决方案。说起来也简单,就是新加一个驱动:BlueToolFixup.kext,然后在 macOS 12.0 取消蓝牙 injector(注入器)的加载。

「注意」

  • BlueToolFixup.kext 目前是 BrcmPatchRAM 文件包中的一部分,新版本发布会直接包括这个文件,英特尔蓝牙也需要这个驱动;
  • 使用奋威 T919 或其它免驱动型网卡的,无需担心蓝牙兼容性问题,在 Monterey 里依旧无需任何驱动。

 

解决方法

  • 将 Lilu 升级到 1.5.7 及以上;
  • 博通卡:将 BrcmPatchRAM 升级到 2.6.1 及以上;
  • 英特尔:将 IntelBluetoothFirmware 升级到 2.0.1 及以上;
  • 关闭 OpenCore 的 XhciPortLimit,位于 config → Kernel → Quirks 区域,在升级或安装 macOS Monterey 之前,建议定制好 USB 接口;
  • 将 BlueToolFixup.kext 放到 Clover/OpenCore 对应的 kext 目录
    • OpenCore:/EFI/OC/Kexts/
    • Clover:/EFI/CLOVER/Kexts/Other/
  • 最后,按照下一章节的说明修改 config.plist 文件。

 

Clover 方法

Clover 使用文件夹名称来区别各个系统加载的 kext,所以可以这么操作:

  • 博通卡:把 BrcmBluetoothInjector.kext 从 /EFI/CLOVER/Kexts/Other/ 挪到 /EFI/CLOVER/Kexts/11.0/,将 BlueToolFixup.kext 放到 /EFI/CLOVER/Kexts/12.0/
  • 英特尔:把 IntelBluetoothInjector.kext 从 /EFI/CLOVER/Kexts/Other/ 挪到 /EFI/CLOVER/Kexts/11.0/,将 BlueToolFixup.kext 放到 /EFI/CLOVER/Kexts/12.0/

如果没有 11.0/12.0 的文件夹,自己新建就可以。这样一来 Clover 在引导 11.0 时会加载 Injector,但是引导 12.0 时则不会加载 Injector,会加载 BlueToolFixup.kext 。其它 Kext 文件继续放在 Other 目录无影响。

「注意」以上方法如果不起作用,那么在迁移到 Monterey 时,需要手动从 Kext 目录移除 Injector 文件。「提示」如果你没有从 12.0 切换到低版本 macOS 的需求,xxxxInjector .kext 可以直接删除(无论博通和英特尔都一样),无需设置文件夹;

 

OpenCore 方法

OpenCore 用户推荐使用另一种方法,利用 OpenCore 的最小内核(MinKernel)和最大内核(MaxKernel)特性,给 injector 设置最大内核 20.99.99,也就是对应 macOS Big Sur 11.0,给 BlueToolFixup.kext 设置最小内核 21.0.0,对应 macOS Monterey 12.0。

「提示」如果你没有从 12.0 切换到低版本 macOS 的需求,xxxxInjector .kext 可以直接删除(无论博通和英特尔都一样),也无需设置最大最小内核;

可以直接看图操作:

黑苹果修复博通/英特尔蓝牙在macOS Monterey 12.0 正式版中失效的方法

黑苹果修复博通/英特尔蓝牙在macOS Monterey 12.0 正式版中失效的方法

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。