Skip to content

Latest commit

 

History

History
279 lines (221 loc) · 16.5 KB

3-4.md

File metadata and controls

279 lines (221 loc) · 16.5 KB

4. 准备 Kexts

基本概念

Kext 的英文全称叫做 Kernel Extension,即内核扩展,我们可以通俗的理解为这个就是 macOS 的驱动,使用方法只需要将这些 kext 文件放入到 EFI/OC/kexts 文件夹下面,然后编辑 OC 配置文件加载这些 kexts 并调节好顺序即可。

下载 Kexts

下面国光来简单列举一些下载 Kexts 的方法:

  1. 使用 OpenCore Configurator 这类第三方 OC 编辑器软件下载
  2. 搜索引擎搜索 Kexts 的Github 下面地址,手动去 Releases 里面寻找编译好的 kext 文件
  3. 使用 OC 官方的下载页面来下载常见的 kexts:https://dortania.github.io/builds/

Kexts 的分类

必备驱动

必备的 kexts 如果缺失的话,你的黑苹果系统就无法启动了

  • VirtualSMC.kext
    • 模拟白苹果的 SMC 芯片
    • 替代古老的 FakeSMC
    • 只支持 OS X 10.6+ 版本的系统
  • Lilu.kext
    • 很多著名 kexts 的依赖,没有 Liu 就无法正常使用 AppleALC、WhateverGreen、VirtualSMC 等
    • 只支持 OS X 10.8+ 版本的系统

VirualSMC 插件

大家下载好 VirtualSMC 编译好的 kexts 的话,会发现里面还躺着其他的 kexts,这些其他的 kexts 就是 VirtualSMC 的插件了,下面来列举说明一下这些插件的作用:

  • SMCBatteryManager.kext
    • 笔记本专用,用于正确读取显示电池容量
  • SMCDellSensors.kext
    • 某些 Dell 机器专用,一般不是 Dell 的机器不需要使用
    • 对支持 SMM(系统管理模式)的 Dell 机器的风扇进行更准确的监视和控制
  • SMCLightSensor.kext
    • 笔记本专用,用于笔记本电脑上的环境光感应器
    • 大多都的笔记本都没有这个感应器,所以就算用了也只是伪感光
  • SMCProcessor.kext
    • 用于监控 CPU 温度,台式机和笔记本都适用
    • 不支持 AMD 的 CPU
  • SMCSuperIO.kext
    • 用于监控风扇的转速,台式机和笔记本都适用
    • 不支持 AMD 的 CPU

显卡驱动

  • WhateverGreen.kext
    • 基本上所有的核显和独显都要使用这个 kext
    • 用于图形修补、DRM 修复、缓冲区修复等
    • 只支持 OS X 10.8+ 版本的系统

声卡驱动

  • AppleALC.kext

    • 用于 AppleHDA 修补,支持大多数的板载声卡驱动
    • 文件夹下的 AppleALCU.kext 是 AppleALC 的精简版,仅支持数字音频
    • AMD 的主板和 CPU 可能会遇到一些问题,很少可以驱动麦克风
    • 只支持 OS X 10.8+ 版本的系统
  • VoodooHDA.kext

    • 比较古老且经典的声卡驱动,也叫万能声卡驱动
    • 如果 AppeALC.kext 无法驱动话可以考虑这个
    • 但是使用体验完美度肯定不如原生的 AppleALC.kext 的
    • 只支持 OS X 10.6+ 版本的系统

USB 驱动

  • USBInjectAll.kext
    • RehabMan 康复者之前的 USB 驱动
    • 18 年 11 月发布的 0.7.1 是最后应该版本,后面再没有更新过
    • 用于在 ACPI 中没有定义 USB 端口的系统上注入 Intel USB 控制器
    • Skylake+ 的桌面CPU 不需要这个
      • AsRock 华擎主板的话可能还是需要这个
      • Coffee Lake 貌似也还是需要这个
      • Skykak 之前的 CPU 理论上也是需要
    • 支持 OS X 10.11+ 版本的系统

