黑苹果热补丁hotpatch来禁用笔记本独显

写在前面

最近我根据 RehabMan 的 hotpatch 添加了一些路径做了一个屏蔽独显得 hotpatch 来屏蔽独显解决一些升级 10.13 后因为 nv_disable 参数失效而卡在 Window Server Service only ran for 0 seconds 的错误,发现有些成功,有些失败。于是把我琢磨到的一种方法分享给大家!希望该帖子能帮助到各位!

感谢:

屏蔽独显方法不一:

  • 第一种:直接在 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.git
  • 我们只需要 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 中,它也不会加载。
  • 此方法使用 SSDT 中的_DSM方法注入属性。如果本机 ACPI 在该路径上具有现有的_DSM方法,则需要重命名它,否则本机_DSM与 sSDT 正在添加_DSM冲突。
  • 你需要检查_OFF方法的代码,看看有没有访问到EC, 有的情况的代码,不会直接访问EC,而是调用EC里定义的方法(属于间接访问))。所以,对于有的电脑的情况,你需要深入检查代码。而我们的例子,是直接给出了EC0这样的字眼。
  • 访问EC的代码,将会造成一些问题,它(们)将在_INI调用_OFF时,阻止代码的完全执行
  • EC问题, 参考这篇文章https://blog.csdn.net/qq_41601836/article/details/106714438

 


参考:

https://athlonreg.wordpress.com/2017/10/04/hotpatch-%E5%B1%8F%E8%94%BD%E7%8B%AC%E6%98%BE/

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值