黑苹果-ssdt屏蔽独显的一次记录

2023-10-18 01:30

本文主要是介绍黑苹果-ssdt屏蔽独显的一次记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先说我电脑的基本情况

在这里插入图片描述
众所周知,我的2060独显是没救了,不仅如此,还要考虑屏蔽它的情况(很多人说装完笔记本很烫,建议可以往独显屏蔽不完全这方面考虑一下)。最开始的时候,我花了10块钱在某鱼上,请求帮忙屏蔽独显,他给我加了个 -wegnoegpu的参数。我不知道其他电脑情况如何,但是我的电脑是没有效果的,风扇该转还是转(异常情况,开机什么都没干转速就很高(也不是在搞元数据索引))。所以最终他也表示无能为力,因此我只能从ssdt下手了

寻找ssdt

我在获取了我的acpi表后,一个一个找,依然没有找到网上所说的在独显路径(通过win的设备管理器里看)下的_off方法,但是我找到了nvdtable,这个记录了很多我独显路径的定义,方法。但是依然没有_off方法,就很失望。但是发现有_ps3(我的理解里是电脑进入s3会执行的)方法

成功屏蔽了独显

找到了貌似相关的方法后,我就赶紧新建ssdt,模板套进去,新建一个_ini(代表了初始化)方法,方法体只调用ps3(),发现这么糙的操作居然到mac下真的风扇就不怎么转了,都是我真的高度运行软件的时候才会发烫。然后我就没去管了

关于睡眠的问题

因为我很少去睡眠,所以基本不考虑睡眠会带来什么问题。但是偶然一次睡眠尝试我发现在睡完后温度就高起来了,当时第一反应就是独显可能又开启了。因为我只在_ini在调用了ps3,所以我不了解是否是睡眠里的方法(_wak)调用了类似ps0的方法
为此,需要重写_wak。感谢互联网,发现通过补丁方式将_wak重命名成_zwak,然后自己写_wak,调用_zwak的内容+自己想写的内容(其实就是热补丁,但是我却啥也不知道)。最终就是_ini和_wak分别调用一次ps3,_pts调用ps0(进入睡眠时需要开启独显,但是不会导致睡眠高温)

最终即使睡眠独显依然是屏蔽状态。

具体代码

设备名称用于其他方法调用这个ssdt时使用。

/*ssdt-NDGP
*/
DefinitionBlock ("", "SSDT", 2, "OCLT", "NDGP", 0x00000000)
{External (_SB_.PCI0.PEG0.PEGP._DSM, MethodObj)    // 4 ArgumentsExternal (_SB_.PCI0.PEG0.PEGP._PS0, MethodObj)    // 0 ArgumentsExternal (_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)    // 0 ArgumentsDevice (DGPU){Name (_HID, "DGPU1000")  // _HID: Hardware IDMethod (_STA, 0, NotSerialized)  // _STA: Status{If (_OSI ("Darwin")){Return (0x0F)}Else{Return (Zero)}}Method (_INI, 0, NotSerialized)  // _INI: Initialize{_OFF ()}Method (_ON, 0, NotSerialized)  // _ON_: Power On{If (CondRefOf (\_SB.PCI0.PEG0.PEGP._PS0)){\_SB.PCI0.PEG0.PEGP._PS0 ()}}Method (_OFF, 0, NotSerialized)  // _OFF: Power Off{If (_OSI ("Darwin")){If ((CondRefOf (\_SB.PCI0.PEG0.PEGP._DSM) && CondRefOf (\_SB.PCI0.PEG0.PEGP._PS3))){\_SB.PCI0.PEG0.PEGP._DSM (ToUUID ("a486d8f8-0bda-471b-a72b-6042a6b5bee0") /* Unknown UUID */, 0x0100, 0x1A, Buffer (0x04){0x01, 0x00, 0x00, 0x03                           // ....})\_SB.PCI0.PEG0.PEGP._PS3 ()}}Else{}}}
}/*ssdt-ptswak   
*/DefinitionBlock ("", "SSDT", 2, "OCLT", "PTSWAK", 0x00000000)
{External (DGPU._OFF, MethodObj)    // 0 ArgumentsExternal (DGPU._ON_, MethodObj)    // 0 ArgumentsExternal (ZPTS, MethodObj)    // 1 ArgumentsExternal (ZWAK, MethodObj)    // 1 ArgumentsMethod (_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep{If (_OSI ("Darwin")){If (CondRefOf (\DGPU._ON)){\DGPU._ON ()}}ZPTS (Arg0)}Method (_WAK, 1, NotSerialized)  // _WAK: Wake{If (_OSI ("Darwin")){If (CondRefOf (\DGPU._OFF)){\DGPU._OFF ()}}Local0 = ZWAK (Arg0)Return (Local0)}
}

