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 可以直接删除(无论博通和英特尔都一样),也无需设置最大最小内核;
可以直接看图操作:
完成后,记得保存然后重启,如果无效,请关机冷启动,清除 Kext 缓存,或尝试重置 NVRAM。
评论(0)