本指南介绍如何使用 Clover 和 OpenCore 在 macOS 上实现 Intel 和 AMD CPU 的 CPU 电源管理。按照本指南操作,您将能够使用 Clover 或 OpenCore 引导加载程序在 macOS 上启用 Intel 或 AMD CPU 电源管理。I
. 概述
要打造一个性能均衡、稳定的系统,CPU 电源管理至关重要。事实上,电源管理应该是系统安装后首先要实现的功能之一。macOS 原生电源管理可提供最佳性能和效率。合适的电源管理功能不仅可以提升 CPU 性能,还能释放 CPU 速度。因此,您可以在满负荷状态下达到 CPU 的全速运行,并达到最高速度。强烈建议您实施电源管理,以获得最佳的 CPU 速度,并避免睡眠/唤醒功能、温度升高和处理速度变慢等问题。如果没有合适的电源管理功能,系统可能无法达到峰值性能,并且在零负载时无法切换到空闲模式。
二、XCPM 与 macOS
随着 OS X Mountain Lion 10.8.5 的发布,苹果电脑开始支持英特尔的 Haswell CPU。与此同时,苹果将 CPU 电源管理从 AppleIntelCPUPowerManagement.kext 移至内核,用于某些 CPU,包括 Haswell。这项技术被称为 XCPM(Xnu CPU 电源管理)。在苹果电脑上,Haswell 及更新的 CPU 会自动启用这项技术,在 Ivy Bridge CPU 上,可以通过-xcpm
内核标志选择启用。
然而,如果你深入研究一下,就会发现苹果电脑并没有锁定的 MSR 0xE2 寄存器,但大多数非苹果电脑(包括笔记本电脑)都锁定了该寄存器。当 macOS 内核尝试写入该锁定的寄存器时,会导致内核崩溃。这种崩溃发生在进程的早期,导致启动 macOS 安装程序时出现重启。解决这个问题的一个方法是,我们必须为锁定的 CPU MSR 0xE2 修补 AppleIntelCPUPowerManagement.kext,还必须为使用 XCPM 的 CPU 修补内核,以避免内核崩溃和立即重启。
幸运的是,使用 Clover,无需手动修补,可以使用KernelPm
config.plist 的 KernelandKextPatches 部分中的选项进行修补,OpenCore 用户可以使用AppleXcpmCfgLock
config.plist 的 Kernel>Quirks 部分中的选项来实现相同的目的。与手动修补方法不同,每次 macOS 更新后都需要重新修补新内核,Clover 和 OpenCore 使它变得容易得多,并且使用 config.plist 中的这两个选项,您无需担心 macOS 更新。另一个更强大的解决方案是禁用 CFG-Lock,允许 macOS 内核写入 MSR 0xE2 寄存器。请参阅解锁 MSR 0xE2 锁指南以了解更多信息。III
. 要求
以下是在 macOS 上实现 CPU 电源管理的要求。这适用于 Intel 和 AMD。
中央处理器 |
|
UEFI/BIOS 设置 |
|
CPU 设置 |
|
系统管理BIOS |
|
扩展程序 |
|
四、准备
步骤 1:设置 BIOS/UEFI
第一步是设置 BIOS,确保系统电源管理正常工作。请按照以下步骤设置 CPU 的 BIOS。
(a). Intel BIOS 设置
设置 | 价值 | 笔记 |
---|---|---|
超线程 | 已启用 | |
英特尔睿频加速技术 | 已启用 | |
速度步骤 | 已启用 | |
CPU P 状态 | 自动/启用 | |
CPU C 状态 | 自动/启用 |
(b). AMD BIOS 设置
在 AMD 系统上,只需将 BIOS 重置为默认值即可。
步骤 2:移除过时的内核扩展程序和注入程序。
设置好 BIOS 后,下一步是移除可能干扰电源管理实现的内核扩展程序和注入程序。请按照以下步骤操作。
内核扩展程序移除:
如果您使用的是 NullCPUPowerManagement,建议将其移除。请参阅以下说明。1
. 安装您的 ESP
2. 移除NullCPUPowerManagement.kext
。
Clover 属性和注入
如果您正在使用 Clover,则需要禁用 Clover 属性和注入。
1. 安装您的 ESP
2. 打开您的config.plist
并从各自的部分禁用和/或删除以下内容
禁用生成选项可以在部分
中禁用生成选项Acpi>Generate
- 生成 PStates
- 生成 CState
- 插件类型
步骤 3:设置 SMBIOS
下一步是根据您的 CPU 型号设置正确的系统定义 (SMBIOS)。要设置 SMBIOS,请按照以下链接的指南进行操作
五、英特尔CPU电源管理
由于 Apple 支持 Intel CPU,在使用 Intel CPU 的非 Apple 电脑上启用电源管理变得容易得多。过去,由于热量/噪音和电池寿命问题,使用电源管理NullCPUPowerManagement.kext
并非合适的解决方案。自从 Clover 推出后,它就不再需要了。通过拥有最佳的 BIOS/UEFI 设置,关闭 SMBIOS 并将 PluginType=YES 是轻松实现有效电源管理的唯一方法。自 OpenCore 发布以来,人们的想法是使用 SSDT-PLUG,它会设置 PluginType+YES。要为您的 AMD CPU 启用 CPU 电源管理,请按照以下步骤操作。
对于 Sandy Bridge 及更高版本的系统,原生电源管理通过 IOPlatformPluginFamily.kext 中的插件启用ACPI_SMC_PlatformPlugin.kext
。对于 Ivy Bridge CPU,原生电源管理通过 1 启用X86PlatformPlugin.kext
。Ivy Bridge 及更早的版本
本节适用于 Ivy Bridge 及更早版本的 CPU。对于 Haswell 及更高版本的 CPU,请参阅下文 Haswell 及更高版本的部分。
步骤 1:删除 OEM 表
在某些 Sandy Bridge 和 Ivy Bridge 系统上,您可能需要删除CpuPm
OEMCpu0Ist
表以避免AppleIntelCPUPowerManagement.kext
在启动 macOS/OS X 安装程序或系统时出现内核崩溃(见下文)。但是,由于 Windows 中的 Turbo Boost 功能已损坏,删除这些表会产生负面影响。为了解决这个问题,我们需要使用 ssdtPRGen 创建 CPU-PM SSDT,然后才能保留 OEM 表。
1. 安装您的 ESP
2. 打开您的 config.plist
3. 根据您使用的引导加载程序,将以下内容添加到您的 config.plist
对于 OpenCore ,导航到 ACPI 部分并对下一部分
实施以下更改。config.plist
ACPI>Delete
表格签名 | OemTableId | 表长度 | 评论 | 全部 | 已启用 |
---|---|---|---|---|---|
SSDT | 437075506d | 降低 CpuPm | 是的 | ||
SSDT | 43707530497374 | 删除 Cpu0Ist | 是的 |
对于 Clover,导航到 ACPI 部分并在您的 部分
下实施以下更改。ACPI>Drop Tables
config.plist
签名 | 类型/键 | 字符串[TableId]/数字[长度] |
---|---|---|
SSDT | 表编号 | 处理器频率 |
SSDT | 表编号 | Cpu0Ist |
4.保存你的config.plist
步骤 2:创建电源管理 SSDT
完成上述步骤后,对于 Ivy Bridge 及更老版本的 CPU,第一步是使用 ssdtPRGen 脚本创建电源管理 SSDT。要创建电源管理 SSDT,请按照以下步骤操作
步骤 3:启用 OEM 表。
创建 CPU-PM SSDT 后,您可以重新启用在步骤 1 中禁用的 OEM 表。要启用 OEM 表,只需删除在步骤 1 中创建的条目即可。
步骤 4:修补 MSR 锁
下一步是修补 MSR 锁。修补 MSR 锁的方法有很多种,下文已介绍。请仅选择其中一种,不要同时使用。
要验证您的主板是否有 MSR 锁,请按照下面链接的指南进行操作。
方法一:使用 Bootloader 补丁
要修复 MSR 锁,请按照以下步骤操作。
1. 安装你的 ESP 板。
对于 Clover 系统
: 1. 下载 Clover 配置器
2. 使用 Clover 配置器打开你的 config.plist 文件
3.config.plist 文件的部分AppleIntelCPUPM
中config.plist 文件的部分 禁用Quirk 5. 保存你的 config.plist 文件Kernel and Kext Patches
DummyPowerManagement
Quirks>Kernel
对于 OpenCore
1. 下载 OC Auxiliary Tools
2. 使用 OC Auxiliary Tools 打开你的 config.plist。3config.plist 的部分中
禁用config.plist 的部分 启用Quirk 5. 保存你的 config.plistDummyPowerManagement
Kernel>Emulate
AppleCpuPmCfgLock
Kernel>Quriks
方法二:使用变量补丁
。这是解锁 MSR 锁的首选方法。不过,此方法更适合高级用户,需要修补 BIOS 或解锁变量。您可以在下方链接的指南中找到所有这些方法。
步骤 5:重启系统
完成上述所有步骤后,请重启系统以使应用的更改生效。
重启系统后,电源管理将在目标系统上正常运行。2
. Haswell 及更新版本
本节适用于 Haswell 及更新的 CPU。对于 Ivy Bridge 及更早版本的 CPU,请参阅 Ivy Bridge 及更早版本部分了解更多信息。
步骤 1:添加 PM SSDT
下一步是添加 CPU PM SSDT,并将 PluginType 设置为 YES。该 SSDT 可用于 Clover 和 OpenCore。要添加 CPU PM SSDT,请按照以下步骤操作
1. 从本论坛的下载区下载 OpenCore 引导加载程序。
2. 解压 OpenCorePkg
3. 挂载您的 ESP
对于 Clover:
如果您使用的是 Clover,请SSDT-PLUG.aml
从目录OpenCore-0.X.X-RELEASE/Docs/AcpiSamples/Binaries
到EFI/Clover/ACPI/patched
目录。
对于 OpenCore:
如果您使用的是 OpenCore,请SSDT-PLUG.aml
从目录OpenCore-0.X.X-RELEASE/Docs/AcpiSamples/Binaries
到EFI/OC/ACPI
目录。您还需要在ACPI>Add
config.plist 文件
步骤 2:修改 config.plist
下一步是修改 config.plist。您需要做的就是在 config.plist 中启用一些补丁和/或 Quirks。要添加它们,请按照以下步骤操作。1
. 挂载您的 ESP。
对于 Clover
1. 下载 Clover Configurator
2. 使用 Clover Configurator 打开您的 config.plist在config.plist 的某个部分
启用config.plist 的某个部分 禁用Quirks 5. 保存您的 config.plistKernelPm
Kernel and Kext Patches
DummyPowerManagement
Quirks>Kernel
对于 OpenCore
1. 下载 OC Auxiliary Tools
2. 使用 OC Auxiliary Tools 打开你的 config.plist。3config.plist 的部分中
禁用config.plist 的部分 启用Quirk 5. 保存你的 config.plistDummyPowerManagement
Kernel>Emulate
AppleXcpmCfgLock
Kernel>Quriks
步骤 3:重启系统
完成上述所有步骤后,请重启系统以使应用的更改生效。
重启系统后,目标系统上的电源管理功能即可正常工作。
六、AMD CPU 电源管理
虽然官方不支持 AMD CPU,因此 macOS 官方不支持 AMD CPU 上的 CPU 电源管理。然而,在社区的努力下,在 AMD CPU 上实现 CPU 电源管理是可能的。其原理与 Intel CPU 非常相似,但需要额外几个步骤。要为您的 AMD CPU 启用 CPU 电源管理,请按照以下步骤操作。
步骤 1:添加 PM 扩展程序
第一步是添加所需的扩展程序以启用电源管理。
1.AMDRyzenCPUPowerManagement.kext
从本论坛的下载部分下载。
2. 安装您的 ESP。
对于 Clover:
如果您使用的是 Clover,请将 kext 复制到EFI/Clover/Kext/Others
对于 OpenCore:
如果您使用的是 OpenCore,请将 kext 复制到EFI/OC/Kexts
。您还需要在 config.plist 的内核部分添加 kext 条目。
3. 保存您的 config.plist
第 2 步:配置 Quirks
下一步是配置 quirk。要添加,请按照以下步骤操作。
1. 安装您的 ESP。
对于 Clover
1. 下载 Clover Configurator
2. 使用 Clover Configurator 打开您的 config.plist 3. 在您的 config.plist 部分中
启用 4. 保存您的 config.plist对于 OpenCore 1. 下载 OC Auxiliary Tools 2. 使用 OC Auxiliary Tools 打开您的 config.plist。 3.在config.plist 部分启用 4. 保存 config.plist步骤 3:重启系统 完成以上所有步骤后,请重启系统以使应用的更改生效。 重启系统后,目标系统上的电源管理功能将正常运行。VII . 验证 CPU 电源管理DummyPowerManagement
Quirks>Kernel
DummyPowerManagement
Kernel>Emulate
下一步是验证 CPU 电源管理是否正常工作。下载
IOReg 并打开。Intel Ivy Bridge、老款 Haswell 和新款 IOReg
- 验证
plugin-type
属性。plugin-type 属性位于 CPU 节点下。 - 验证 的加载
X86PlatformPlugin
。X86PlatformPlugin 位于 CPU 节点下。
终端
- 使用终端中的命令验证 XCPM 模式
sysctl machdep.xcpm.mode
。如果命令返回1
,则表示 XCPM 模式已激活。 - 验证 X86PlatformPlugin.kext 是否已加载。
- 验证 AppleIntelCPUPM 是否已加载。如果命令返回空结果,则符合预期。
- 使用终端中的命令验证 XCPM 频率向量是否已加载
sysctl -n machdep.xcpm.vectors_loaded_count
。如果命令返回1
,则表示 XCPM 频率向量已正确加载。
AMD
IO注册
- 验证
plugin-type
属性。plugin-type 属性位于 CPU 节点下。 - 验证 的加载
X86PlatformPlugin
。X86PlatformPlugin 位于 CPU 节点下。 - 验证加载
AMDRyzenCPUPowerManagement
八、测试电源管理
重启后,您可以测试电源管理。测试电源管理有两种方法,如下所述。
1. 使用 AppleIntelInfo。
您可以使用 XCode 编译AppleIntelInfo.kext,也可以从附件中下载。
1. 下载 AppleIntelInfo.kext 并将其解压到您的桌面
2. 打开终端并执行以下命令。出现提示时,请输入您的密码。
#Load AppleIntelInfo.kext
sudo kextload /Users/yourusername/Desktop/AppleIntelInfo.kext
#Modify Permissions
sudo chown -R root:wheel ~/Desktop/AppleIntelInfo.kext
sudo chmod -R 755 ~/Desktop/AppleIntelInfo.kext
从步骤 3 继续
。4. 输入:
sudo cat /tmp/AppleIntelInfo.dat
出现提示时,输入密码。5
. 电源状态将显示在终端中。6
. 现在,进行一些基准测试来测试系统。7
. 重新检查电源状态。AppleIntelInfo.kext
输出
AppleIntelInfo.kext v1.4 Copyright © 2012-2015 Pike R. Alpha. All rights reserved
Settings:
------------------------------------
logMSRs............................: 1
logIGPU............................: 1
logIntelRegs.......................: 1
logCStates.........................: 1
logIPGStyle........................: 1
InitialTSC.........................: 0x10a77f324eb
MWAIT C-States.....................: 286531872
Model Specific Regiters
------------------------------------
MSR_CORE_THREAD_COUNT......(0x35) : 0x40008
MSR_PLATFORM_INFO..........(0xCE) : 0x4043DF1011200
MSR_PMG_CST_CONFIG_CONTROL.(0xE2) : 0x1E008008
MSR_PMG_IO_CAPTURE_BASE....(0xE4) : 0x51814
IA32_MPERF.................(0xE7) : 0x4680F3D6A
IA32_APERF.................(0xE8) : 0x271CEF7AB6
MSR_FLEX_RATIO.............(0x194) : 0x0
MSR_IA32_PERF_STATUS.......(0x198) : 0x1B4100001900
MSR_IA32_PERF_CONTROL......(0x199) : 0xA00
IA32_CLOCK_MODULATION......(0x19A) : 0x0
IA32_THERM_STATUS..........(0x19C) : 0x88390000
IA32_MISC_ENABLES..........(0x1A0) : 0x850089
MSR_MISC_PWR_MGMT..........(0x1AA) : 0x401CC1
MSR_TURBO_RATIO_LIMIT......(0x1AD) : 0x22222222
IA32_ENERGY_PERF_BIAS......(0x1B0) : 0x5
MSR_POWER_CTL..............(0x1FC) : 0x24005F
MSR_RAPL_POWER_UNIT........(0x606) : 0xA0E03
MSR_PKG_POWER_LIMIT........(0x610) : 0x42816000DD8090
MSR_PKG_ENERGY_STATUS......(0x611) : 0x15D41C3
MSR_PKG_POWER_INFO.........(0x614) : 0x78
MSR_PP0_CURRENT_CONFIG.....(0x601) : 0x238
MSR_PP0_POWER_LIMIT........(0x638) : 0x0
MSR_PP0_ENERGY_STATUS......(0x639) : 0x8988B9
MSR_PP0_POLICY.............(0x63a) : 0x0
MSR_PKGC6_IRTL.............(0x60b) : 0x8876
MSR_PKG_C2_RESIDENCY.......(0x60d) : 0x3FA7E14C84
MSR_PKG_C3_RESIDENCY.......(0x3f8) : 0x8D822839A6
MSR_PKG_C6_RESIDENCY.......(0x3f9) : 0x0
IA32_TSC_DEADLINE..........(0x6E0) : 0x10A7A9B6C2E
PCH device.................: 0x9D4E8086
Intel Register Data
------------------------------------
CPU_VGACNTRL...............: 0x0
IS_ELSE(devid)
DCC........................: 0x000a3162 ()
CHDECMISC..................: 0x00000898 (none, ch2 enh enabled, ch1 enh enabled, ch0 enh disabled, flex disabled, ep not present)
C0DRB0.....................: 0x000a3162 (0x3162)
C0DRB1.....................: 0x0000000a (0x000a)
C0DRB2.....................: 0x00000000 (0x0000)
C0DRB3.....................: 0x4c900000 (0x0000)
C1DRB0.....................: 0x16ad3db0 (0x3db0)
C1DRB1.....................: 0xff8016ad (0x16ad)
C1DRB2.....................: 0xffffff80 (0xff80)
C1DRB3.....................: 0x5180ffff (0xffff)
C0DRA01....................: 0x164a4c90 (0x4c90)
C0DRA23....................: 0xff80164a (0x164a)
C1DRA01....................: 0x16d85180 (0x5180)
C1DRA23....................: 0xff8016d8 (0x16d8)
PGETBL_CTL.................: 0x00000000
VCLK_DIVISOR_VGA0..........: 0x00050004 (n = 5, m1 = 0, m2 = 4)
VCLK_DIVISOR_VGA1..........: 0x00000000 (n = 0, m1 = 0, m2 = 0)
VCLK_POST_DIV..............: 0x04004018 (vga0 p1 = 26, p2 = 2, vga1 p1 = 2, p2 = 2)
DPLL_TEST..................: 0x00000030 (, DPLLA input buffer disabled, DPLLB input buffer disabled)
CACHE_MODE_0...............: 0x09070138
D_STATE....................: 0x00000101
DSPCLK_GATE_D..............: 0x00000000 (clock gates disabled:)
RENCLK_GATE_D1.............: 0x0000000f
RENCLK_GATE_D2.............: 0x00000000
SDVOB......................: 0x00000000 (disabled, pipe A, stall disabled, not detected)
SDVOC......................: 0x00000136 (disabled, pipe A, stall disabled, detected)
SDVOUDI....................: 0x00000000
DSPARB.....................: 0x00000000
FW_BLC.....................: 0x5ce0e8c8
FW_BLC2....................: 0x00007fff
FW_BLC_SELF................: 0x0034009e
DSPFW1.....................: 0x00000000
DSPFW2.....................: 0x00000000
DSPFW3.....................: 0x00000000
ADPA.......................: 0x00000136 (disabled, pipe A, -hsync, +vsync)
LVDS.......................: 0x0000002c (disabled, pipe A, 18 bit, 2 channels)
DVOA.......................: 0x0000021a (disabled, pipe A, no stall, +hsync, +vsync)
DVOB.......................: 0x00000000 (disabled, pipe A, no stall, -hsync, -vsync)
DVOC.......................: 0x00000136 (disabled, pipe A, no stall, -hsync, +vsync)
DVOA_SRCDIM................: 0x00000000
DVOB_SRCDIM................: 0x00000000
DVOC_SRCDIM................: 0x00000000
BLC_PWM_CTL................: 0x00007fd0
BLC_PWM_CTL2...............: 0x9aa131d0
PP_CONTROL.................: 0x00000000 (power target: off)
PP_STATUS..................: 0x00000000 (off, not ready, sequencing idle)
PP_ON_DELAYS...............: 0x9aa01d90
PP_OFF_DELAYS..............: 0x00007fd0
PP_DIVISOR.................: 0x00000004
PFIT_CONTROL...............: 0x00000004
PFIT_PGM_RATIOS............: 0x00000136
PORT_HOTPLUG_EN............: 0x00000000
PORT_HOTPLUG_STAT..........: 0x00000000
DSPACNTR...................: 0x00000000 (disabled, pipe A)
DSPASTRIDE.................: 0x5d001fe0 (1560289248 bytes)
DSPAPOS....................: 0x00007f8f (32655, 0)
DSPASIZE...................: 0x090371a8 (29097, 2308)
DSPABASE...................: 0x00000000
DSPASURF...................: 0x00000000
DSPATILEOFF................: 0x00000000
PIPEACONF..................: 0x00000000 (disabled, single-wide)
PIPEASRC...................: 0x00007fff (1, 32768)
PIPEASTAT..................: 0x00007f8f (status: CRC_ERROR_INT_STATUS CRC_DONE_INT_STATUS GMBUS_INT_STATUS VSYNC_INT_STATUS DLINE_COMPARE_STATUS DPST_EVENT_STATUS SVBLANK_INT_STATUS VBLANK_INT_STATUS OREG_UPDATE_STATUS)
PIPEA_GMCH_DATA_M..........: 0x09037068
PIPEA_GMCH_DATA_N..........: 0x00000001
PIPEA_DP_LINK_M............: 0x00000000
PIPEA_DP_LINK_N............: 0x00000000
CURSOR_A_BASE..............: 0x00000000
CURSOR_A_CONTROL...........: 0x00000000
CURSOR_A_POSITION..........: 0x00000000
FPA0.......................: 0x00000388 (n = 0, m1 = 3, m2 = 8)
FPA1.......................: 0x00000000 (n = 0, m1 = 0, m2 = 0)
DPLL_A.....................: 0x00005010 (disabled, non-dvo, VGA, TV B/C clock, unknown mode, p1 = 0, p2 = 0)
DPLL_A_MD..................: 0x00000000
HTOTAL_A...................: 0x00000000 (1 active, 1 total)
HBLANK_A...................: 0x00000000 (1 start, 1 end)
HSYNC_A....................: 0x8e766c88 (27785 start, 36471 end)
VTOTAL_A...................: 0x00007fff (32768 active, 1 total)
VBLANK_A...................: 0x00000060 (97 start, 1 end)
VSYNC_A....................: 0x00000000 (1 start, 1 end)
BCLRPAT_A..................: 0x00000000
VSYNCSHIFT_A...............: 0x00000000
DSPBCNTR...................: 0x09038198 (disabled, pipe B)
DSPBSTRIDE.................: 0x00000000 (0 bytes)
DSPBPOS....................: 0x00000000 (0, 0)
DSPBSIZE...................: 0x00000000 (1, 1)
DSPBBASE...................: 0x00000001
DSPBSURF...................: 0x00000000
DSPBTILEOFF................: 0x00007f8f
PIPEBCONF..................: 0x00000000 (disabled, single-wide)
PIPEBSRC...................: 0x00000000 (1, 1)
PIPEBSTAT..................: 0x00000000 (status:)
PIPEB_GMCH_DATA_M..........: 0x00000000
PIPEB_GMCH_DATA_N..........: 0x00000000
PIPEB_DP_LINK_M............: 0x5d001fe0
PIPEB_DP_LINK_N............: 0x00007f8f
CURSOR_B_BASE..............: 0x00007f8f
CURSOR_B_CONTROL...........: 0x5d001fe0
CURSOR_B_POSITION..........: 0x090370e0
FPB0.......................: 0x00000388 (n = 0, m1 = 3, m2 = 8)
FPB1.......................: 0x00000000 (n = 0, m1 = 0, m2 = 0)
DPLL_B.....................: 0x00000000 (disabled, non-dvo, VGA, default clock, unknown mode, p1 = 0, p2 = 0)
DPLL_B_MD..................: 0x00000000
HTOTAL_B...................: 0x00000000 (1 active, 1 total)
HBLANK_B...................: 0x00000000 (1 start, 1 end)
HSYNC_B....................: 0x9a909670 (38513 start, 39569 end)
VTOTAL_B...................: 0x00007fd0 (32721 active, 1 total)
VBLANK_B...................: 0x0000004c (77 start, 1 end)
VSYNC_B....................: 0x0000010b (268 start, 1 end)
BCLRPAT_B..................: 0x00000000
VSYNCSHIFT_B...............: 0x00000004
VCLK_DIVISOR_VGA0..........: 0x00050004
VCLK_DIVISOR_VGA1..........: 0x00000000
VCLK_POST_DIV..............: 0x04004018
VGACNTRL...................: 0x09038418 (enabled)
TV_CTL.....................: 0x5c5024a0
TV_DAC.....................: 0x00007fff
TV_CSC_Y...................: 0x879468a8
TV_CSC_Y2..................: 0x00007fff
TV_CSC_U...................: 0x8f2d00f0
TV_CSC_U2..................: 0x00007fff
TV_CSC_V...................: 0x8f2d00f0
TV_CSC_V2..................: 0x00007fff
TV_CLR_KNOBS...............: 0x5c5024a0
TV_CLR_LEVEL...............: 0x00007fff
TV_H_CTL_1.................: 0x00000000
TV_H_CTL_2.................: 0x00000000
TV_H_CTL_3.................: 0x87946730
TV_V_CTL_1.................: 0x00007fff
TV_V_CTL_2.................: 0x87b67068
TV_V_CTL_3.................: 0x00007fff
TV_V_CTL_4.................: 0x8f2d0140
TV_V_CTL_5.................: 0x00007fff
TV_V_CTL_6.................: 0x5c5024a0
TV_V_CTL_7.................: 0x00007fff
TV_SC_CTL_1................: 0x87946e00
TV_SC_CTL_2................: 0x00007fff
TV_SC_CTL_3................: 0x8f2d00f0
TV_WIN_POS.................: 0x8f2d00f0
TV_WIN_SIZE................: 0x00007fff
TV_FILTER_CTL_1............: 0x00000000
TV_FILTER_CTL_2............: 0x00000000
TV_FILTER_CTL_3............: 0x87946ca8
TV_CC_CONTROL..............: 0x87b67130
TV_CC_DATA.................: 0x00007fff
TV_H_LUMA_0................: 0x87952868
TV_H_LUMA_59...............: 0x00000000
TV_H_CHROMA_0..............: 0x8f2d00f0
TV_H_CHROMA_59.............: 0x00007fff
FBC_CFB_BASE...............: 0x09071218
FBC_LL_BASE................: 0x00000001
FBC_CONTROL................: 0x00000000
FBC_COMMAND................: 0x00000000
FBC_STATUS.................: 0x00000000
FBC_CONTROL2...............: 0x00000000
FBC_FENCE_OFF..............: 0x00000000
FBC_MOD_NUM................: 0x5d001fe0
MI_MODE....................: 0x00000000
MI_ARB_STATE...............: 0x00000000
MI_RDRET_STATE.............: 0x00000001
ECOSKPD....................: 0x00000000
DP_B.......................: 0x00000000
DPB_AUX_CH_CTL.............: 0x00000000
DPB_AUX_CH_DATA1...........: 0x00000000
DPB_AUX_CH_DATA2...........: 0x00000000
DPB_AUX_CH_DATA3...........: 0x00000000
DPB_AUX_CH_DATA4...........: 0x00000000
DPB_AUX_CH_DATA5...........: 0x00000000
DP_C.......................: 0x00050004
DPC_AUX_CH_CTL.............: 0x04004010
DPC_AUX_CH_DATA1...........: 0x00005010
DPC_AUX_CH_DATA2...........: 0x3b220230
DPC_AUX_CH_DATA3...........: 0x00007fc0
DPC_AUX_CH_DATA4...........: 0x3b2202a0
DPC_AUX_CH_DATA5...........: 0x00007fc0
DP_D.......................: 0x00000000
DPD_AUX_CH_CTL.............: 0x88217709
DPD_AUX_CH_DATA1...........: 0x001dffff
DPD_AUX_CH_DATA2...........: 0x00001280
DPD_AUX_CH_DATA3...........: 0x00000001
DPD_AUX_CH_DATA4...........: 0x00050005
DPD_AUX_CH_DATA5...........: 0x00000003
AUD_CONFIG.................: 0x00000000
AUD_HDMIW_STATUS...........: 0x00000000
AUD_CONV_CHCNT.............: 0x00000000
VIDEO_DIP_CTL..............: 0x00000000
AUD_PINW_CNTR..............: 0x00000000
AUD_CNTL_ST................: 0x00000000
AUD_PIN_CAP................: 0x00000000
AUD_PINW_CAP...............: 0x00000000
AUD_PINW_UNSOLRESP.........: 0x00000000
AUD_OUT_DIG_CNVT...........: 0x00000000
AUD_OUT_CWCAP..............: 0x00000000
AUD_GRP_CAP................: 0x00000000
FENCE 0...................: 0x5d001fe0 (disabled)
FENCE 1...................: 0x00007f8f (enabled, Y tiled, 128 pitch, 0x00000000 - 0x08000000 (131072kb))
FENCE 2...................: 0x09070020 (disabled)
FENCE 3...................: 0x00000001 (enabled, X tiled, 512 pitch, 0x00000000 - 0x00100000 (1024kb))
FENCE 4...................: 0x00000000 (disabled)
FENCE 5...................: 0x00000000 (disabled)
FENCE 6...................: 0x00000000 (disabled)
FENCE 7...................: 0x00000000 (disabled)
FENCE 8...................: 0x00000000 (disabled)
FENCE 9...................: 0x00000000 (disabled)
FENCE 10..................: 0x00000000 (disabled)
FENCE 11..................: 0x00000000 (disabled)
FENCE 12..................: 0x00000000 (disabled)
FENCE 13..................: 0x00000000 (disabled)
FENCE 14..................: 0x5d001fe0 (disabled)
FENCE 15..................: 0x00007f8f (enabled, Y tiled, 128 pitch, 0x00000000 - 0x08000000 (131072kb))
FENCE START 0..............: 0x00000000 ()
FENCE END 0................: 0x00000000 ()
FENCE START 1..............: 0x00000000 ()
FENCE END 1................: 0x00000000 ()
FENCE START 2..............: 0x00000000 ()
FENCE END 2................: 0x00000000 ()
FENCE START 3..............: 0x5d001fe0 ()
FENCE END 3................: 0x00007f8f ()
FENCE START 4..............: 0x09071038 ()
FENCE END 4................: 0x00000001 ()
FENCE START 5..............: 0x00000000 ()
FENCE END 5................: 0x00000000 ()
FENCE START 6..............: 0x00000000 ()
FENCE END 6................: 0x00000000 ()
FENCE START 7..............: 0x00000000 ()
FENCE END 7................: 0x00000000 ()
FENCE START 8..............: 0x5d001fe0 ()
FENCE END 8................: 0x00007f8f ()
FENCE START 9..............: 0x09071060 ()
FENCE END 9................: 0x00000001 ()
FENCE START 10.............: 0x00000000 ()
FENCE END 10...............: 0x00000000 ()
FENCE START 11.............: 0x00000000 ()
FENCE END 11...............: 0x00000000 ()
FENCE START 12.............: 0x00000000 ()
FENCE END 12...............: 0x00000000 ()
FENCE START 13.............: 0x5d001fe0 ()
FENCE END 13...............: 0x00007f8f ()
FENCE START 14.............: 0x09071088 ()
FENCE END 14...............: 0x00000001 ()
FENCE START 15.............: 0x00000000 ()
FENCE END 15...............: 0x00000000 ()
INST_PM....................: 0x00000000
p1 out of range
ref out of range
pipe A dot 0 n 0 m1 3 m2 8 p1 1 p2 10
p1 out of range
pipe B dot 168000 n 0 m1 3 m2 8 p1 1 p2 10
CPU Ratio Info:
------------------------------------
CPU Low Frequency Mode.............: 400 MHz
CPU Maximum non-Turbo Frequency....: 1800 MHz
CPU Maximum Turbo Frequency........: 3400 MHz
IGPU Info:
------------------------------------
IGPU Current Frequency.............: 0 MHz
IGPU Minimum Frequency.............: 300 MHz
IGPU Maximum Non-Turbo Frequency...: 300 MHz
IGPU Maximum Turbo Frequency.......: 1100 MHz
IGPU Maximum limit.................: No Limit
CPU P-States [ (12) 18 26 ] iGPU P-States [ ]
CPU C3-Cores [ 0 6 7 ]
CPU C3-Cores [ 0 2 3 6 7 ]
CPU C3-Cores [ 0 2 3 4 5 6 7 ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ 12 (16) 18 26 ] iGPU P-States [ ]
CPU P-States [ 12 (16) 17 18 26 ] iGPU P-States [ ]
CPU P-States [ 12 (16) 17 18 21 26 ] iGPU P-States [ ]
CPU P-States [ (12) 14 16 17 18 21 26 ] iGPU P-States [ ]
CPU P-States [ (12) 13 14 16 17 18 21 26 ] iGPU P-States [ ]
CPU P-States [ (12) 13 14 15 16 17 18 21 26 ] iGPU P-States [ ]
CPU P-States [ 12 13 14 15 16 17 18 (20) 21 26 ] iGPU P-States [ (30) ]
CPU P-States [ 12 13 14 15 (16) 17 18 20 21 24 26 ] iGPU P-States [ 30 ]
CPU P-States [ 12 13 14 15 16 17 18 20 21 (23) 24 26 ] iGPU P-States [ 30 ]
CPU P-States [ 12 13 14 15 16 17 18 20 21 23 24 26 (31) ] iGPU P-States [ 30 ]
CPU P-States [ 12 13 14 15 16 17 18 20 21 23 24 26 27 31 (32) ] iGPU P-States [ 30 ]
CPU P-States [ 12 13 14 15 16 17 18 20 21 23 (24) 26 27 30 31 32 ] iGPU P-States [ 30 ]
CPU P-States [ 12 13 14 15 16 17 18 20 21 22 23 24 26 27 30 (31) 32 ] iGPU P-States [ 30 ]
CPU P-States [ 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 (30) 31 32 ] iGPU P-States [ 30 ]
CPU P-States [ 12 13 14 15 (16) 17 18 20 21 22 23 24 25 26 27 29 30 31 32 ] iGPU P-States [ 30 ]
CPU P-States [ (12) 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 ] iGPU P-States [ 30 ]
CPU P-States [ (12) 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ] iGPU P-States [ 30 ]
CPU P-States [ (12) 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ] iGPU P-States [ 2 30 ]
CPU P-States [ 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 (34) ] iGPU P-States [ 2 30 ]
CPU P-States [ (9) 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 ] iGPU P-States [ 2 30 ]
CPU P-States [ (9) 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 ] iGPU P-States [ 2 30 ]
CPU P-States [ 9 (10) 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 ] iGPU P-States [ 2 30 ]
CPU P-States [ 9 10 11 (12) 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ] iGPU P-States [ 2 30 ]
CPU P-States [ 9 10 11 (12) 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ] iGPU P-States [ 2 30 ]
CPU P-States [ 9 10 11 12 13 14 15 (16) 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ] iGPU P-States [ 2 30 ]
2. 使用英特尔 Power Gadget 工具
1. 安装英特尔 Power Gadget。2
. 让系统闲置一分钟。3
. 一两分钟后,开始在系统上执行任务。您可以使用基准测试软件来增加 CPU 负载。
空闲模式加载

加载至空闲模式

额外的
在黑苹果上,不支持休眠(挂起到磁盘或 S4 睡眠)。因此建议禁用它。1
. 打开终端并逐个执行以下命令。
sudo pmset -a hibernatemode 0
sudo rm /var/vm/sleepimage
sudo mkdir /var/vm/sleepimage
此外,禁用其他与休眠相关的功能也是一个好主意。
sudo pmset -a standby 0
sudo pmset -a autopoweroff 0
问题报告
细节:
- macOS 版本
- CPU/主板型号
- IOReg 副本
- AppleInfo.dat 的输出
- Kextcache 输出
截图:
- 系统信息
- 英特尔电源小工具
文件:
- 对于 Clover, EFI/Clover,排除主题文件夹。
- 对于 OpenCore, EFI/OC。
笔记:
- 不包括完整的 EFI 文件夹。
评论0