1. 获取最新的ssdtPRGen.sh (15.7) - curl -o ~/ssdtPRGen.sh https://raw.githubusercontent.com/Piker-Alpha/ssdtPRGen.sh/Beta/ssdtPRGen.sh
复制代码
2. 打开执行权限
3. 让ssdtPRGen.sh创建运行环境
这样, ssdtPRGen.sh的环境就创建好了。下面, 我们需要为自己创建一份合适的SSDT以实现CPU的变频。也就是, 利用SSDT表, 向系统传递_PSS(Performance Supported States)和_CST(C States)参数。一旦传递成功, 系统日志中便会出现『X86PlatformShim::sendPStates - Success!』。
要向系统传递合适的参数, 就需要了解处理器的『处理器型号』(processor model)、『最大TDP』、『基础频率/最低频率』(base frequency)、『最高频率』(clock frequency)、『睿频最高档』(turbo)、『核心数』、『线程数/逻辑处理器数量』。这些数据, 全部都可以通过http://ark.intel.com获得。
但是, 如果我有一个以上的处理器, 我的处理器模型不在ssdtPRGen.sh的支持列表中, 又或者我对处理器进行了超频, 这时候我该如何生成合适的SSDT?直接运行ssdtPRGen.sh显然不合适了。
1. 先来看一例, 奔腾G3420。这个处理器并不在ssdtPRGen.sh的支持列表内, 如果不生成合适的SSDT, 系统便会让处理器一直处在最高频率运行, 并且有可能会卡顿。
首先获取处理器的一些参数:处理器型号, 最大TDP, 基础频率, 最高频率, 睿频最高档, 核心数, 线程数, 分别对应G3420, 53, 800, 2800, 2, 2。
2. 前往目录『组合键:Command+Shift+G』『~/library/ssdtPRGen/Data/』, 打开Haswell.cfg。可以看到, 有很多CPU的数据, 问题是, G3420应该添加到什么地方。
注意到『gServerHaswellCPUList=』和『gDesktopHaswellCPUList=』这些类似的字样了吗,这代表了不同类型处理器的集合,G3420属于桌面Haswell平台,因此将G3420, 53, 800, 2800, 2, 2粘贴到『gDesktopHaswellCPUList=』下面任意一行保存即可。
3. 在终端中执行 - ~/ssdtPRGen.sh -c 2 -p G3420
复制代码
就得到了我们要的ssdt.dsl, 从『~/library/ssdtPRGen/』中拷贝出生成的ssdt.aml或者ssdt.dsl贴到对应目录即可。
上述情况只是ssdtPRGen.sh比较一般的使用,现在来看一下ssdtPRGen.sh更详细的应用。
1. 查看ssdtPRGen.sh所能做到的所有事情,终端中输入 得到: Usage: ./ssdtPRGen.sh [-abcdfhlmptwx] -acpi Processor name (example: CPU0, C000) -bclk frequency (base clock frequency) -board-id (example: Mac-F60DEB81FF30ACF6) -cpu type [0/1/2/3] 0 = Sandy Bridge 1 = Ivy Bridge 2 = Haswell 3 = Broadwell -debug output [0/1/3] 0 = no debug injection/debug output 1 = inject debug statements in: ssdt.dsl 2 = show debug output 3 = both -frequency (clock frequency) -help info (this) -lfmode, lowest idle frequency -logical processors [2-128] -model (example: MacPro6,1) -open the previously generated SSDT -processor model (example: 'E3-1285L v3') -show supported board-id and model combinations: Broadwell Haswell Ivy Bridge Sandy Bridge -turbo maximum (turbo) frequency: 6300 for Sandy Bridge and Ivy Bridge 8000 for Haswell and Broadwell -tdp [11.5 - 150] -workarounds for Ivy Bridge [0/1/2/3] 0 = no workarounds 1 = inject extra (turbo) P-State at the top with maximum (turbo) frequency + 1 MHz 2 = inject extra P-States at the bottom 3 = both -xcpm mode [0/1] 0 = XCPM mode disabled 1 = XCPM mode enabled
我们平常sh ~/ssdtPRGen.sh只是这个脚本冰山一角,其实可以调整的部分非常多,甚至,我可以在不修改BIOS设置的情况下,限制处理器的最高频率。
2. 例如,我希望能够生成第2个处理器(CPU1)的SSDT,其详细参数如下: 参数(单位) | 数值 | 处理器 | E5-1620 v3 | 基础频率(MHz) | 100 | 系统默认的SMBIOS | Mac-F60DEB81FF30ACF6 | 处理器类型 | Haswell | 处理器频率(MHz) | 3500 | 空闲最低频率 | 1200 | 线程数量 | 8 | 机型 | MacPro6,1 | 处理器型号 | E5-1620 v3 | 睿频最大频率(MHz) | 3600 | 散热设计功耗(Watts) | 140 |
我们自然希望开启内核的电源管理模式(仅限IvyBridge、Haswell、Broadwell),也就是 XCPM mode enabled。 接下来注入参数,
~/ssdtPRGen.sh -a CPU1 -bclk 100 -b Mac-F60DEB81FF30ACF6 -c 2 -f 3500 -lfm 1200 -l 8 -m MacPro6,1 -p E5-1620\ v3 -turbo 3600 -t 140 -x 1
这样便完成了特定ssdt.dsl以及ssdt.aml的生成了。从『~/library/ssdtPRGen/』中拷贝出生成的ssdt.aml或者ssdt.dsl贴到对应目录即可。
附上最新的ssdtPRGen.sh以及参考资料
|