黑苹果-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

相关文章

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板