屏蔽NVIDIA独显的好方法
本帖最后由 applejunle 于 2016-4-24 01:10 编辑问题描述:本人电脑神舟K580S-i7 D0,换了高分屏,加装SSD,重新安装了Yosemite 10.10.5系统。在使用之前的DSDT以及SSDT文件时,发现在关于本机--系统报告--图形卡/显示器里面,分别有显示器与Intel HD Graphics 4000两个选项,显然是屏蔽独显不够彻底,决定重新做一下屏蔽独显。
解决步骤:具体的DSDT与SSDT文件的提取与反编译过程参考daxuexinsheng的。接下来我们需要在DSDT中找到Scope (_SB.PCI0)下的Method (_INI)与Method (_WAK) 两个方法。(_INI为开机启动时调用的方法,_WAK为电脑睡眠时调用的方法),如图所示:
Scope (_SB.PCI0)下的_INI方法
_WAK方法
在这两个方法里面分别调用屏蔽独显的方法就可以了。独显的开闭方法一般对应SSDT中的*ON与*OF,在我的SSDT中对应着_ON与_OFF方法。如图所示:
但是经过查看帖子发现,直接调用_OFF方法来屏蔽独显有一定的副作用。在lisai9093的[解决Optimus和CPU Turbo变频冲突]帖子中,提供了一种高级的解决方式,通过_PS3来调用_OFF方法,同时将_OFF方法中的While循环代码删掉,如下所示:
_OFF中需要删除的代码
分别在_WAK中与_SB.PCI0下_INI调用代码:
If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._PS3))
{
\_SB.PCI0.PEG0.PEGP._DSM (Buffer (0x10)
{
/* 0000 */ 0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
/* 0008 */ 0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
}, 0x0100, 0x1A, Buffer (0x04)
{
0x01, 0x00, 0x00, 0x03
})
\_SB_.PCI0.PEG0.PEGP._PS3()
}如图所示:
(_WAK)
(_INI)
经过测试,开机的时候风扇会旋转,但是经过一次睡眠唤醒之后,风扇就不再旋转。感觉这是目前比较好的处理方式,当然也可以试试1051550682帖子[神舟K580S I7 D0屏蔽独显后风扇狂转]中提到的方法
附上修改后的DSDT与SSDT文件
参考链接:
https://bbs.pcbeta.com/viewthread-1211619-1-1.html
https://bbs.pcbeta.com/viewthread-1450829-1-1.html
https://bbs.pcbeta.com/viewthread-1519779-1-1.html
重要补充:(源自daxuexinsheng的[教程][授权翻译]使用补丁修改DSDT/SSDT帖子)
注意:
1. \_SB_.PCI0.PEG0.PEGP ,这个作用域,不同的电脑不一样,大部分电脑是这样的,有的电脑的,PEG0 可能变成 RP05 等名字,需要自己先找找。
2. _OFF、_PS3、_ON、_PS0,这些函数的名字,不同的电脑也不一样,这几个是最常见的名字。
查找步骤:
1、一个SSDT:找定义了显卡的SSDT。这个SSDT的特点是,在MaciASL的左边栏的结构中,只有一个”\_SB.PCI0“,并且,它的下面有1个Device (GFX0)。那么,这个SSDT就是定义了显卡的。
2、另一个SSDT:找显卡包含显卡切换的SSDT。在Windows下提取的所有SSDT中,其中一个,有许多“\_SB_.PCI0.PEG0.PEGP”或者“\_SB_.PCI0.RP05.PEGP”这样的定义,在这个SSDT中,先搜索有没有"_PS3",如果有,那么再搜索有没有"_OFF",一般,有这两个了,"_ON"、"_PS0"也有了。这是一般的情况。
少数情况,只有"_PS3"和"_PS0",或者有"_PS3"和"_PS0",但没有"_OFF"和"_ON",相应的,可能是有 "SGOF"和"SGON" 或者 "OPOF"和"OPON" 。那么这两个就是替代者。
自己根据自己的文件判断。
3、可能有的SSDT:对于这个SSDT,有的电脑有,有的电脑没有。主要特点是,搜索,含有GFX0或者PEGP。或者,在MaciASL的左边栏也能直接看出来。与显卡有关的SSDT还是比较容易看出来的,其它的SSDT里,一般都是有CPU字样的。
这3个SSDT就是与屏蔽独显有关的。
学习了 谢谢分享 自己顶一下,屏蔽独显后风扇狂转的可以试试这个方法。 Thank you ! 谢谢楼主分享 本帖最后由 123456是线段 于 2016-4-23 21:32 编辑
正好,我也想看屏蔽独显代码的效果哦.而且我也可以练习屏蔽独显的DSDT哦.
绝对的神帖 能帮到好多人。 好帖
。。少见的屏蔽独显的详细帖 唉,同是神舟K580,开机风扇狂转,必须睡眠一次,真恶心。找了两个月没好的解决方法。。。 lilovemo520 发表于 2016-4-23 23:09 https://www.pcbeta.com/static/image/common/back.gif
唉,同是神舟K580,开机风扇狂转,必须睡眠一次,真恶心。找了两个月没好的解决方法。。。
试试我的方法,电脑好像正常了。 lilovemo520 发表于 2016-4-23 23:09 https://www.pcbeta.com/static/image/common/back.gif
唉,同是神舟K580,开机风扇狂转,必须睡眠一次,真恶心。找了两个月没好的解决方法。。。
直接用_OFF在SSDT屏蔽,屏蔽之前先用ssdt cleanup把这个SSDT中的所有多余方法清理
其它DSDT,SSDT的DSM不需要动。
然后回到BIOS直接重新保存下BIOS设置。
你试试看我说的? 很有技术含量谢谢楼主分享! azb1262006 发表于 2016-4-23 23:36 https://www.pcbeta.com/static/image/common/back.gif
直接用_OFF在SSDT屏蔽,屏蔽之前先用ssdt cleanup把这个SSDT中的所有多余方法清理
其它DSDT,SSDT的DS ...
可以, 谢谢,不过ssdt cleanup没听说过啊,哪里的功能{:5_597:} azb1262006 发表于 2016-4-23 23:36 https://www.pcbeta.com/static/image/common/back.gif
直接用_OFF在SSDT屏蔽,屏蔽之前先用ssdt cleanup把这个SSDT中的所有多余方法清理
其它DSDT,SSDT的DS ...
我重新在WIN下提取DSDT和SSDT,然后一顿操作,现在好了{:5_278:}
谢谢楼主分享 远景因你们而精彩 lilovemo520 发表于 2016-4-24 11:56 https://www.pcbeta.com/static/image/common/back.gif
我重新在WIN下提取DSDT和SSDT,然后一顿操作,现在好了
推荐在Linux系统上面提取。 applejunle 发表于 2016-4-24 12:36 https://www.pcbeta.com/static/image/common/back.gif
推荐在Linux系统上面提取。
之前在LINUX上提取的,怎么搞都有问题。。。。 学习一下,收藏了。多谢分享!