# 收集需要的文件
- 支持的版本:0.6.6
本章节主要讨论正常启动 macOS 所需要的各种文件。在开始之前,因为我们不会在这里提供太过深层的信息,我们希望您已经对您自己拥有的硬件有了充分的了解,并在之前成功制作过一台黑苹果
判断 macOS 是否支持我的硬件的最好办法是什么?
查看 硬件限制 来了解 macOS 支持在什么硬件上启动,Clover 和 OpenCore 支持的硬件范围相差无几
有什么方法来弄清楚我的电脑的具体硬件信息吗?
请阅读之前的章节:查找您的硬件
# 固件驱动
OpenCore 会在 UEFI 环境下使用固件驱动。启动系统需要这些驱动,同时它们可以拓展 OpenCore 的修补能力,或使 OpenCore 选择器支持显示不同类型的驱动器(如:HFS 驱动器)。
- 注意位置:这些文件必须被放置在
EFI/OC/Drivers/
# 通用
需要的驱动
对于大部分机器来说,只需要两个 .efi
驱动:
- HfsPlus.efi
- 用于识别 HFS 分区(如:macOS 安装器、恢复环境分区/镜像)。不要把这个驱动和其他 HFS 驱动相混淆
- 对于 Sandy Bridge 及更旧的架构(以及一些低端的 Ivy Bridge(i3 和 Celerons)),请查看下面的 “传统用户” 章节
- OpenRuntime.efi
- 作为 AptioMemoryFix.efi 的替代品, 作为 OpenCore 的一个扩展,帮助 OpenCore 向 boot.efi 打补丁以此来修复 NVRAM 和提供更好的内存管理
- 我们刚刚下载的 OpenCorePkg 已经包含了这个文件
# 传统用户
在以上几点之外,如果您的主板不支持 UEFI(2011 及更早时期),您将需要以下驱动。 请仔细阅读每一项,因为大部分情况下你并不需要全部 4 个驱动:
- OpenUsbKbDxe.efi
- 用于 OpenCore 选择器,适用于使用 DuetPkg 的传统平台,不推荐在支持 UEFI 的架构上使用,甚至有害(Ivy Bridge 及更新的架构)
- HfsPlusLegacy.efi
- 传统版本的 HfsPlus,用于缺失 RDRAND 指令支持的平台。这种情况通常见于 Sandy Bridge 及更旧的架构(以及一些低端的 Ivy Bridge(i3 和 Celerons))
- 不要将此驱动与 HfsPlus.efi 相混淆,请根据您的硬件来选择
- PartitionDxe
- 用于启动 OS X 10.7 到 10.9 版本的恢复环境
- 适用于 Sandy Bridge 及更旧的架构(以及一些低端的 Ivy Bridge(i3 和 Celerons)),由于 RDRAND 命令的缺失,您还可能需要使用 PartitionDxeLegacy
- 自 OS X 10.10 Yosemite 起,不再需要此驱动
这些文件需要被放置到 EFI 的 Drivers 文件夹下
32-Bit 专用
对于这些使用 32 位 CPU 的电脑,您需要这些驱动:
- HfsPlus32
- HfsPlusLegacy 的另一个版本,不过是 32 位 CPU 专用的,不要将此驱动和其他 HFS .efi 相混淆
- PartitionDxe32
- PartitionDxeLegacy 的另一个版本,不过是 32 位 CPU 专用的,不要将此驱动和 PartitionDxe.efi 相混淆
# 内核扩展
.kext 文件是内核扩展(Kernel Extension),您可以把这个当作是 macOS 的驱动,这些文件需要放置在 EFI 分区里的 Kexts 文件夹
- Windows/Linux 请注意:在这些系统上,内核扩展看起来更像一个文件夹,请重复检查 这些文件夹是否带有一个可见的 .kext 后缀,如果没有,也请不要手动添加。
- 如果您下载的内核扩展带有扩展名为
.dSYM
的文件,您可以直接将其删除。它只用于调试作用
- 如果您下载的内核扩展带有扩展名为
- 注意位置:这些文件必须被放置在
EFI/OC/Kexts/
.
所有在下方列出的内核扩展都能在 Kext Repo 找到 编译后的 文件。这里的内核扩展会在每一次提交后更新
# 必须使用
需要的内核扩展
缺少以下两个内核扩展,任何版本的 macOS 都无法启动
- VirtualSMC
- 模拟白苹果上的 SMC 芯片,缺少这个 macOS 将无法启动
- 一个可选项是 FakeSMC ,可能会提供更好或者更坏的支持,主要用于传统硬件
- 需要 OS X 10.6 或更新版本
- Lilu
- 一个用于向许多进程打补丁的内核扩展,为 AppleALC、WhateverGreen、VirtualSMC 以及许多其他内核扩展所依赖。缺少 Lilu,这些内核扩展将无法正常工作
- Lilu 以及依赖它的插件都需要 OS X 10.8 或更新版本
传统 “必须使用” 的内核扩展
对于这些打算在 32 位硬件上运行 OS X 10.7 及更旧版本的用户,您可能需要使用以下内核扩展来替代 VirtualSMC:
如果您不打算安装这些旧版本系统,您可以忽略掉这个内核扩展
- OS X 10.4 和 10.5 要注意:即使是 64 位的 CPU , OS X 的内核空间也是 32 位的。所以我们推荐您使用 FakeSMC-32 来替代 VirtualSMC,特别是将 FakeSMC-32 的
Arch
项设为i386
并且将 VirtualSMC 的设为x86_64
。这个向导会在之后深入讨论这些项的设置
# VirtualSMC 的插件
启动 macOS 并不依赖于以下内核扩展,它们只用于提供附加功能如硬件状态监控(要注意虽然 VirtualSMC 支持 10.6,这些插件需要 10.8 及更新版本):
- SMCProcessor.kext
- 用于监控 CPU 温度,不会在基于 AMD CPU 的电脑上工作
- SMCSuperIO.kext
- 用于监控风扇速度,不会在基于 AMD CPU 的电脑上工作
- SMCLightSensor.kext
- 用于驱动笔记本电脑上的环境光传感器,台式机可以忽略这个
- 如果您的电脑没有环境光传感器,请不要使用这个内核扩展,否则会导致一些问题
- SMCBatteryManager.kext
- 用于读取笔记本电脑的当前电池电量,台式机可以忽略这个
- 除非您的电池经过修复,否则不要使用这个内核扩展,不然会导致一些问题。对于初次安装,请忽略这个内核扩展。安装后您可以遵循这个页面的方法来配置:修复电量读取
- SMCDellSensors.kext
- 用于提供对系统控制模式(System Management Mode,SMM)的支持从而更好地监控和控制戴尔品牌电脑的风扇
- 如果您没有一台受支持的戴尔品牌电脑,请不要使用这个内核扩展,大多数戴尔品牌的电脑都能从这个内核扩展受益
# 图形卡/显示卡
- WhateverGreen
- 用于修复 DRM、boardID、缓冲帧补丁等图形卡相关内容,所有的 GPU 都能从这个内核扩展中受益
- 需要 OS X 10.8 或更新版本
# 音频
- AppleALC
- 用于给 AppleHDA 打补丁,使其能够支持大部分板载音频控制器
- 在 AMD 15h/16h 平台上存在问题,以及 Ryzen/Threadripper 平台很少能得到麦克风支持
- 需要 OS X 10.8 或更新版本
传统音频内核扩展
对于这些打算启动 10.7 及更旧版本的用户,可能需要选择这些内核扩展来代替:
-
- 需要 OS X 10.6 或更新版本
-
- 和前者相似,但是同时支持 32 和 64 位内核,所以对于启动 OS X 10.4-5 以及 32 位 CPU 是完美的
# 以太网
我们假设您已经知道自己的以太网卡的型号,商品详情页面通常会列出网卡的类型.
- IntelMausi
- 用于驱动大多数 Intel 网络接口控制器,基于 I211 芯片组的网络接口控制器则需要使用
SmallTreeIntel82576.kext
- Intel 82578、82579、i217、i218 和 i219 网卡免驱
- 需要 OS X 10.9 或更新版本,10.6-10.8 版本的用户请使用 IntelSnowMausi 来支持更旧版本的系统
- 用于驱动大多数 Intel 网络接口控制器,基于 I211 芯片组的网络接口控制器则需要使用
- SmallTreeIntel82576 kext
- 用于驱动 i211 网卡,基于 SmallTree 内核扩展修改
- 大多数 AMD 主板都需要此内核扩展来驱动 Intel 网络接口控制器
- 需要 OS X 10.9-12(v1.0.6), macOS 10.13-14(v1.2.5), macOS 10.15+(v1.3.0)
- AtherosE2200Ethernet
- 用于驱动 Atheros 和 Killer 网络接口控制器
- 需要 OS X 10.8 或更新版本
- 注意:Atheros Killer E2500 实际上是基于 Realtek 芯片的,对于这些电脑请使用 RealtekRTL8111 来代替
- RealtekRTL8111
- 用于驱动 Realtek 的千兆以太网卡
- 需要 OS X 10.8-11(2.2.0)、10.12-13(v2.2.2)、10.14+(2.3.0)
- 注意: 当您在使用 RealtekRTL8111 v2.3.0 时,有时以太网会无法正确地工作。如果您遇到了这个问题,请尝试回退到 2.2.2 版本
- LucyRTL8125Ethernet
- 用于驱动 Realtek 2.5Gb 以太网卡
- 需要 macOS 10.15 或更新版本
- 对于 Intel i225-V NICs,Comet Lake 的 DeviceProperties 章节中给出了将其驱动的补丁。不需要额外的内核扩展
- 需要 macOS 10.15 或更新版本
传统以太网内核扩展
主要和传统 macOS 安装或老旧 PC 硬件相关
- AppleIntele1000e
- 用于驱动 Intel 10/100MBe 以太网控制器
- 需要 10.6 或更新版本
- RealtekRTL8100
- 用于驱动 Realtek 10/100MBe 以太网控制器
- 需要 macOS 10.12 或更新版本,并使用 v2.0.0 以上版本的内核扩展
- BCM5722D
- 用于驱动 Broadcom BCM5722 以太网控制器
- 需要 OS X 10.6 或更新版本
还要注意的时,部分网络接口控制器被 macOS 原生支持:
原生以太网卡控制器
# Aquantia 系列
# AppleEthernetAquantiaAqtion.kext
pci1d6a,1 = Aquantia AQC107
pci1d6a,d107 = Aquantia AQC107
pci1d6a,7b1 = Aquantia AQC107
pci1d6a,80b1 = Aquantia AQC107
pci1d6a,87b1 = Aquantia AQC107
pci1d6a,88b1 = Aquantia AQC107
pci1d6a,89b1 = Aquantia AQC107
pci1d6a,91b1 = Aquantia AQC107
pci1d6a,92b1 = Aquantia AQC107
pci1d6a,c0 = Aquantia AQC113
pci1d6a,4c0 = Aquantia AQC113
注意:由于许多 Aquantia NIC 主控芯片的固件较为过时,您可能需要通过 Linux/Windows 更新其固件以确保它能兼容 macOS。
# Intel 系列
# AppleIntel8254XEthernet.kext
pci8086,1096 = Intel 80003ES2LAN
pci8086,100f = Intel 82545EM
pci8086,105e = Intel 82571EB/82571GB
# AppleIntelI210Ethernet.kext
pci8086,1533 = Intel I210
pci8086,15f2 = Intel I225LM (Added in macOS 10.15)
# Intel82574L.kext
pci8086,104b = Intel 82566DC
pci8086,10f6 = Intel 82574L
# Broadcom 系列
# AppleBCM5701Ethernet.kext
pci14e4,1684 = Broadcom BCM5764M
pci14e4,16b0 = Broadcom BCM57761
pci14e4,16b4 = Broadcom BCM57765
pci14e4,1682 = Broadcom BCM57762
pci14e4,1686 = Broadcom BCM57766
# USB
-
- 为没有在 ACPI 中定义 USB 接口的主板注入 Intel USB 控制器
- 台式机 Skylake 及更新的架构应该不需要这个
- 华擎主板比较特别,需要这个
- 但是 Coffee Lake 及更旧的架构的笔记本推荐使用这个内核扩展
- 完全无法在 AMD 平台上工作
- 需要 OS X 10.11 或更新版本
-
- 用于修复非原生支持的 USB 控制器
- 基于 AMD CPU 的电脑不需要使用这个
- 常见的需要此内核扩展的主板芯片组有:
- H370
- B360
- H310
- Z390(Mojave 及更新版本系统不再需要)
- X79
- X99
- 华擎主板(Intel 主板,但是 B460/Z490 及更新的主板不再需要这个)
# Wi-Fi 与蓝牙
# Intel
- AirportItlwm
- 为大量 Intel 无线网卡提供支持,由于整合了 IO80211Family,还能在恢复环境中使用
- 需要 macOS 10.13 或更新版本并需要 Apple 安全启动来提供功能支持
- IntelBluetoothFirmware
- 为 Intel 无线网卡提供 macOS 的蓝牙支持
- 需要 macOS 10.13 或更新版本
如何正确使用 AirportItlwm
如果要在 OpenCore 启用 AirportItlwm 支持,您需要以下操作:
- 请将
Misc -> Security -> SecureBootModel
设为Default
或其他有效值- 这部分会在下文与安装后指南讨论:Apple 安全启动
- 如果您无法启用 SecureBootModel,您依然可以尝试强制注入 IO80211Family(极度不推荐)
- 在 config.plist 中的
Kernel -> Force
下添加以下内容 (详情会在下文讨论):
- 在 config.plist 中的
# Broadcom
- AirportBrcmFixup
- 用来为非 Apple、Fenvi 品牌的 Broadcom 网卡打补丁,无法驱动 Intel、Killer 或 Realtek等品牌的网卡
- 需要 OS X 10.10 或更新版本
- 如果您在使用 Big Sur 版本的系统,请查看 已知 Big Sur 上存在的问题 来了解更多有关 AirPortBrcm4360 驱动的详情.
- BrcmPatchRAM
- 用于为 Broadcom 蓝牙芯片组上传固件,所有非 Apple、Fenvi 品牌的支持隔空功能的网卡都需要这个内核扩展
- 与 BrcmFirmwareData.kext 一起使用
- BrcmPatchRAM3 用于 10.15+(必须和 BrcmBluetoothInjector 一起使用)
- BrcmPatchRAM2 用于 10.11-10.14
- BrcmPatchRAM 用于 10.8-10.10
BrcmPatchRAM 的加载顺序
这些内核扩展在 config 中 Kernel -> Add
的顺序应该是:
- BrcmBluetoothInjector
- BrcmFirmwareData
- BrcmPatchRAM3
但是 ProperTree 会自动为您处理这个问题,所以您无需过于担心
# AMD CPU 专用内核扩展
- XLNCUSBFIX
- 用于修复 AMD FX 平台的 USB,不推荐在 Ryzen 平台使用
- 需要 macOS 10.13 或更新版本
- VoodooHDA
- 用于提供对 FX 平台的音频支持和对 Ryzen 平台的前面板麦克风和耳机孔支持,不要与 AppleALC 相混淆。在 Zen 架构 CPU 上的音频质量比 AppleALC 要差
- 需要 OS X 10.6 或更新版本
# 其它内核扩展
- AppleMCEReporterDisabler
- 用来在 Catalina 版本禁用 AppleMCEReporter 内核扩展。AppleMCEReporter 会在多 CPU 接口的主板和 AMD CPU 的电脑上导致内核崩溃
- 受影响的 SMBIOS:
- MacPro6,1
- MacPro7,1
- iMacPro1,1
- 需要 macOS 10.15 或更新版本
- CpuTscSync
- 用于在一些 Intel 的 HEDT 和服务器主板上同步 TSC ,缺少这个 macOS 可能会反应缓慢甚至无法启动
- 无法在 AMD 平台上工作
- 需要 OS X 10.8 或更新版本
- NVMeFix
- 用来初始化和修复非 Apple 官方 NVMe 的电源管理
- 需要 macOS 10.14 或更新版本
- SATA-Unsupported
- 为大量的 SATA 控制器提供支持,主要用于解决笔记本无法在 macOS 看到 SATA 驱动器的问题。推荐先不使用该内核扩展来进行测试
- macOS Big Sur 注意:由于该版本的 AppleAHCIPort 移除了对许多 SATA 控制器的支持,您可能需要使用 CtlnaAHCIPort 来修复
- Catalina 及更旧的版本可以忽略这个
传统 SATA 内核扩展
- AHCIPortInjector
- 传统 SATA/AHCI 注入器,主要和 Penryn 时期的老旧机器有关
- ATAPortInjector
- 传统 ATA 注入器,主要和 IDE 和 ATA 设备相关(如:BIOS 里缺少 AHCI 选项)
# 笔记本电脑专用
如果要弄清楚您的键盘和触控板是什么类型,请查看 Windows 设备管理器,或在 Linux 执行 dmesg | grep input
# 输入设备驱动
- VoodooPS2
- 用于带有 PS2 键盘、鼠标或触控板的电脑
- 需要 macOS 10.11 或更新版本,以此来支持 MT2 (妙控板 2) 功能
- RehabMan 开发的 VoodooPS2
- 用于带有 PS2 键盘、鼠标或触控板的较旧的电脑,如果你不想使用 VoodooInput 也可以更换为此内核扩展
- 需要 macOS 10.6 或更新版本
- VoodooRMI
- 用于带有基于 SMBus 的 Synaptics 触控板的电脑,主要和触控板和小红点(Trackpoint)有关
- 需要 macOS 10.11 或更新版本,以此来支持 MT2 (妙控板 2) 功能
- VoodooSMBus
- 用于带有基于 SMBus 的 ELAN 触控板的电脑,主要和触控板和小红点(Trackpoint)有关
- 支持 macOS 10.14 或更新版本
- VoodooI2C
- 用于修复 I2C 设备,可以在一些较新的电脑上看见
- 需要 macOS 10.11 或更新版本,以此来支持 MT2 (妙控板 2) 功能
VoodooI2C 插件
连接类型 | 插件名 | 描述 |
---|---|---|
Microsoft HID | VoodooI2CHID | 也支持 USB 连接的触控屏 |
ELAN 专有协议 | VoodooI2CElan | ELAN1200+ 需要使用 VoodooI2CHID 来代替 |
Synaptics 专有协议 | VoodooI2CSynaptics | Synaptics F12 协议需要使用 VoodooI2CHID 来代替 |
VoodooRMI | 支持 Synaptics 协议 F12/F3A ,它们通常也支持 Microsoft 的 HID 标准,所以您应该先尝试 VoodooI2CHID | |
FTE1001 触控板 | VoodooI2CFTE | |
Atmel 多点触控协议 | VoodooI2CAtmelMXT |
# 杂项
请阅读 Kext.md 来获取完整的受支持内核扩展列表
# SSDT 热补丁
您会在 AcpiSamples 文件夹里看到许多样板 SSDT,并且好奇您的电脑到底需要哪些 SSDT。因为 SSDT 需要根据平台来选择,所以我们会在 配置 config.plist 的 ACPI 部分 讨论您所需要的 SSDT。 还有一些专用的 SSDT 需要根据您的电脑来配置,如果我们直接列出所有的 SSDT 来让您选择,您很有可能会被弄得晕头转向。
ACPI 快速入门 会讨论为不同系统编写 SSDT 的相关内容
一个快速而又繁琐 SSDT 查询表(这些都是未编译的源文件,您需要将他们编译为 .aml 文件):
# 台式电脑
架构 | CPU | EC | AWAC | NVRAM | USB |
---|---|---|---|---|---|
Penryn | N/A | SSDT-EC | N/A | N/A | N/A |
Lynnfield and Clarkdale | |||||
SandyBridge | CPU-PM (安装后使用) | ||||
Ivy Bridge | |||||
Haswell | SSDT-PLUG | ||||
Broadwell | |||||
Skylake | SSDT-EC-USBX | ||||
Kaby Lake | |||||
Coffee Lake | SSDT-AWAC | SSDT-PMC | |||
Comet Lake | N/A | SSDT-RHUB | |||
AMD (15/16h) | N/A | N/A | N/A | ||
AMD (17/19h) | B550 或 A520 需要 SSDT-CPUR |
# 高性能台式电脑
架构 | CPU | EC | RTC | PCI |
---|---|---|---|---|
Nehalem 或 Westmere | N/A | SSDT-EC | N/A | N/A |
Sandy Bridge-E | SSDT-UNC | |||
Ivy Bridge-E | SSDT-PLUG | |||
Haswell-E | SSDT-EC-USBX | SSDT-RTC0-RANGE | ||
Broadwell-E | ||||
Skylake-X | N/A |
# 笔记本电脑
架构 | CPU | EC | Backlight | I2C 触控板 | AWAC | USB | IRQ |
---|---|---|---|---|---|---|---|
Clarksfield 或 Arrandale | N/A | SSDT-EC | SSDT-PNLF | N/A | N/A | N/A | IRQ SSDT |
SandyBridge | CPU-PM (安装后使用) | ||||||
Ivy Bridge | |||||||
Haswell | SSDT-PLUG | SSDT-GPI0 | |||||
Broadwell | |||||||
Skylake | SSDT-EC-USBX | N/A | |||||
Kaby Lake | |||||||
Coffee Lake (8 代) 或 Whiskey Lake | SSDT-PNLF-CFL | SSDT-AWAC | |||||
Coffee Lake (9 代) | |||||||
Comet Lake | |||||||
Ice Lake | SSDT-RHUB |
续上表:
架构 | NVRAM | IMEI |
---|---|---|
Clarksfield 或 Arrandale | N/A | N/A |
Sandy Bridge | SSDT-IMEI | |
Ivy Bridge | ||
Haswell | N/A | |
Broadwell | ||
Skylake | ||
Kaby Lake | ||
Coffee Lake (8 代) 或 Whiskey Lake | ||
Coffee Lake (9 代) | SSDT-PMC | |
Comet Lake | N/A | |
Ice Lake |