写到这里的时候感慨万千,RehabMan 可以说是黑苹果届的元老了,他也是 Tonymacx86 的一位版主,很多著名的黑苹果 kexts 都出自于他的手里,但是因为种种原因 18 年之后就再也没有活跃了,销声匿迹仿佛这个人没有来过一样,但是江湖上依然还有他的传说:Can we all thank RehabMan

我真的是太佩服这种人了,十年如一日的在论坛里面解答问题,定期更新这开源的 kexts,甚至有些 Apple 苹果开发者都来像他学习。黑苹果比较讽刺的是,伸手党没有感恩之心的人太多了,也许他安装系统遇到困难的时候就去你的 Github 下面提交 issue 催着你更新,就好像你开源这个驱动就要为他负责到底一样;安装成功之后呢,提问的人也就消失了,甚至连句谢谢都没有说,更不会留下任何有价值的文档信息之类的。这样就会导致很多大佬们每天千篇一律的回答各种重复的毫无技术含量的问题,如果是国光我的话,我肯定坚持不了几天的,但是 RehabMan 坚持了 10 余年,这真的是太令人震撼了。RehabMan 在 TonymacX86 的最后一个帖子说道:“我还在,但忙于其他(现实生活)的事情。将无法回答这里的问题。人是需要学习阅读的。” 但愿,希望真的如此,而不是被这些没有感恩之心的人伤透了心。

  • USBInjectAll.kext
    • 国内黑苹果小兵大佬维护的版本
    • 在 RehabMan 基础性更新完善的版本,目前到了 0.7.7 版本
    • 支持后面新的 400、500 系列主板的支持

说到黑苹果小兵,国光我也很佩服这样的人,初次接触认识他的时候,我还以为是一个 30 多岁的中年人,结果后面才知道他的儿子已经上大学了,而且他也快到了退休的年龄。

黑果小兵也像 RehabMan 一样,写了很多黑苹果教程文章,也开源了很多机型的驱动,而且常年来一直坚持提供黑苹果懒人镜像的下载包,最关键的是都快退休的年龄了,还坚持做黑苹果这个比较“时髦”的技术,真的厉害了,不知道国光我老的时候,还可以坚持做这些吗?哈哈~ 如果黑苹果技术还存在的话。

有线网卡驱动

  • AtherosE2200Ethernet.kext

    • Atheros 高通和 Killer 杀手 网卡 需要
    • 注意:Atheros Killer E2500 型号实际上是基于 Realtek 的,所以请使用 RealtekRTL8111 驱动
    • 支持 OS X 10.8+ 版本的系统
  • IntelMausi.kext

    • 大多数 Intel 因特尔的网卡驱动
    • 基于 I211 的芯片组的网卡需要使用 SmallTreeIntel82576 kext
    • 官方支持 Intel 的 82578、82579、I217、I218 和 I219 网卡
    • 详细支持驱动的有线网卡型号可以参考:https://github.com/acidanthera/IntelMausi
    • 需要 OS X 10.9 或更新版本,10.6-10.8 的老用户可以使用 IntelSnowMausi 替代
  • LucyRTL8125Ethernet.kext

    • Realtek 的 2.5Gb 的网卡驱动
    • 官方这个页面需要注册才可以下载,也可以下载国光我上传蓝奏云的版本
    • 需要 macOS 10.15+ 版本的系统
  • RealtekRTL8111.kext

    • 大多数 Realtek 的千兆网卡驱动
    • 注意:有时最新版本的 kext 可能无法正常工作,这个时候可以尝试使用旧版本。
  • SmallTreeIntel82576.kext

    • I211 有线网卡驱动
    • 大多数配备 intel 有线网卡的 AMD 主板需要
    • 版本支持情况 OS X 10.9-12(v1.0.6)、macOS 10.13-14(v1.2.5)、macOS 10.15+(v1.3.0)
  • 其他不需要 kext 的有线网卡

    • Intel I225-V

      • 某些高端的 Comet Lake 主板会配备这个 I225-V 2.5GBe 有线网卡
      • OC 配置文件的设备属性里面添加 PciRoot(0x0)/Pci(0x1C,0x1)/Pci(0x0,0x0) 内容如下:
        • device-id F2150000 类型为 DATA 类型
      • 如果上面添加后遇到 AppleIntelI210Ethernet kext 内核报错的话,那么可以换成以下路径:
        • PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x0)
      • 需要 macOS 10.15 或更高版本
    • Intel I350

      • OC 配置文件的设备属性里面添加 PciRoot(0x0)/Pci(0x1,0x1)/Pci(0x0,0x0) 内容如下:
        • device-id 33150000 类型为 DATA 类型
      • 需要 OS X 10.10 或更新版本
  • 一些比较古老的百兆有线网卡驱动

    • AppleIntelE1000e.kext
      • 主要与基于 10/100MBe 的 Intel 有线网卡相关
      • 需要 10.6 或更高版本
    • RealtekRTL8100.kext
      • 支持的网卡型号有 RTL8101E、RTL8102E、RTL8103E、RTL8401E、RTL8105E、RTL8402、RTL8106E、RTL8106EUS、RTL8107E
      • 官方这个页面需要注册才可以下载,也可以下载国光我上传蓝奏云的版本
    • BCM5722D.kext
      • Broadcom 的有线网卡驱动
      • 支持的网卡型号有 BCM5722、BCM5754、BCM5754M、BCM5755、BCM5755M、BCM57788、BCM5787、BCM5787M、BCM5906、BCM5906M
      • 需要 OS X 10.6 或更新版本

