Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 980|回复: 12

[交流] 调用_OFF位置不同 屏蔽Optimus技术的英伟达显卡后温度也不同 [复制链接]

Rank: 5Rank: 5Rank: 5

UID
4567678
帖子
434
PB币
646
贡献
0
技术
150
活跃
364
发表于 2015-7-22 10:03:13 |显示全部楼层
我的机器现在两套DSDT和SSDT 都能屏蔽掉独显 但是不同的方法 也导致了 效果不同




第一种方法




1在SSDT中搜索这个 然后在对的位置调用_OFF 修改后如下(已经改名)
                                                                                                                                                                                                Method (_INI, 0, NotSerialized) // _INI: Initialize
                                                {
Store (Zero, \_SB.PCI0.RP05.PEGP._ADR)//added to turn nvidia/radeon offExternal(\_SB.PCI0.RP05.PEGP._OFF, MethodObj)_OFF()

                                                }


[size=14.6666669845581px]2删掉OFF内的访问EC
[size=14.6666669845581px]


                                                                                                                                                \_SB.PCI0.LPCB.EC0.SPIN (0x96, Zero)
[size=14.6666669845581px]

[size=14.6666669845581px]3然后修改DSDT
                                                                                                                                                                                                Method (_REG, 2, NotSerialized) // _REG: Region Availability
                                       
                               
                       
               
                                                                                                                                                                {
If (LEqual (Arg0, 0x03)){

                                                Store (Arg1, ECFL)}
                                                //added to turn nvidia/radeon off
If (LAnd(LEqual(Arg0,3),LEqual(Arg1,1))){

                                                \_SB.PCI0.LPCB.EC0.SPIN (0x96, Zero)}
                                                                                       
                               
                       
               
}
[size=14.6666669845581px]

[size=14.6666669845581px]4删掉了 可能会卡开机的while循环
[size=14.6666669845581px]

[size=14.6666669845581px]这种方法 屏蔽后 温度下降的不明显 感觉 最多下降5度 而且 关机断电慢 但是rehabman给出的方法
[size=14.6666669845581px]

第二种方法
[size=14.6666669845581px]

[size=14.6666669845581px]不需要在SSDT的_INI中调用_OFF 只需要在dsdt中_INI 和_WAK添加PINI


