# 收集文件

本节是为引导macOS收集杂项文件,我们希望你在开始之前很好地了解你的硬件,并希望在此之前制作一个Hackintosh,因为我们不会在这里深入探讨。

知道我的硬件是否被支持的最好的方法是什么?

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

有什么方法可以找出我有什么硬件?

参见前一页:查找硬件

# 固件驱动

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

  • 位置说明: 这些文件 必须 放在 EFI/OC/Drivers/目录下

# 通用

必需的驱动程序

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

# 传统用户

除上述外,如果您的硬件不支持UEFI(2011年和更早的时代),那么您将需要以下内容。请密切关注每一个条目,因为你可能不需要全部使用这4个条目:

这些文件将放在EFI的Drivers文件夹中

32位的详细信息

对于那些使用32位cpu的处理器,您也需要获取这些驱动程序

# Kexts

kext是kernelextension,你可以把它想象成macOS的驱动程序,这些文件将进入你EFI中的Kexts文件夹。

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

下面列出的大多数kext都可以在build repo (opens new window)预编译。这里的kext在每次有新的提交时都被编译。

# 必须拥有

必需的kext

如果没有下面的2个,系统就无法启动:

  • Lilu (opens new window)(必需)
    • 一个为许多进程打补丁的kext,这是AppleALC、WhateverGreen、VirtualSMC和许多其他kext所必需的。没有Lilu,他们就无法工作。
    • 请注意,虽然Lilu早在Mac OS X 10.4版本就支持,但许多插件只能在较新的版本上使用。
  • VirtualSMC (opens new window)(必需)
    • 模拟真实mac上的SMC芯片,没有这个macOS将无法启动
    • 要求Mac OS x10.4或更新版本

# VirtualSMC插件

以下插件不需要引导,仅仅添加额外的硬件监控等系统功能。除非另有说明,这些插件都是随VirtualSMC附带的

提示

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

  • SMCProcessor.kext
    • 用于监控Intel CPU温度
    • 不适用于AMD CPU系统
    • 要求Mac OS X 10.7或更新版本
  • SMCAMDProcessor (opens new window)
    • 用于监控AMD zen系统的CPU温度
    • 正在积极开发中,可能不稳定
    • 需要 AMDRyzenCPUPowerManagement (参见 AMD CPU 专用的 Kexts)
    • 需要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)的戴尔机器的风扇进行更精细的监控和控制
    • 如果你没有支持的Dell机器,请不要使用, 主要是Dell笔记本电脑可以从这个kext中受益
    • 需要Mac OS X 10.7或更新的版本

# 显示

# 声音

  • AppleALC (opens new window)
    • 用于AppleHDA补丁,允许支持大多数集成的声音控制器
    • AppleALCU.kext 是AppleALC的精简版,只支持数字音频,但你仍然可以使用 AppleALC.kext 在数字音频系统上
    • AMD 15h/16h 可能使用AppleALC有问题。而 Ryzen/Threadripper 系统很少支持mic
    • 需要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)
    • 在macOS版本上运行到Big Sur的I211网卡需要,基于SmallTree kext,但补丁支持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 NICs
    • 需要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及以上
    • 注意: 有时最新版本的kext可能无法在让您的以太网正常工作。如果你看到这个问题,请尝试旧版本。
  • LucyRTL8125Ethernet (opens new window)
    • 用于Realtek的2.5Gb以太网
    • 需要macOS 10.15或更新的版本
  • 对于英特尔的I225-V网卡,补丁在桌面 Comet Lake DeviceProperties 部分中提到,不需要kext。
    • 需要macOS 10.15或更新的版本
  • 对于英特尔的I350网卡,补丁在HEDT Sandy and Ivy Bridge-E DeviceProperties 部分中提到,不需要kext。
    • 需要OS X 10.10或更新的版本
传统网络适配器的Kexts

无论是传统的macOS安装还是旧的PC硬件。

还请记住,某些网卡实际上在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

