# 收集文件

本节是收集启动macOS的各种文件,我们希望你在开始之前对你的硬件有很好的了解,希望你之前做过一个黑苹果,因为我们不会在这里深入研究。

确定我的硬件是否受支持的最佳方法是什么?

参见硬件限制页面以更好地了解macOS启动需要什么,Clover和OpenCore之间的硬件支持非常相似。

有什么方法可以知道我有什么硬件?

参见前一页:查找你的硬件

# 固件驱动程序

固件驱动程序是OpenCore在UEFI环境下使用的驱动程序。它们主要是启动机器所需的,或者是通过扩展OpenCore的补丁功能,要么在OpenCore选择器中显示不同类型的驱动器(HFS驱动)。

  • 位置: 这些文件必须放在EFI/OC/Drivers/

# 通用

必需驱动程序

对于大多数系统,您只需要2个.efi驱动程序启动和运行:

  • HfsPlus.efi (opens new window)(必需)
    • 查看HFS卷(macOS安装程序和恢复分区/映像)需要。请勿混合使用其他HFS驱动程序
    • 对于Sandy Bridge和更老版本(包括低端Ivy Bridge(i3和赛扬)),查看下面的旧版部分
  • OpenRuntime.efi (opens new window)(必需)
    • 替代AptioMemoryFix.efi (opens new window),用作OpenCore的扩展,以帮助修补引导。用于NVRAM修复和更好的内存管理。
    • 提醒一下,这是在我们之前下载的OpenCorePkg中捆绑的

# 旧版用户

除此之外,如果您的硬件不支持UEFI(2011年及更早的版本),那么您需要以下内容。请密切关注每一个条目,因为您可能不需要全部4个条目:

这些文件将在你的EFI驱动文件夹

32位的细节

对于那些使用32位CPU的设备,您也需要获取这些驱动程序

# Kexts

kext是内核扩展(kernel extension)的简称,你可以把它看成macOS的驱动,这些文件将进入EFI中的Kexts文件夹。

  • Windows和Linux注意:kext将看起来像你的操作系统中的普通文件夹,仔细检查,你正在安装的文件夹有一个可见的。kext扩展名(如果它丢失,不要手动添加一个)。
    • 如果kext还包含.dSYM文件,您可以简单地删除它。它们仅用于调试目的。
  • 位置说明:这些文件必须放在EFI/OC/kext/下。

下面列出的大多数文本都可以在build repo (opens new window)中找到预编译版本。这里的kext在每次有新的提交时进行编译。

# 必需

必需的kext

没有下面的2个,系统是无法启动的:

  • Lilu (opens new window)(必需)
    • 一个ext来修补许多进程,AppleALC, WhateverGreen, VirtualSMC和许多其他的kext需要。没有Lilu,他们就不会工作。
    • 请注意,虽然Lilu最低支持Mac OS X 10.4,但许多插件只适用于较新的版本。
  • VirtualSMC (opens new window)(必需)
    • 模拟在真正的Mac上发现的SMC芯片,没有这个macOS将无法启动
    • 需要Mac OS X 10.4或更新版本

# VirtualSMC插件

下面的插件不需要引导,它们只是为系统添加了额外的功能,比如硬件监控。除非另有说明,否则这些插件都是VirtualSMC附带的

TIP

