Kexts 也有顺序的要求,而且有些 Kexts 会冲突无法开机,关于这块也比杂了,因为 Kexts 的开发者都不相同,所以国光我只能尽力去描述了,如果文档描述不清楚的话,可以去看 B 站对应的讲解视频。
ProperTree 在进行 Cmd/Ctrl + Shift + R 或者使用图形化菜单选择 「Clean Snapshot」操作的时候,会自动调整 Kexts 的加载顺序并且禁用掉冲突的 Kexts
实际上 OpenCore Configurator 也有这个功能,点击底部的「检查 Kexts」即可:
软件自动调整的顺序不一定是最准确的,因为他不知道你用了哪些乱七八糟的 Kexts,所以有时候还需要我们手动调整下 Kexts 的加载顺序。
OpenCore Configurator 操作比较简单,选择好你要操作的 Kext,然后直接上下拖动即可调整顺序:
QtOpenCoreConfig 虽然无法直接拖动,但可以使用底部的「向上」和「向下」箭头的图标来调整 Kexts 的加载顺序:
- Lilu.kext
- VirtualSMC.kext
- WhateverGreen.kext
- SMCBatteryManager.kext (台式机不需要)
- SMCLightSensor.kext (台式机不需要)
- SMCProcessor.kext
- SMCSuperIO.kext
- AppleALC.kext
- AirportBrcmFixup.kext
- BrcmBluetoothInjector.kext
- BrcmFirmwareData.kext
- BrcmPatchRAM3.kext
直接加载 AirportBrcmFixup.kext 会发现实际上加载了 3 个 Kext:
- AirportBrcmFixup.kext
- AirportBrcmFixup.kext/Contents/PlugIns/AirPortBrcmNIC_Injector.kext
- AirportBrcmFixup.kext/Contents/PlugIns/AirPortBrcm4360_Injector.kext
其中安装 Big Sur 以及更新版本的话,AirPortBrcm4360_Injector.kext 默认情况下会出问题,所以需要我们设置一下最大内核为 19.9.9 ,这样可能会减少一些异常错误:
另外,BCM94352Z 芯片的网卡往往还需要在启动项里面添加:brcmfx-driver=2
解决一些睡眠或者其他玄学问题:
- AirportItlwm.kext
- IntelBluetoothInjector.kext
- IntelBluetoothFirmware.kext
- VoodooPS2Controller.kext
- VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard.kext
- VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Mouse.kext
- VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Trackpad.kext
- VoodooPS2Controller.kext/Contents/PlugIns/VoodooInput.kext
- BrightnessKeys.kext(功能亮度调节按键驱动 不一定需要)
- VoodooI2C.kext/Contents/PlugIns/VoodooI2CServices.kext
- VoodooI2C.kext/Contents/PlugIns/VoodooGPIO.kext
- VoodooI2C.kext
- VoodooI2CHID.kext
- VoodooPS2Controller.kext
- VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard.kext
- VoodooI2C.kext/Contents/PlugIns/VoodooInput.kext
- BrightnessKeys.kext (功能亮度调节按键驱动 不一定需要)
补充一个小姿势:因为 IC2 和 PS2 都有 VoodooInput.kext,所以如果不删除掉或者禁用掉 PS2 的 VoodooInput.kext 的话,会导致开机内核冲突卡死无法开机。
- ApplePS2SmartTouchPad.kext/Contents/PlugIns/ApplePS2Controller.kext
- ApplePS2SmartTouchPad.kext/Contents/PlugIns/ApplePS2Keyboard.kext
- ApplePS2SmartTouchPad.kext
首先确保 VoodooPS2 配置如下:
- 启用
- VoodooPS2Controller.kext
- VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Mouse.kext
- VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Keyboard.kext
- VoodooPS2Controller.kext/Contents/PlugIns/VoodooPS2Trackpad.kext
- 禁用
- VoodooPS2Controller.kext/Contents/PlugIns/VoodooInput.kext
然后启用加载基础的 RMI 配置:
- VoodooRMI.kext
- VoodooRMI.kext/Contents/PlugIns/VoodooInput.kext
如果你是 SMBus 触控板的话,还需要加载:
- VoodooSMBus.kext
- VoodooRMI.kext/Contents/PlugIns/RMISMBus.kext
如果你是 I2C触控板的话,还需要加载:
- VoodooI2C.kext
- VoodooRMI.kext/Contents/PlugIns/RMII2C.kext