无线网卡驱动

intel 无线网卡系列

国内 zxystd 大佬从 Linux OpenBSD 移植的驱动,非常硬核,完成度很高,接力也都可以正常使用,隔空投送目前只能识别,暂时还无法传输文件,不过已经很厉害了。

Broadcom 博通免驱系列

免驱网卡型号众多,可以参考 OC 官方的无线网卡购买指南

  • AirportBrcmFixup.kext
    • 非苹果原装无线网卡或者非 Fenvi 奋威的博通网卡的无线网卡驱动
    • 支持 OS X 10.10 以及更高的版本
    • Big Sur 后面的系统可能有些问题,可以参考官方的解决方案
  • BrcmPatchRAM 系列
    • 所有非 Apple/非 Fenvi 无线网卡的蓝牙驱动
    • BrcmPatchRAM.kext 10.8-10.10 系统使用
    • BrcmPatchRAM2.kext 10.11-10.14 系统使用
    • BrcmPatchRAM3.kext 10.15+的系统使用

博通网卡的几个细节,Big Sur 以及后面的系统由于驱动有点异常,需要手动删除 AirPortBrcm4360_Injector.kext

蓝牙加载需要一定顺序,下面是 10.15+ 系统的蓝牙加载顺序 ``Kernel -> Add

  1. BrcmBluetoothInjector.kext
  2. BrcmFirmwareData.kext
  3. BrcmPatchRAM3.kext

其他驱动

  • CpuTscSync.kext
    • 在某些 Intel 的 HEDT 和服务器主板上同步 TSC 需要,如果没有这个 macOS 可能会非常慢甚至无法启动。
    • 不适用于 AMD CPU
    • 需要 OS X 10.8 或更新版本
    • 为具有MSR_IA32_TSC_ADJUST(03Bh) 的CPU 添加了 macOS 12 兼容性
  • NVMeFix.kext
    • 用于修复非 Apple 苹果的 NVMe 上的电源管理和初始化
    • 需要 macOS 10.14 或更高版本
  • HibernationFixup.kext
    • 一个旨在修复休眠兼容性问题的 Lilu 插件
    • 解决黑苹果系统睡眠后无法唤醒、死机、黑屏的问题
  • SATA-unsupported.kext
    • 笔记本电脑 在 macOS 中无法看到 SATA 硬盘驱动器的话,可以考虑使用
  • CtlnaAHCIPort.kext
    • 一般在 Big Sur 下笔记本电脑 在 macOS 中无法看到 SATA 硬盘驱动器的话,可以考虑使用