注意: 由于许多aquania NICs上有一些过时的固件,您可能需要在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 (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)kext (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+蓝牙协议栈打补丁以支持第三方卡
    • 所有非原生(非苹果博通、英特尔等)蓝牙卡都需要
    • 包含在BrcmPatchRAM zip文件中
    • 不要在macOS 11和更早的版本使用

# Intel

  • AirportItlwm (opens new window)
    • 增加了对多种英特尔无线卡的支持,并通过IO80211Family集成在恢复中原生工作
    • 需要macOS 10.13或更新版本,并且需要Apple的安全引导才能正常运行
  • Itlwm (opens new window)
    • 对于无法启用苹果安全引导的系统,可选择AirportItlwm
    • 需要 Heliport (opens new window)
    • 它将被视为以太网卡,你必须通过Heliport连接Wi-Fi
    • 在macOS恢复中不起作用
  • IntelBluetoothFirmware (opens new window)
    • 当与英特尔无线网卡配对时,为macOS添加蓝牙支持
    • 除了修补macOS中的bug之外,还可以使用IntelBTPatcher(包含)
    • 需要macOS 10.13或更新的版本
    • 在macOS 10.13到11中,你还需要intelbluetooth oothinjector(包含)
更多关于启用airportlwm的信息

要使用OpenCore启用AirportItlwm支持,你需要:

  • 启用 Misc -> Security -> SecureBootModel 将其设置为 Default 或其他有效值
  • 如果你不能启用SecureBootModel,你仍然可以强制注入IO80211Family(非常不建议)
    • 在config.plist文件的 Kernel -> Force 下设置以下内容。 (本指南稍后将讨论):

# Broadcom

  • AirportBrcmFixup (opens new window)
    • 用于为非apple /非fenvi Broadcom卡打补丁 不能在Intel, Killer, Realtek等上工作
    • 需要OS X 10.10或更新的版本
    • 关于Big Sur参见Big Sur 已知问题 了解关于AirPortBrcm4360驱动器的额外步骤。
  • BrcmPatchRAM (opens new window)
    • 用于在Broadcom蓝牙芯片组上上传固件,所有非apple /非fenvi机场卡都需要。
    • 与BrcmFirmwareData.kext配对
      • BrcmPatchRAM3用于10.15+(必须与BrcmBluetoothInjector配对)
      • BrcmPatchRAM2为10.11-10.14
      • BrcmPatchRAM为10.8-10.10
    • 在macOS 10.11到macOS 11中,你还需要brcmbluetooth oothinjector(包含)
BrcmPatchRAM加载顺序

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

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

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

然而,ProperTree将为您处理此问题,因此您无需担心

# AMD CPU 专用 kexts

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

# 额外

传统SATA kext

# 笔记本电脑输入

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

WARNING

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

# PS2键盘/触摸板

# SMBus 触摸板

# I2C/USB HID 设备

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

VoodooI2C 插件

连接类型 插件 说明
Multitouch HID VoodooI2CHID 可以与I2C/USB触摸屏和触摸板一起使用
ELAN Proprietary VoodooI2CElan ELAN1200+需要VoodooI2CHID代替
FTE1001 touchpad VoodooI2CFTE
Atmel Multitouch Protocol VoodooI2CAtmelMXT
Synaptics HID VoodooRMI (opens new window) I2C Synaptic触控板(只在I2C模式下需要VoodooI2C)
Alps HID AlpsHID (opens new window) 可与USB或I2C Alps触控板使用。主要出现在戴尔(Dell)笔记本电脑和惠普(HP)的一些EliteBook机型上

# 杂项

请参考 Kexts.md (opens new window) 获得支持的kext的完整列表

# SSDTs

你在AcpiSamples文件夹中看到所有的ssdt,想知道你是否需要它们。对于我们来说,我们将介绍您在配置的特定ACPI部分中需要的ssdt.plist,因为您需要的ssd是特定于平台的。有些甚至是特定于系统的,需要配置它们,如果我现在给您一个可供选择的ssd列表,您很容易就会迷失方向。

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

A quick TL;DR of needed SSDTs(这是源代码,你必须将它们编译到.aml文件中):

# 台式电脑

Platforms CPU EC AWAC NVRAM USB
Penryn N/A SSDT-EC (opens new window) N/A N/A N/A
Lynnfield and Clarkdale
SandyBridge 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)

# 高端台式电脑

Platforms CPU EC RTC PCI
Nehalem and 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

# 笔记本电脑

Platforms CPU EC Backlight I2C Trackpad AWAC USB IRQ
Clarksfield and Arrandale N/A SSDT-EC (opens new window) SSDT-PNLF (opens new window) N/A N/A N/A IRQ SSDT (opens new window)
SandyBridge CPU-PM (opens new window) (Run in Post-Install)
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) and 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)

继续:

Platforms NVRAM IMEI
Clarksfield and 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) and Whiskey Lake
Coffee Lake (9th Gen) SSDT-PMC (opens new window)
Comet Lake N/A
Ice Lake

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