什么是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 | |||||
平台 | SSDT | SSDT | |||
Ivy Bridge: | CPU-PM(Run in Post-Install) | SSDT-EC | |||
Haswell: | SSDT-PLUG | SSDT-EC | |||
Skylake: | SSDT-PLUG | SSDT-EC-USBX | |||
Kabylake: | SSDT-PLUG | SSDT-EC-USBX | |||
Coffeelake: | SSDT-PLUG | SSDT-EC-USBX | SSDT AWAC | SSDT-PMC | |
AMD: | SSDT-EC-USBX |
台式机High End Desktop | ||
平台 | SSDT | SSDT |
Haswell-E: | SSDT-PLUG | SSDT-EC |
Broadwell-E: | SSDT-PLUG | SSDT-EC |
Skylake-X: | SSDT-PLUG | SSDT-EC-USBX |
Laptop【笔记本电脑】 | |||||||
平台 | SSDT | SSDT | SSDT | SSDT | SSDT | SSDT | SSDT |
Ivy Bridge: | EC ACPI Patch | CPU-PM | SSDT-PNLF | SSDT-GPI0 | IRQ SSDT | ||
Haswell: | EC ACPI Patch | SSDT-PLUG | SSDT-PNLF | SSDT-GPI0 | IRQ SSDT | ||
Broadwell: | EC ACPI Patch | SSDT-PLUG | SSDT-PNLF | SSDT-GPI0 | IRQ SSDT | ||
Skylake: | EC ACPI Patch | SSDT-PLUG | SSDT-PNLF | SSDT-GPI0 | IRQ SSDT | ||
Kabylake: | EC ACPI Patch | SSDT-PLUG | SSDT-PNLF | SSDT-GPI0 | IRQ SSDT | ||
Coffeelake(8th Gen): | EC ACPI Patch | SSDT-PLUG | SSDT-PNLF | SSDT-GPI0 | IRQ SSDT | ||
Coffeelake(9th Gen): | EC ACPI Patch | SSDT-PLUG | SSDT AWAC | SSDT-PMC | SSDT-PNLF | SSDT-GPI0 | IRQ SSDT |