AMD 常用驱动

  • AMDRyzenCPUPowerManagement.kext

    • AMD 处理器的电源管理驱动
  • SMCAMDProcessor.kext

    • AMD 处理器的传感器监控和 VirtualSMC 插件
  • AppleMCEReporterDisabler.kext

    • 用于关闭 AppleMCERReport
    • AppleMCERReport会导致AMD CPU的内核崩溃
    • 某些双 CPU 的主板可能也有帮助
    • 受影响的 SMBIOS 为:MacPro6,1、MacPro7,1、iMacPro1,1
    • 需要 macOS 10.15 或更高版本
  • XLNCUSBFix.kext

    • AMD FX 系统的 USB 修复,不推荐用于 Ryzen
    • 需要 macOS 10.13 或更高版本
  • VoodooHDA.kext

    • FX 系统的音频和 Ryzen 系统的前面板麦克风和外放的支持
    • 请勿与 AppleALC 混合使用
    • 比较古老且经典的声卡驱动,也叫万能声卡驱动
    • 如果 AppeALC.kext 无法驱动话可以考虑这个
    • 但是使用体验完美度肯定不如原生的 AppleALC.kext 的
    • 只支持 OS X 10.6+ 版本的系统

笔记本专用驱动

输入设备驱动

  • VoodooPS2Controller.kext
    • 适用于配备 PS2 键盘、鼠标和触控板的系统
    • MT2 (Magic Trackpad 2) 功能需要 macOS 10.11 或更新版本
  • RehabMan 的 VoodooPS2Controller.kext
    • 对于带有 PS2 键盘、鼠标和触控板的旧系统,或者当您不想使用 VoodooInput 时
    • 支持 macOS 10.6+ 支持
  • VoodooRMI.kext 和 VoodooSMBus.kext
    • 对于带有 Synaptics SMBus 设备的触控板驱动
    • 主要用于触控板和轨迹点,ThinkPad 小红点也可以驱动
    • MT2 (Magic Trackpad 2) 功能需要 macOS 10.11 或更新版本
  • VoodooSMBus.kext
    • 对于带有基于 ELAN SMBus 的设备触控板驱动
    • 主要用于触控板和轨迹点
    • 目前支持 macOS 10.14 或更新版本
  • VoodooI2C.kext
    • 用于修复 I2C 设备的触控板驱动
    • 一般是一些更高级的触摸板和或者是触摸屏
    • MT2 (Magic Trackpad 2) 功能需要 macOS 10.11 或更新版本
    • VoodooI2C 的一些插件
      • VoodooI2CHID.kext:微软 HID 驱动,也支持某些型号的触控屏
      • VoodooI2CELAN.kext:ELAN 专用,ELAN1200+ 的版本需要 VoodooI2CHID.kext 代替
      • VoodooI2CSynaptics.kext:Synaptics 专用,Synaptics F12 协议需VoodooI2CHID代替
      • VoodooI2CFTE.kext:FTE1001 触控板
      • VoodooI2CAtmelMXT.kext:Atmel 多点触控协议

其他驱动

  • ECEnabler.kext

    • 修复了在大多数笔记本上读取电池状态的问题(允许读取超过 8 位长的 EC 字段)
  • BrightnessKeys.kext

    • 笔记本亮度快捷键驱动
  • AsusSMC.kext

    • 华硕笔记本电脑专用的 VirtualSMC 插件
    • 提供 ALS、键盘背光和 Fn 键驱动,支持电池监控充电
    • 支持配备了 ATK 设备的华硕笔记本电脑
  • CPUFriend.kext 和 CPUFriendDataProvider.kext

    • 可以实现对 macOS CPU 频率睿频性能的调整
    • 需要配合脚本生成时候自己机型的 kexts,可参考官方教程

黑苹果 Kexts 大全?

由于 Kexts 太多太杂了,这个工作量太大了,我直接贴一些轮子的地址,大家自己去看看就行:

如果你是一个有耐心的人的话,如果整理好 Kexts 完整列表的话,欢迎提交 PR