虽然VirtualSMC支持10.4,但插件可能需要更新的版本。

  • SMCProcessor.kext
    • 用于监控Intel CPU温度
    • 不适合基于AMD CPU的系统
    • 需要Mac OS X 10.7或更新版本
  • SMCAMDProcessor (opens new window)
    • 用于监控AMD Zen系统的CPU温度
    • 积极发展下,潜在不稳定
    • 需要AMDRyzenCPUPowerManagement(参见AMD CPU特定的kext
    • 需要macOS 10.13或更新版本
  • SMCRadeonGPU (opens new window)
    • 用于监控AMD GPU系统上的GPU温度
    • 需要来自同一存储库的RadeonSensor
    • 需要macOS 11或更新版本
  • SMCSuperIO.kext
    • 用于监控风扇转速
    • 不适合基于AMD CPU的系统
    • 需要Mac OS X 10.6或更新版本
  • SMCLightSensor.kext
    • 用于笔记本电脑的环境光传感器
    • 如果你没有环境光传感器(即台式机),不要使用。否则会导致问题
    • 需要Mac OS X 10.6或更新版本
  • SMCBatteryManager.kext
    • 用于测量笔记本电脑上的电池读数
    • 不在台式机上使用
    • 需要Mac OS X 10.4或更新版本
  • SMCDellSensors.kext
    • 允许对支持系统管理模式(SMM)的戴尔机器上的风扇进行更精细的监控和控制
    • 如果您没有受支持的戴尔计算机,请不要使用,主要是戴尔笔记本电脑可以从中受益
    • 需要Mac OS X 10.7或更新版本

# 图形

# 音频

  • AppleALC (opens new window)
    • 用于AppleHDA补丁,允许支持大多数板载声音控制器
    • AppleALCU.kext是AppleALC的精简版,只支持数字音频,但你仍然可以在数字音频专用系统上使用AppleALC
    • AMD 15h/16h可能与AppleALC和Ryzen/Threadripper系统有问题,很少有麦克风支持
    • 需要OS X 10.4或更新版本
传统音频kext

对于那些计划启动10.7或更老版本的人来说,可能会选择以下Kext:

# 以太网

这里我们假设您知道您的系统有什么以太网卡,提醒您,产品规格页面很可能会列出网卡的类型。

  • IntelMausi (opens new window)
    • 对于大多数Intel网卡来说,基于I211的芯片组需要SmallTreeIntel82576.kext
    • 官方支持Intel的82578、82579、I217、I218和I219网卡
    • 要求OS X 10.9或更新版本,10.6-10.8用户可以使用IntelSnowMausi代替旧的操作系统
  • AppleIGB (opens new window)
    • 在macOS Monterey及以上版本上运行的I211网卡必需
    • 可能在一些网卡上有不稳定的问题,建议留在Big Sur上并使用SmallTree
    • 大多数运行Intel网卡的AMD主板都需要
    • 需要macOS 12及以上版本
  • SmallTreeIntel82576 (opens new window)
    • 需要I211网卡运行在macOS版本到Big Sur上,基于SmallTree ext,但打了补丁以支持I211(在macOS 12 Monterey或更高版本上不起作用)
    • 大多数运行Intel网卡的AMD主板都需要
    • 要求OS X 10.9-12(v1.0.6),macOS 10.13-14(v1.2.5),macOS 10.15+(v1.3.0)
  • AtherosE2200Ethernet (opens new window)
    • Atheros和Killer网卡所需
    • 要求OS X 10.8或更新版本
    • 注意:Atheros Killer E2500型号实际上是基于Realtek的,对于这些系统,请使用RealtekRTL8111 (opens new window)代替
  • RealtekRTL8111 (opens new window)
    • 为Realtek的千兆以太网
    • v2.2.0及以下版本需要OS X 10.8及以上版本,v2.2.2版本需要macOS 10.12及以上版本,v2.3.0及以上版本需要macOS 10.14及以上版本
    • 注意: 有时最新版本的ext可能无法与您的以太网正常工作。如果您看到此问题,请尝试旧版本。
  • LucyRTL8125Ethernet (opens new window)
    • Realtek的2.5Gb以太网
    • 需要macOS 10.15或更新版本
  • 对于Intel的I225-V网卡,补丁在台式机Comet Lake DeviceProperties部分中提到。不需要kext。
    • 需要macOS 10.15或更新版本
  • 对于Intel的I350网卡,补丁在HEDT Sandy和Ivy Bridge-E DeviceProperties部分中提到。不需要kext。
    • 要求OS X 10.10或更新版本
旧版以太网kext

与旧的macOS安装或旧的PC硬件相关。

还要记住,某些网卡实际上是macOS原生支持的:

Native Ethernet Controllers

# 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网卡上的一些过时的固件,您可能需要更新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

  • USBToolBox (tool (opens new window)k0ext (opens new window)

    • 对于Windows和macOS的USB映射工具。
    • 建议您在安装macOS之前映射USB端口,以避免任何端口限制问题
    • 特性
      • 支持从Windows和macOS映射(Linux支持正在进行中)
      • 可以使用USBToolBox kext或原生Apple kext(AppleUSBHostMergeProperties)构建映射
      • 支持多种匹配方式
      • 支持配套端口(在Windows上)
  • XHCI-unsupported (opens new window)

    • 非原生USB控制器所需
    • 基于AMD CPU的系统不需要这个
    • 需要此功能的常见芯片组:
      • H370
      • B360
      • H310
      • Z390(Mojave和更新版本不需要)
      • X79
      • X99
      • ASRock Intel主板(B460/Z490+不需要)

# WiFi和蓝牙

# 非原生蓝牙卡

  • BlueToolFixup (opens new window)
    • 修复macOS 12+蓝牙栈,支持第三方卡
    • 所有非原生(非Apple的Broadcom,Intel等)蓝牙卡都需要
    • 包括在BrcmPatchRAM压缩
    • 不要在macOS 11或更早的版本上使用

# Intel

  • AirportItlwm (opens new window)
    • 增加了对各种英特尔无线卡的支持,并由于IO80211Family集成而在恢复模式中原生工作
    • 需要macOS 10.13或更新版本,并需要苹果的安全引导才能正常工作
  • Itlwm (opens new window)
    • 对于无法启用Apple安全启动的系统,AirportItlwm的替代方案
    • 需要Heliport (opens new window)
    • 它将被视为以太网卡,你必须通过Heliport连接Wi-Fi
    • 在macOS恢复模式中不工作
  • IntelBluetoothFirmware (opens new window)
    • 当与英特尔无线网卡配对时,为macOS增加蓝牙支持
    • 除了在macOS中修补错误外,还使用IntelBTPatcher(包含)
    • 需要macOS 10.13或更新版本
    • 在macOS 10.13到11上,您还需要IntelBluetoothInjector(包含)
关于启用AirportItlwm的更多信息

要在OpenCore中启用AirportItlwm支持,您需要:

  • 将它设置为Default或其他可用值以启用Misc -> Security -> SecureBootModel
  • 如果你不能启用SecureBootModel,你仍然可以强制注入IO80211Family(强烈反对
    • 在config.plist中的Kernel -> Force下设置以下内容。(在本指南后面讨论):

# Broadcom

  • AirportBrcmFixup (opens new window)
    • 用于修补非Apple/非Fenvi的Broadcom卡,将不适用于Intel,Killer和Realtek等
    • 要求OS X 10.10或更新版本
    • 关于Big Sur,请参阅Bis Sur已知问题了解有关AirPortBrcm4360驱动程序的额外步骤。
  • BrcmPatchRAM (opens new window)
    • 用于在Broadcom蓝牙芯片组上上传固件,所有非Apple/非Fenvi卡都需要。
    • 与BrcmFirmwareData.kext配对
      • BrcmPatchRAM3 for 10.15+(必须与BrcmBluetoothInjector配对)
      • BrcmPatchRAM2 for 10.11-10.14
      • BrcmPatchRAM for 10.8-10.10
    • 在macOS 10.11到macOS 11上,您还需要BrcmBluetoothInjector(包含)
BrcmPatchRAM加载顺序

Kernel -> Add中的顺序应该是:

  1. BrcmBluetoothInjector(如果需要)
  2. BrcmFirmwareData
  3. BrcmPatchRAM3(或BrcmPatchRAM2/BrcmPatchRAM)

BlueToolFixup可以在Lilu之后的任何地方。

但是ProperTree将为您处理这个问题,因此您不必自己担心

# AMD CPU特定的kext

  • XLNCUSBFIX (opens new window)
    • USB修复AMD FX系统,Ryzen不建议
    • 需要macOS 10.13或更新版本
  • VoodooHDA (opens new window)
    • FX系统的音频和Ryzen系统的前面板Mic+音频支持,不要与AppleALC混合。音频质量明显比Zen cpu上的AppleALC差
    • 要求OS X 10.6或更新版本
    • 不建议在macOS 11.3及以上版本上使用此ext,因为您需要修改macOS文件系统并禁用SIP
  • AMDRyzenCPUPowerManagement (opens new window)
    • Ryzen系统的CPU电源管理
    • 积极发展下,潜在不稳定
    • 需要macOS 10.13或更新版本

# 附加

  • AppleMCEReporterDisabler (opens new window)
    • 需要在macOS 12.3及更高版本的AMD系统上,以及macOS 10.15及更高版本的Intel双插槽系统上。
    • 影响的SMBIOS:
      • MacPro6,1
      • MacPro7,1
      • iMacPro1,1
  • CpuTscSync (opens new window)
    • 需要在一些英特尔的HEDT和服务器主板上同步TSC,没有这个macOS可能会非常慢甚至无法启动。
    • 不能在AMD CPU上工作
    • 要求OS X 10.8或更新版本
  • NVMeFix (opens new window)
    • 用于修复非Apple NVMe的电源管理和初始化
    • 需要macOS 10.14或更新版本
  • SATA-Unsupported (opens new window)
    • 增加了对多种SATA控制器的支持,主要适用于在macOS中无法看到SATA驱动器的笔记本电脑。我们建议先不使用这个进行测试。
    • Big Sur+注意:CtlnaAHCIPort将需要使用,因为大量的控制器被从二进制文件本身删除
      • Catalina和更老的系统不必担心
  • CPUTopologyRebuild (opens new window)
    • 一个实验性的Lilu插件,优化了Alder Lake的异构核心配置。仅适用于Alder Lake CPU
  • RestrictEvents (opens new window)
  • EmeraldSDHC (opens new window)
    • 支持eMMC的macOS内核扩展。目前只支持最高HS200速度的eMMC/MMC卡。此驱动程序目前正在进行中,在某些设备上可能会遇到性能不佳或不可用的情况。目前不支持SD卡。
传统SATA kext

# 笔记本电脑输入

要弄清楚你有什么样的键盘和触控板,请查看Windows中的设备管理器或Linux中的dmesg | grep -i input

警告

大多数笔记本电脑的键盘都是PS2!即使您有I2C, USB或SMBus触控板,您也会想要抓取VoodooPS2。

# PS2键盘和触摸板

# SMBus触摸板

# I2C/USB HID设备

  • VoodooI2C (opens new window)
    • 支持macOS 10.11+
    • 连接到I2C控制器,允许插件与I2C触控板交互
    • 使用以下插件的USB设备仍然需要VoodooI2C
    • 必须与一个或多个插件配对如下所示:

VoodooI2C插件

连接类型 插件 注释
多点触控HID VoodooI2CHID 可以与I2C/USB触摸屏和触控板一起使用
ELAN专有 VoodooI2CElan ELAN1200+需要VoodooI2CHID代替
FTE1001触摸板 VoodooI2CFTE
Atmel多点触控协议 VoodooI2CAtmelMXT
Synaptics HID VoodooRMI (opens new window) I2C Synaptic触控板(需要VoodooI2C仅用于I2C模式)
Alps HID AlpsHID (opens new window) 可与USB或I2C Alps触控板一起使用。主要出现在戴尔笔记本电脑和一些惠普EliteBook型号上

# 杂项

请参考kexts.md (opens new window)(或OpenCore中的Docs\Kexts.md获取支持的完整kext列表

# SSDTs

你在AcpiSamples文件夹中看到所有的SSDT,想知道你是否需要它们。对于我们来说,我们将讨论在config.plist的特定ACPI部分中需要哪些SSDT,因为所需的SSDT是特定于平台的。有一些系统特定的地方需要配置,如果我现在给你一个SSDT列表供你选择,你很容易迷路。

ACPI入门 (opens new window)有一个关于SSDT的扩展部分,包括在不同平台上编译它们。

一个所需SSDT的快速TL;DR(这是源代码,你必须将它们编译成一个.aml文件):

# 台式机

平台 CPU EC AWAC NVRAM USB
Penryn N/A SSDT-EC (opens new window) N/A N/A N/A
Lynnfield和Clarkdale
Sandy Bridge CPU-PM (opens new window)(安装后运行)
Ivy Bridge
Haswell SSDT-PLUG (opens new window)
Broadwell
Skylake SSDT-EC-USBX (opens new window)
Kaby Lake
Coffee Lake SSDT-AWAC (opens new window) SSDT-PMC (opens new window)
Comet Lake N/A SSDT-RHUB (opens new window)
AMD (15/16h) N/A N/A N/A
AMD (17/19h) SSDT-CPUR for B550 and A520 (opens new window)

# 高端台式机

平台 CPU EC RTC PCI
Nehalem和Westmere N/A SSDT-EC (opens new window) N/A N/A
Sandy Bridge-E SSDT-UNC (opens new window)
Ivy Bridge-E
Haswell-E SSDT-PLUG (opens new window) SSDT-EC-USBX (opens new window) SSDT-RTC0-RANGE (opens new window)
Broadwell-E
Skylake-X N/A

# 笔记本

平台 CPU EC Backlight I2C Trackpad AWAC USB IRQ
Clarksfield和Arrandale N/A SSDT-EC (opens new window) SSDT-PNLF (opens new window) N/A N/A N/A IRQ SSDT (opens new window)
Sandy Bridge CPU-PM (opens new window)(安装后运行)
Ivy Bridge
Haswell SSDT-PLUG (opens new window) SSDT-GPI0 (opens new window)
Broadwell
Skylake SSDT-EC-USBX (opens new window) N/A
Kaby Lake
Coffee Lake(8th Gen)和Whiskey Lake SSDT-PNLF (opens new window) SSDT-AWAC (opens new window)
Coffee Lake(9th Gen)
Comet Lake
Ice Lake SSDT-RHUB (opens new window)

续表:

平台 NVRAM IMEI
Clarksfield和Arrandale N/A N/A
Sandy Bridge SSDT-IMEI (opens new window)
Ivy Bridge
Haswell N/A
Broadwell
Skylake
Kaby Lake
Coffee Lake(8th Gen)和Whiskey Lake
Coffee Lake(9th Gen) SSDT-PMC (opens new window)
Comet Lake N/A
Ice Lake

# 现在所有这些都完成了,前往ACPI入门 (opens new window)