Method (_INI, 0, NotSerialized)
        {
            PINI ()
            Store (0x07DC, OSYS)
            If (CondRefOf (\_OSI, Local0))





Method (_WAK, 1, Serialized)
    {
       PINI ()
        WAK (Arg0)
        ADBG ("_WAK")
        If (And (ICNF, 0x10))
        {
            If (And (\_SB.PCI



PINI如下  
   Method (PINI, 0, NotSerialized)
    {
        \_SB.PCI0.PEG0.PEGP._PS3 ()
    }




不需要删掉EC访问 和while
[size=14.6666669845581px]

[size=14.6666669845581px]这种方法 屏蔽后 温度下降明显 电脑摸上去 也没什么温度 至少下降了10度 但是有些电脑提取的DSDT没有办法 这么做
[size=14.6666669845581px]

[size=14.6666669845581px]

[size=14.6666669845581px]

[size=14.6666669845581px]各位大大们 怎么看 这个问题 大家又是通过什么方法屏蔽掉的独显呢?
                                       
                               
                       
               
                                       
                               
                       
               

Rank: 5Rank: 5Rank: 5

UID
3604347
帖子
756
PB币
624
贡献
0
技术
1
活跃
954
发表于 2015-7-22 19:03:25 来自手机 |显示全部楼层
屏蔽独显dsdt,不合并ssdt怎么做

小仙

Rank: 5Rank: 5Rank: 5

UID
1119518
帖子
812
PB币
6330
贡献
0
技术
24
活跃
1661
发表于 2015-7-22 19:22:59 |显示全部楼层
是不是图挂了?

Rank: 2Rank: 2

UID
1939996
帖子
108
PB币
36
贡献
0
技术
1
活跃
104
发表于 2015-7-22 19:50:47 |显示全部楼层
同楼上,图是不是挂了,只有size=xxx像素。
我还在折腾显卡驱动,屏蔽独显这个糊涂乱搞试了一遍,没行。

Rank: 5Rank: 5Rank: 5

UID
4567678
帖子
434
PB币
646
贡献
0
技术
150
活跃
364
发表于 2015-7-22 21:10:59 |显示全部楼层
Loueos 发表于 2015-7-22 19:03
屏蔽独显dsdt,不合并ssdt怎么做

不需要合并 调用外部命令External

玩的就是折腾,玩的就是技术,折腾折腾更健康

Rank: 5Rank: 5Rank: 5

UID
2514018
帖子
837
PB币
1149
贡献
0
技术
27
活跃
925
发表于 2015-7-22 21:18:04 |显示全部楼层
值得研究,等待好消息

Rank: 5Rank: 5Rank: 5

UID
3604347
帖子
756
PB币
624
贡献
0
技术
1
活跃
954
发表于 2015-7-22 22:07:16 来自手机 |显示全部楼层
金手 发表于 2015-7-22 21:10
不需要合并 调用外部命令External

成功了,原来按照acpi视频教程屏蔽总觉的不好。现在ok

Rank: 5Rank: 5Rank: 5

UID
1014064
帖子
637
PB币
477
贡献
0
技术
27
活跃
645
发表于 2015-7-22 22:14:55 |显示全部楼层
楼主排版排好一些,这样看着很乱

Rank: 5Rank: 5Rank: 5

UID
4567678
帖子
434
PB币
646
贡献
0
技术
150
活跃
364
发表于 2015-7-22 23:10:27 |显示全部楼层
Loueos 发表于 2015-7-22 22:07
成功了,原来按照acpi视频教程屏蔽总觉的不好。现在ok

用的是上面的 还是下面的

Rank: 2Rank: 2

UID
2607945
帖子
164
PB币
0
贡献
0
技术
1
活跃
119
发表于 2015-7-22 23:19:47 |显示全部楼层
吓我一跳,还以为可以双显卡切换了...

Rank: 5Rank: 5Rank: 5

UID
3604347
帖子
756
PB币
624
贡献
0
技术
1
活跃
954
发表于 2015-7-22 23:58:56 来自手机 |显示全部楼层
本帖最后由 Loueos 于 2015-7-23 00:01 编辑
金手 发表于 2015-7-22 23:10
用的是上面的 还是下面的


只添加dsdt如下
需要添加的代码:
// 添加到 Method (_WAK) 和 Scope (_SB.PCI0) 下面的 Method (_INI)
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._OFF))
        {
            \_SB_.PCI0.PEG0.PEGP._OFF()
        }
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._PS3))
        {
            \_SB_.PCI0.PEG0.PEGP._PS3()
        }


// 添加到 Method (_PTS)
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._ON))
        {
            \_SB_.PCI0.PEG0.PEGP._ON()
        }
        If (CondRefOf(\_SB_.PCI0.PEG0.PEGP._PS0))
        {
            \_SB_.PCI0.PEG0.PEGP._PS0()
        }

注意:
\_SB_.PCI0.PEG0.PEGP ,这个作用域,不同的电脑不一样,大部分电脑是这样的,有的电脑的,PEG0 可能变成 RP05 等名字,需要自己先找找。
_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就是与屏蔽独显有关的。

Rank: 5Rank: 5Rank: 5

UID
4567678
帖子
434
PB币
646
贡献
0
技术
150
活跃
364
发表于 2015-7-23 12:54:30 |显示全部楼层
Loueos 发表于 2015-7-22 23:58
只添加dsdt如下
需要添加的代码:
// 添加到 Method (_WAK) 和 Scope (_SB.PCI0) 下面的 Method (_IN ...

又是一种方法、、、

Rank: 5Rank: 5Rank: 5

UID
4567678
帖子
434
PB币
646
贡献
0
技术
150
活跃
364
发表于 2015-7-23 12:55:07 |显示全部楼层
Loueos 发表于 2015-7-22 23:58
只添加dsdt如下
需要添加的代码:
// 添加到 Method (_WAK) 和 Scope (_SB.PCI0) 下面的 Method (_IN ...

还双保险。。。
回顶部
Copyright (C) 2005-2020 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件