简介:SSDT 定制,主要包括两类:
常规类:SSDT,SSDT-EC,SSDT-USBX等
特殊类:屏蔽硬盘,屏蔽显卡,GPU ID伪造等
本篇所有用到的文件点击下载(需要密码验证关注以后,后台私聊索取,文件解压密码:gaomac.com)
常规类SSDT 定制:
定制环境 | Windows10 |
所需工具 | AIDA64 、python-amd64 、SSDTTime |
手动定制所需 | SSDT-RTC0.dsl 、SSDT-RTC0-RANGE.aml |
- 安装python-amd64.exe(如有python环境忽略此条)
清空Results缓存文件夹,打开SSDTTime.bat
,键入 P>回车
,提取本机ACPI
根据所需生成SSDT即可
1.FixHPET | IRQ补丁,主要用于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使用
工具:AIDA64
、Xiasl
(SSDT-aml编译工具)、SSDT-RTC0.dsl
搜索字符串 ADR, 0x001F0000
记录所需数据 下图示例记录:LPC0
搜索字符串
记录所需数据 下图示例记录:PNP0A08
(如果出现多个,则使用第一个)PCI0
用Xiasl编译工具打开 ,SSDT-RTC0.dsl
,如下图所示一共2串 SB开头字符串
SB.XXXX.XXXX>SB.后面第一个空改写,搜索字符串
记录数值PNP0A08
SB.XXXX.XXXX>SB.后面第二个空改写,搜索字符串 ADR, 0x001F0000
记录数值、
改写完成 点击保存生成 即可,生成文件和编辑的文件SSDT-RTC0.dsl
同目录
适用于X99.X299及更高架构
工具:AIDA64
、Xiasl
(SSDT-aml编译工具)、SSDT-RTC0-RANGE.aml
- 提取机器DSDT,使用
Xiasl
打开提取的DSDT
2. 搜索字符串 PNP0B00
发生的 记录所需数据 下图示例记录:RTC
从上图中,我们看到我们有2个RTC内存库:
组1:从0x70开始,长度为0x2、组2:从0x74开始,长度为0x4
OEM忘记了垫第0x72和0x73节。macOS可能会在启动时停止(在Big Sur中很明显)
3. 搜索字符串 ADR, 0x001F0000
记录所需数据 下图示例记录:LPC0
4. 搜索字符串 PNP0A08(如果出现多个,则使用第一个)
记录所需数据 下图示例记录:PCI0
三个搜索得到:(假设只是为了更为方便的理解)
PNP0B00>RTC
>将得到的值RTC
假设为:A
ADR, 0x001F0000>LPC0
>将得到的值LPC0
假设为:B
PNP0A08>PCI0
>将得到的值PCI0
假设为:C
- 现在我们需要设置我们的
SSDT-RTC0-RANGE.dsl
路径- 默认情况下,它使用
PC00.LPC0.RTC
作为路径 - 现在替换成我们自己的即:
C.B.A
:PCI0
.LPC0
.RTC
- 默认情况下,它使用
5. 打开SSDT-RTC0-RANGE.dsl
原件编译aml文件,编译后生成的aml与dsl同目录
特殊类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 |
如果屏蔽失败可以尝试使用4个不同的dsl编译,屏蔽硬盘也可以尝试使用屏蔽显卡的dsl
显卡硬盘屏蔽思路
获取设备ACPI路径
,把屏蔽SSDT里的ACPI路径换成自己的
设备ACPI路径查看方法:
右键我的电脑>管理>设备管理器>双击需要屏蔽的设备>详细信息>属性里选择位置路径
/BIOS 设备名称
下面是几个ACPI路径转换例子
以上图为例:左边NVM固态,右边N卡 1050
固态转换地址为(括号里内容):\_SB.PCI0
.RP09.PXSX
NVIDIAGTX1050显卡转换地址为:\_SB.PCI0.PEG0.PEGP
AMD独显地址一般为:\_SB.PCI0.PEGP.DGFX
上图固态转换地址为(结尾#PCI(0000)
需要忽略):\_SB.PCI0.GPP4
屏蔽不支持的显卡
- 屏蔽方法
- BIOS显示设备选择核显输出
- 局限性:无法双系统,WIN使用独显的话还要调BIOS
- BIOS禁用显卡所用的的PCI插槽
- 局限性:无法双系统,WIN使用独显的话还要调BIOS
- SSDT 禁用独显
- 启动参数添加boot-arg:-wegnoegpu
- 参数局限性:仅适用于英特尔CPU
- 仍会消耗电量,台式机这点可以无视,如果你的笔记本插电使用亦可无视
- BIOS显示设备选择核显输出
- SSDT-GPU-DISABLE.dsl
- 主要适用于macOS不支持的GPU,主要是用于Nvidia显卡+AMD核显的情况
- 编译
SSDT-GPU-DISABLE.dsl
,以上图NVIDIAGTX1050地址:\_SB.PCI0.PEG0.PEGP
为例- 用Xiasl打开:
SSDT-GPU-DISABLE.dsl
,替换自己设备的ACPI路径
- 用Xiasl打开:
屏蔽笔记本电脑的独显
- 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即可
- 某些机器,简单的.off调用不会正确地保持卡关闭,就要使用这个SSDT,
屏蔽不支持的硬盘
上图为例固态转换地址为(结尾#PCI(0000)
需要忽略):\_SB.PCI0.GPP4
Xiasl
打开SSDT-NVMEpan-Off.dsl
图中3处设备地址换成自己的
编辑>保存>编译生成aml
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,我们需要做几件事
- 适合GPU的PCI ID
- GPU的ACPI路径
SSDT-GPU-SPOOF.dsl
、SSDT-6950XT-73A5-GPU-SPOOF.dsl
- 点击查询GPU PCI ID
要找到合适的PCI ID,我们将使用PCI ID存储库,其中包含所有AMD GPU的完整数据库。在本例中,我们将为R9 390创建一个欺骗SSDT,与该GPU最接近的匹配是390 X
- 通过ID查询 查询到390 X ID 为 67b0
- 查找自己显卡的 ACPI路径这里路径假设为:
\_SB.PCI0.PEG0.PEGP
- 用Xiasl打开
SSDT-GPU-SPOOF.dsl
,并编译
伪造ID需要转换67b0:2个字符为一组,倒序转换:0xB0, 0x67,
RX6950,XT6650XT仿冒
6600伪造ID需要转换73ff:2个字符为一组,倒序转换:0xFF, 0x73,
6900伪造ID需要转换73ff:2个字符为一组,倒序转换:0xBF, 0x73,
以上图RX6950XT为例转换ACPI地址为:SB.PC00.PEG1.PEGP.PBR0.GFX1
编译:SSDT-6950XT-73A5-GPU-SPOOF.dsl
、SSDT-6650XT-73EF-GPU-SPOOF.dsl
(这俩只是名字不同方便参考)
或者编译:SSDT-GPU-SPOOF.dsl
与上面略有不同,用哪个都行
- 最新
- 最热
只看作者