二:ACPI定制版(SSDT)教程

简介:SSDT 定制,主要包括两类:

          常规类:SSDT,SSDT-EC,SSDT-USBX等

          特殊类:屏蔽硬盘,屏蔽显卡,GPU ID伪造等

本篇所有用到的文件点击下载(需要密码验证关注以后,后台私聊索取,文件解压密码:gaomac.com)


常规类SSDT 定制:

定制环境Windows10
所需工具AIDA64python-amd64SSDTTime
手动定制所需SSDT-RTC0.dslSSDT-RTC0-RANGE.aml
  • 安装python-amd64.exe(如有python环境忽略此条)
图片[1]-二:ACPI定制版(SSDT)教程-黑果老周

清空Results缓存文件夹,打开SSDTTime.bat键入 P>回车,提取本机ACPI

根据所需生成SSDT即可

图片[2]-二:ACPI定制版(SSDT)教程-黑果老周
1.FixHPETIRQ补丁,主要用于X79、X99和笔记本电脑用户,声音有问题可以尝试
2.FakeEC台式机不管什么架构都需要
3.FakeEC Laptop笔记本不管什么架构都需要
4.USBX从6代开始(台式机,笔记本通用)
高级平台HPET:Haswell-E及更新的架构,AMD锐龙
这个就是SSDT-USBX
5.PluginType从Haswell开始,从4代开始(台式机,笔记本通用)
高级平台HPET:Haswell-E及更新的架构需要
这是SSDT-PLUG
6.PMC仅适用于Intel True 300+系列,常用在Coffee Lake (9th Gen)架构,
台式机:8代,9代,笔记本:9代,10代(Comet Lake),备选测试使用,可以先不开启。
7.RTCAWAC从8代开始需要(台式机,笔记本通用)。启用、伪造和/或修复RTC。
8.USB Reset用于重置华硕Z490主板macOS中的USB端口,笔记本10代(Ice Lake架构)
台式机10代,11代,备选测试使用,可以先不开启。
这是SSDT-RHUB
9.PCI Bridge创建传递设备路径所需的丢失的PCI桥,通常不需要
0.PNLF所有笔记本需要,背光修复,
输入0回车,然后根据CPU架构输入UID值(这个值0回车后可以看到),
这是SSDT-PNLF
A.XOSI笔记本从4代开始需要,触控板修复
这是SSDT-XOSI
B.Fix DMAR主要适用于需要VT-d功能的设备
例如:基于I225的以太网控制器,Aquantia以太网控制器和一些WiFi设备
除以上各条台式机和笔记本2代,3代:需要SSDT-IMEI.aml 使用预制版即可
台式机和笔记本2代,3代:需要SSDT-PM.aml(安装系统后脚本生成)
SSDT-PM.aml:目的为完善系统所用,安装系统时不需要


SSDT-RTC0.aml定制相当于AWAC对于此条强烈建议使用SSDTTIME生成AWAC

高级平台HPET从Haswell-E开始需要:SSDT-RTC0-RANGE.aml(有预制版和手动版)

定制完,清空你得EFI>OC>Config>ACPI里的各种设置,并把定制的各种SSDT.aml放入ACPI文件夹

然后打开PatchMerge.bat>键入1,回车>把Config配置文件拖入CMD命令窗口>回车

键入2即可生成Config配置文件(文件在缓存文件夹),替换掉你EFI里的Config使用

图片[3]-二:ACPI定制版(SSDT)教程-黑果老周

工具:AIDA64Xiasl(SSDT-aml编译工具)、SSDT-RTC0.dsl

图片[4]-二:ACPI定制版(SSDT)教程-黑果老周

搜索字符串 ADR, 0x001F0000 记录所需数据 下图示例记录:LPC0

图片[5]-二:ACPI定制版(SSDT)教程-黑果老周

搜索字符串 PNP0A08(如果出现多个,则使用第一个) 记录所需数据 下图示例记录:PCI0

图片[6]-二:ACPI定制版(SSDT)教程-黑果老周

用Xiasl编译工具打开 ,SSDT-RTC0.dsl ,如下图所示一共2串 SB开头字符串

SB.XXXX.XXXX>SB.后面第一个空改写,搜索字符串 PNP0A08记录数值

