查看: 12229|回复: 35

[教程] 解决Optimus 和CPU Turbo 变频冲突

[复制链接]
lisai9093 发表于 2013-11-30 18:05 | 显示全部楼层 |阅读模式
快御云安全
本帖最后由 lisai9093 于 2013-12-22 11:23 编辑

问题描述:BIOS 关闭Optimus 后引起CPU Turbo 变频不正常,尤其是睡眠后问题概率大。SSDT 调用_OFF 关闭的话会大大延迟开机和唤醒时间,比如开机从20几圈直接飙到100圈+。。。CPU 功率也大大高于Intel 规范的最高17W。变频正常时功率一般在5W-10W 之间,不正常时在17W-20W,甚至更高。

貌似出现这个问题的机器不是很多,而且主要是联想。Google 搜了半天也只发现一个帖子。。。我开始还以为SSDT 的问题,走了不少弯路。。。

解决方法:核心就是搞清为什么会有延迟。贴上SSDT 下_OFF 的代码
  1. Method (_OFF, 0, Serialized)
  2.                 {
  3.                     Store (VGAR, VGAB)
  4.                     Store (One, LNKD)
  5.                     While (LNotEqual (LNKS, Zero))
  6.                     {
  7.                         Sleep (One)
  8.                     }

  9.                     Store (Zero, GO50)
  10.                     Store (Zero, GO54)
  11.                     Store (Zero, ^^^LPCB.EC0.NVPR)
  12.                     Return (Zero)
  13.                 }
复制代码
唯一有可能延迟的就是那个while 循环,sleep 应该只是一个暂停函数。简单说就是等待LNKD 的值从1变成0。根据我的测试,在Optimus 开启的情况下,直接删除循环会导致无法唤醒。所以BIOS 关闭Optimus,同时删除这个while 循环,变成如下:
  1. Method (_OFF, 0, Serialized)
  2.                 {
  3.                     Store (VGAR, VGAB)
  4.                     Store (One, LNKD)
  5.                     Store (Zero, GO50)
  6.                     Store (Zero, GO54)
  7.                     Store (Zero, ^^^LPCB.EC0.NVPR)
  8.                     Return (Zero)
  9.                 }
复制代码
问题到此解决。变频正常,续航正常,甚至跑分都比之前变频正常时还要高30% 左右,功率从最低5W 降到2W 多,算是意外收获了吧。

下面是一些截图,和我修改后的DSDT 供参考: dsdt.aml.zip (18.78 KB, 下载次数: 88)



下面再介绍一种更高级,理论上更好的方法关闭Optimus。
Reference: http://www.insanelymac.com/forum ... us-on-xps-15-l521x/

