什么是DSDT和SSDT?这些是固件中提供的表格,概述了硬件设备,例如USB控制器,CPU线程,嵌入式控制器,系统时钟等。DSDT(区分系统描述表)可以看作是包含大多数信息的主体,而较小的信息位则由SSDT(辅助系统描述表)传递

那么,为什么我们要需要这些表呢?

macOS对于DSDT中存在的设备可能会非常挑剔,因此我们需要修纠正它。需要更正以使macOS系统能正常在普通的PC上运行的主要设备:

  • Embedded controllers(EC)(EC)
    • 现代的英特尔计算机在其DSDT中都暴露了EC,许多AMD系统也暴露了EC。这些控制器与macOS不兼容,因此在运行macOS Catalina时,必须将其从macOS中隐藏起来并替换为虚拟EC。对于笔记本电脑,我们仍然需要这些EC,因此我们将其重命名为macOS期望的EC
  • Plugin type
    • 这用于在Intel Haswell和更新的CPU 上启用本机CPU电源管理,SSDT将连接到CPU的第一个线程。不适用于AMD
  • AWAC system clock。
    • 这适用于所有300系列主板,包括Z370主板,具体问题是较新的主板附带启用了AWAC system clock的功能。这是一个问题,因为macOS无法与AWAC system clock进行通信,因此这要求我们要么强制使用旧版Legacy RTC clock, 要么如果无法使用,请为macOS创建一个虚拟的来使用
  • NVRAM SSDT
    • True 300系列主板(非Z370)未在ACPI中将FW芯片声明为MMIO,因此XNU会忽略UEFI内存映射所声明的MMIO区域。该SSDT带回了NVRAM支持
  • Backlight SSDT(背光 SSDT)
    • 用于固定笔记本电脑的背光支持
  • GPIO SSDT
    • 用于创建存根以允许VoodooI2C连接到笔记本电脑(仅适用于笔记本电脑)
  • XOSI SSDT
    • 用于将OSI调用重新路由到此SSDT,主要用于诱使我们的硬件考虑其引导Windows,以便我们获得更好的触控板支持。仅适用于笔记本电脑
  • IRQ SSDT and ACPI patch
    • 主要用于笔记本电脑,需要在DSDT中解决IRQ冲突。SSDTTime exclusive

每个平台需要什么SSDT

请参阅您的config.plist特定ACPI部分,其中所有所需的SSDT均带有breif解释器。但这是一个非常快速的TL; DR:

笔记本Desktop

Ivy Bridge:

Haswell:

Skylake:

Kabylake:

Coffeelake:

AMD:

台式机High End Desktop

Haswell-E:

Broadwell-E:

Skylake-X:

Laptop

Ivy Bridge:

Haswell:

Broadwell:

Skylake:

Kabylake:

Coffeelake(8th Gen):

Coffeelake(9th Gen):