SB.XXXX.XXXX>SB.后面第二个空改写,搜索字符串 ADR, 0x001F0000记录数值、

改写完成 点击保存生成 即可,生成文件和编辑的文件SSDT-RTC0.dsl同目录

图片[7]-二:ACPI定制版(SSDT)教程-黑果老周

工具:AIDA64Xiasl(SSDT-aml编译工具)、SSDT-RTC0-RANGE.aml

  1. 提取机器DSDT,使用Xiasl打开提取的DSDT
图片[8]-二:ACPI定制版(SSDT)教程-黑果老周

2. 搜索字符串 PNP0B00发生的 记录所需数据 下图示例记录:RTC

图片[9]-二:ACPI定制版(SSDT)教程-黑果老周

从上图中,我们看到我们有2个RTC内存库:

组1:从0x70开始,长度为0x2、组2:从0x74开始,长度为0x4

OEM忘记了垫第0x72和0x73节。macOS可能会在启动时停止(在Big Sur中很明显)

3. 搜索字符串 ADR, 0x001F0000 记录所需数据 下图示例记录:LPC0

图片[10]-二:ACPI定制版(SSDT)教程-黑果老周

4. 搜索字符串 PNP0A08(如果出现多个,则使用第一个) 记录所需数据 下图示例记录:PCI0

图片[11]-二:ACPI定制版(SSDT)教程-黑果老周

三个搜索得到:(假设只是为了更为方便的理解)

  • PNP0B00>RTC>将得到的值RTC假设为:A
  • ADR, 0x001F0000>LPC0>将得到的值LPC0假设为:B
  • PNP0A08>PCI0>将得到的值PCI0假设为:C
  • 现在我们需要设置我们的SSDT-RTC0-RANGE.dsl路径
    • 默认情况下,它使用PC00.LPC0.RTC作为路径
    • 现在替换成我们自己的即:C.B.APCI0.LPC0.RTC

5. 打开SSDT-RTC0-RANGE.dsl原件编译aml文件,编译后生成的aml与dsl同目录

图片[12]-二:ACPI定制版(SSDT)教程-黑果老周


特殊类SSDT定制

定制环境Windows10
所需工具Xiasl(SSDT-aml编辑工具),各种特殊类SSDT原件
屏蔽显卡SSDT-GPU-DISABLE.dsl、SSDT-dGPU-Off.dsl、SSDT-NoHybGfx.dsl
屏蔽硬盘SSDT-NVMEpan-Off.ds
伪造显卡SSDT-GPU-SPOOF.dsl、SSDT-6650XT-73EF-GPU-SPOOF.dsl
屏蔽显卡和硬盘的SSDT理论都是一样的屏蔽ACPI路径
如果屏蔽失败可以尝试使用4个不同的dsl编译,屏蔽硬盘也可以尝试使用屏蔽显卡的dsl

显卡硬盘屏蔽思路

获取设备ACPI路径,把屏蔽SSDT里的ACPI路径换成自己的

设备ACPI路径查看方法:

右键我的电脑>管理>设备管理器>双击需要屏蔽的设备>详细信息>属性里选择位置路径/BIOS 设备名称

下面是几个ACPI路径转换例子

图片[13]-二:ACPI定制版(SSDT)教程-黑果老周

以上图为例:左边NVM固态,右边N卡 1050

固态转换地址为(括号里内容):\_SB.PCI0.RP09.PXSX

NVIDIAGTX1050显卡转换地址为:\_SB.PCI0.PEG0.PEGP

AMD独显地址一般为:\_SB.PCI0.PEGP.DGFX

图片[14]-二:ACPI定制版(SSDT)教程-黑果老周