通过观察DSDT 和SSDT 可以发现,一般关闭Optimus 需要通过_PS3 -> _OFF,即_PS3 method 执行_OFF method 和一些其它善后工作,所以调用_PS3 应该会更安全。已经有人反应直接调用_OFF 会导致变频等问题。更进一步会发现,_PS3 其实是无法调用的,因为_PS3 含有一个条件语句:
  1. Method (_PS3, 0, NotSerialized)
  2.                 {
  3.                     If (LEqual (OMPR, 0x03))
  4.                     {...
复制代码
意思是OMPR 必须为0x03 才能执行下面的代码,可是默认OMPR 是0x02,所以必须手动修改OMPR,或者还有更好的方法?根据上面的链接,作者发现SSDT 里只有_DSM 是可以修改OMPR 值的。也就是说OEM 厂商默认通过_DSM 关闭Optimus。这也是目前发现最安全,最贴近原厂的方法。调用方法如下:
  1. \_SB.PCI0.PEG0.PEGP._DSM (Buffer (0x10)
  2.             {
  3.                 /* 0000 */    0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
  4.                 /* 0008 */    0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
  5.             }, 0x0100, 0x1A, Buffer (0x04)
  6.             {
  7.                 0x01, 0x00, 0x00, 0x03
  8.             })
  9.         \_SB.PCI0.PEG0.PEGP._PS3 ()
复制代码
其中_DSM 需要有4个参数,具体参数是根据SSDT 里的源代码得出,我查过我的,和作者一样。所以不同机器应该可以通用。但是之前所说的_OFF 里的循环依旧必须删除,尚不知有什么更好的方法。以后继续爬文,有解决方法了第一时间发到这个帖子来。

Screen Shot 2013-11-30 at 5.20.58 PM.png Screen Shot 2013-11-30 at 5.23.57 PM.png


评分

6

查看全部评分

neycwby09 发表于 2013-11-30 18:15 来自手机 | 显示全部楼层
前排支持 虽然我不涉及到这个问题 渣硬件路过……
回复

使用道具 举报

lisai9093  楼主| 发表于 2013-11-30 18:25 | 显示全部楼层
neycwby09 发表于 2013-11-30 05:15
前排支持 虽然我不涉及到这个问题 渣硬件路过……

不错啦,起码还是独显。。。
回复

使用道具 举报

mojelly 发表于 2013-11-30 19:29 | 显示全部楼层
版主好给力……有空能帮忙整一整屏蔽独显么……把SSDT中的函数放入DSDT中,出现一大堆错误……
回复

使用道具 举报

365483415 发表于 2013-11-30 19:46 | 显示全部楼层
clover派,我用了SSDT反而开不了机,DSDT也没用,基本都完美了,就是变频不均匀
回复

使用道具 举报

lisai9093  楼主| 发表于 2013-11-30 20:19 | 显示全部楼层
mojelly 发表于 2013-11-30 06:29
版主好给力……有空能帮忙整一整屏蔽独显么……把SSDT中的函数放入DSDT中,出现一大堆错误……

你发上来吧,我尽量改改
回复

使用道具 举报

lisai9093  楼主| 发表于 2013-11-30 20:21 | 显示全部楼层
365483415 发表于 2013-11-30 06:46
clover派,我用了SSDT反而开不了机,DSDT也没用,基本都完美了,就是变频不均匀

Clover 不是会自己生成SSDT 么?一般都不用自己改。我这里说的是DSDT 下添加SSDT 代码。另外变频不均匀是什么?
回复

使用道具 举报

mojelly 发表于 2013-11-30 20:29 | 显示全部楼层
本帖最后由 mojelly 于 2013-11-30 20:34 编辑
lisai9093 发表于 2013-11-30 20:19
你发上来吧,我尽量改改
DSDT+SSDT.zip (23.25 KB, 下载次数: 6)

嘿嘿 谢谢版主啦~ 我所有的驱动和安装日志都准备好啦~就等着SSDT修复和搞定屏蔽独显啦~准备发分享帖啦~可是一直搞不定……
Snip20131130_1.png
回复

使用道具 举报

365483415 发表于 2013-11-30 20:41 | 显示全部楼层
lisai9093 发表于 2013-11-30 20:21
Clover 不是会自己生成SSDT 么?一般都不用自己改。我这里说的是DSDT 下添加SSDT 代码。另外变频不均匀是 ...

我的只有从x12 调到X25 难道只有倍频?你说问我还不知道,只有高档位的,其余那些没有,我没去修改什么,
回复

使用道具 举报

lisai9093  楼主| 发表于 2013-11-30 21:51 | 显示全部楼层
mojelly 发表于 2013-11-30 07:29
嘿嘿 谢谢版主啦~ 我所有的驱动和安装日志都准备好啦~就等着SSDT修复和搞定屏蔽独显啦~准备发分享帖啦~ ...

你试试行不行 DSDT.zip (51.82 KB, 下载次数: 7)
回复

使用道具 举报

lisai9093  楼主| 发表于 2013-11-30 21:59 | 显示全部楼层
365483415 发表于 2013-11-30 07:41
我的只有从x12 调到X25 难道只有倍频?你说问我还不知道,只有高档位的,其余那些没有,我没去修改什么,

dropssdt 和generate ssdt 调调看吧。变频论坛里已经很多帖子了,看看哪种适合你吧
回复

使用道具 举报

mojelly 发表于 2013-12-1 21:28 | 显示全部楼层
lisai9093 发表于 2013-11-30 21:51
你试试行不行

谢谢版主抽空修改~ 昨天下载了 今天测试 貌似开启OP 还是能在系统信息里看到NV的显示器哦……是什么原因呢……SSDT中有两个有错误 不知能否请版主告知一下修改方法……每次修改一半的时候能够正确保存,但是完全修复错误后,存出来的文件,又还原成没修改之前的状态了……蛋疼屎了…… Snip20131201_1.png
Snip20131201_1.png
回复

使用道具 举报

lisai9093  楼主| 发表于 2013-12-1 21:43 | 显示全部楼层
mojelly 发表于 2013-12-1 08:28
谢谢版主抽空修改~ 昨天下载了 今天测试 貌似开启OP 还是能在系统信息里看到NV的显示器哦……是什么原因呢 ...

你睡眠后看看独显还在不?我机器上也是这么修改的就可以,不清楚为什么你的不行。。。

ssdt 问题你搜搜帖子,很多人都发过了。。。比如:https://bbs.pcbeta.com/viewthread-1218265-1-1.html
回复

使用道具 举报

mojelly 发表于 2013-12-1 21:57 | 显示全部楼层
lisai9093 发表于 2013-12-1 21:43
你睡眠后看看独显还在不?我机器上也是这么修改的就可以,不清楚为什么你的不行。。。

ssdt 问题你搜搜 ...

这个帖子看过啦~修复完貌似提示编译不成功……不让保存什么的……等下再试试~ 我睡眠看看 独显还在么,等下报告情况~
回复

使用道具 举报

mojelly 发表于 2013-12-1 22:19 | 显示全部楼层
lisai9093 发表于 2013-12-1 21:43
你睡眠后看看独显还在不?我机器上也是这么修改的就可以,不清楚为什么你的不行。。。

ssdt 问题你搜搜 ...

额……蛋疼,SSDT编译还是老样子……
Snip20131201_2.png



睡眠唤醒后 独立显卡信息依旧存在……有解吗? 不然只能暂时关闭OP了,温度飙升……


回复

使用道具 举报

lisai9093  楼主| 发表于 2013-12-1 22:59 | 显示全部楼层
mojelly 发表于 2013-12-1 09:19
额……蛋疼,SSDT编译还是老样子……

你换个软件试试。我用dsdtse 编译没有问题。

你的Optimus 我也不清楚为什么。
回复

使用道具 举报

c24047 发表于 2013-12-1 23:12 | 显示全部楼层
对于台式机是否有用呢?请赐教
回复

使用道具 举报

lisai9093  楼主| 发表于 2013-12-1 23:25 | 显示全部楼层
c24047 发表于 2013-12-1 10:12
对于台式机是否有用呢?请赐教

理论上对于Optimus 都是通用的,如果你的问题和我的问题一样的话。但个人感觉这个问题笔记本的几率应该大一些,因为和主板有关。
回复

使用道具 举报

头像被屏蔽
zoujoe7750 发表于 2013-12-7 15:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

lisai9093  楼主| 发表于 2013-12-7 17:22 来自手机 | 显示全部楼层
zoujoe7750 发表于 2013-12-7 02:17
话说我的U410 I3 3317可以直接使用不? UEFI Clover

应该可以的,记得先吧Optimus 关闭
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋手机版联系我们

Copyright © 2005-2025 PCBeta. All rights reserved.

Powered by Discuz!  CDN加速及安全服务由「快御」提供

请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。

远景在线 ( 苏ICP备17027154号 )|远景论坛 |Win11论坛 |Win10论坛 |Win8论坛 |Win7论坛 |WP论坛 |Office论坛

GMT+8, 2025-1-22 19:03

快速回复 返回顶部 返回列表