感谢

  • daliansky: oc-liitle

这篇关于黑苹果-ssdt屏蔽独显的一次记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/229279

相关文章

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

学习记录:js算法(二十八):删除排序链表中的重复元素、删除排序链表中的重复元素II

文章目录 删除排序链表中的重复元素我的思路解法一:循环解法二:递归 网上思路 删除排序链表中的重复元素 II我的思路网上思路 总结 删除排序链表中的重复元素 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 图一 图二 示例 1:(图一)输入:head = [1,1,2]输出:[1,2]示例 2:(图

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

(function() {})();只执行一次

测试例子: var xx = (function() {     (function() { alert(9) })(); alert(10)     return "yyyy";  })(); 调用: alert(xx); 在调用的时候,你会发现只弹出"yyyy"信息,并不见弹出"10"的信息!这也就是说,这个匿名函数只在立即调用的时候执行一次,这时它已经赋予了给xx变量,也就是只是

SSM项目使用AOP技术进行日志记录

本步骤只记录完成切面所需的必要代码 本人开发中遇到的问题: 切面一直切不进去,最后发现需要在springMVC的核心配置文件中中开启注解驱动才可以,只在spring的核心配置文件中开启是不会在web项目中生效的。 之后按照下面的代码进行配置,然后前端在访问controller层中的路径时即可观察到日志已经被正常记录到数据库,代码中有部分注释,看不懂的可以参照注释。接下来进入正题 1、导入m

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位 一、背景二、定位问题三、解决方法 一、背景 flume系列之:定位flume没有关闭某个时间点生成的tmp文件的原因,并制定解决方案在博主上面这篇文章的基础上,在机器内存、cpu资源、flume agent资源都足够的情况下,flume agent又出现了tmp文件无法关闭的情况 二、

Linux常用工具与命令日常记录(长期更新)

Linux常用工具与命令日常记录(长期更新) 目录 1.本地复制到远程2.Linux压缩拆包与解压3.生成随机密码4.ubuntu默认Python版本设置5.计算当前文件夹中文件数量6.windows中编写shell脚本,在Linux运行出错7.history 历史命令显示时间用户8.Ubuntu18.04设置源、网卡9.Ubuntu18.04设置网卡10.Ubuntu:自定义开

Excel和Word日常使用记录:

Excel使用总结 表格颜色填充: 合并单元格: 选中你要合并的单元格区域。按下快捷键 Alt + H,然后松开这些键。再按下 M,接着按 C。这个组合键执行的操作是:Alt + H:打开“主页”选项卡。M:选择“合并单元格”选项。C:执行“合并并居中”操作。 插入行: 在Excel中,插入一行的快捷键是:Windows:选择整行(可以点击行号)。按下 Ctrl + Sh

jmeter之仅一次控制器

仅一次控制器作用: 不管线程组设置多少次循环,它下面的组件都只会执行一次 Tips:很多情况下需要登录才能访问其他接口,比如:商品列表、添加商品到购物车、购物车列表等,在多场景下,登录只需要1次,我们期望的是重复执行登陆后面的接口来做压测,这就和事务相关,例如 事务1: 登录—>添加购物车 事务2: 登录—>购物车列表 事务3: 登录—>商品列表—>添加购物车 … 一、仅一次控制器案例 在