上图固态转换地址为(结尾#PCI(0000)需要忽略):\_SB.PCI0.GPP4

屏蔽不支持的显卡

  • 屏蔽方法
    • BIOS显示设备选择核显输出
      • 局限性:无法双系统,WIN使用独显的话还要调BIOS
    • BIOS禁用显卡所用的的PCI插槽
      • 局限性:无法双系统,WIN使用独显的话还要调BIOS
    • SSDT 禁用独显
    • 启动参数添加boot-arg:-wegnoegpu
      • 参数局限性:仅适用于英特尔CPU
      • 仍会消耗电量,台式机这点可以无视,如果你的笔记本插电使用亦可无视
  • SSDT-GPU-DISABLE.dsl
    • 主要适用于macOS不支持的GPU,主要是用于Nvidia显卡+AMD核显的情况
    • 编译SSDT-GPU-DISABLE.dsl,以上图NVIDIAGTX1050地址:\_SB.PCI0.PEG0.PEGP为例
      • 用Xiasl打开:SSDT-GPU-DISABLE.dsl,替换自己设备的ACPI路径

屏蔽笔记本电脑的独显

  • SSDT-dGPU-Off.dsl
    • 编译SSDT-dGPU-Off.dsl,还是以NVIDIAGTX1050地址:\_SB.PCI0.PEG0.PEGP为例
  • SSDT-NoHybGfx.dsl
    • 某些机器,简单的.off调用不会正确地保持卡关闭,就要使用这个SSDT,
      这个SSDT实际上会将独显设置到D3状态,使设备可以支持的最低功耗状态
    • 编译SSDT-NoHybGfx.dsl,还是以NVIDIAGTX1050地址:\_SB.PCI0.PEG0.PEGP为例
      • 找到文中图示字符串,替换成自己显卡地址
      • SSDT-NoHybGfx.dsl中一共6处,替换完点击保存,编译生成aml即可
图片[15]-二:ACPI定制版(SSDT)教程-黑果老周

屏蔽不支持的硬盘

图片[14]-二:ACPI定制版(SSDT)教程-黑果老周

上图为例固态转换地址为(结尾#PCI(0000)需要忽略):\_SB.PCI0.GPP4

Xiasl打开SSDT-NVMEpan-Off.dsl图中3处设备地址换成自己的

编辑>保存>编译生成aml

图片[17]-二:ACPI定制版(SSDT)教程-黑果老周

GPU-ID伪造

伪造显卡ID思路:获取设备显卡ACPI路径,选择与你型号相近并支持MACOS系统的显卡PCI ID
                             查询支持型号的的显卡PCI ID
                             通过SSDT 替换自己设备的ACPI路径,替换伪造型号显卡PCI ID

主要适用于那些由于其名称而不受原生支持的GPU,最常见的是:

  • R9 290/390
  • R9 280/380
  • R7 270/370
  • R9 260/360
  • R7 250
  • R7 240

这些GPU需要被“欺骗”或伪造成一个与它们紧密匹配的模型,通常这将是卡的“X”变体

因此,要欺骗GPU,我们需要做几件事

要找到合适的PCI ID,我们将使用PCI ID存储库,其中包含所有AMD GPU的完整数据库。在本例中,我们将为R9 390创建一个欺骗SSDT,与该GPU最接近的匹配是390 X

图片[18]-二:ACPI定制版(SSDT)教程-黑果老周
  1. 通过ID查询 查询到390 X ID 为 67b0
  2. 查找自己显卡的 ACPI路径这里路径假设为:\_SB.PCI0.PEG0.PEGP
  3. 用Xiasl打开SSDT-GPU-SPOOF.dsl,并编译

伪造ID需要转换67b0:2个字符为一组,倒序转换:0xB0, 0x67,

RX6950,XT6650XT仿冒

点击查询GPU PCI ID 、XT6650XT选择仿冒对象RX6600、RX6950选择仿冒对象RX6900

图片[19]-二:ACPI定制版(SSDT)教程-黑果老周

6600伪造ID需要转换73ff:2个字符为一组,倒序转换:0xFF, 0x73,

6900伪造ID需要转换73ff:2个字符为一组,倒序转换:0xBF, 0x73,

图片[20]-二:ACPI定制版(SSDT)教程-黑果老周

以上图RX6950XT为例转换ACPI地址为:SB.PC00.PEG1.PEGP.PBR0.GFX1

编译:SSDT-6950XT-73A5-GPU-SPOOF.dslSSDT-6650XT-73EF-GPU-SPOOF.dsl(这俩只是名字不同方便参考)

或者编译:SSDT-GPU-SPOOF.dsl 与上面略有不同,用哪个都行

图片[21]-二:ACPI定制版(SSDT)教程-黑果老周
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 共21条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片