主要方法有两种

第一种是直接在DSDT SSDT上修改

第二种是制作一个适合自己电脑的hotpatch屏蔽独显

 

流程

提取 ACPI 原始表单
反编译这些文件
搜索一个名为 _OFF 的方法
检查文件的结果以确定 _OFF 的路径
修改 RehabMan 的 hotpatch 加入自己的路径

 

提取 ACPI 原始表单并提取 _OFF 路径

打开电脑进入四叶草引导界面,按下 F4 或者 FN+F4 即可提取原始表单到 /EFI/CLOVER/ACPI/origin ,然后进入 MAC 将 origin 拷贝到桌面删掉除 SSDT DSDT 之外的所有 aml 文件,打开终端:

$ cd ~/Desktop/origin 
$ iasl -da -dl *.aml 
$ rm *.aml 
$ grep -l Method.*_OFF *.dsl

以我修改的一个机器为例,上一条命令得到的结果如下

DSDT.dsl
SSDT-7.dsl
SSDT-8.dsl
SSDT-9.dsl

依次打开这四个表单搜索 _OFF ,找到一个类似于下面这个函数:

图片左下角的路径就是我们最终所需要的

_SB.PCI0.RP05.PEGP

修改 RehabMan 的 hotpatch 添加这个路径

首先去 RehanMan 的 GitHub 下载 hotpatch 包

https://github.com/RehabMan/OS-X-Clover-Laptop-Config

 

我们只需要 SSDT-Disable_DGPU 这个文件,编译成 aml 文件

$ iasl SSDT-Disable_DGPU.dsl

打开编译后得到的 aml 文件

按照这个格式修改为自己的路径

 

保存放到 /EFI/CLOVER/ACPI/patched

一个注意点

如果在 Config.plist 中使用了 SortedOrder (通常 Clover 安装后默认没有设置),需要在其内添加 SSDT-Disable_DGPU.aml 这一项。因为如果指定了 SortedOrder ,则 Clover 只加载其中指定的 SSDT 。如果没有出现在列表中,即使在 ACPI/patched 中,它也不会加载。

完工