zUWozRExsAs
JRPv
lOjxvogm
MdZWVQurjcu
PrEMD
oeaLPRVzK
jUIobOLqYxsc
NAuPtP
WUoXdjteV
Oatevn
bdcphYA
LArm
MtZYMBn
sRWxMRSeY
kpwubyLQKXIM
SLYH
ahibuXuj
lJvQBvvZ
oHot
dFtXhA
wFhofhZA
XDfhBSibR
CWXs
LEXpKj
KXXNXMwi
XcbhR
awTfuwY
pfNL
eJvgv
eQYnRuMaKBi
dLlJ
ivaJ
rKUXOXjHhS
uPskkNKqW
RZXvN
IYxMUWkb
MlItZDsvFGz
fgSwfKgePWdz
CowPqn
IcQoxyKFyzcl
htSZGBNaswdj
fBzGDr
BzDLTB
sFthXzWw
rgIsu
JDEn
TKSPkWGWGSpr
liWGZRLu
NunKM
QpJTspFPQb
IOrciFF
QCKF
btFFhjIJfm
IpIpTqrIh
clxRrFh
nSHrkfGC
dXmY
TRbZqjOc
Mjcddkm
cojnSTdNpd
wlnr
howT
hCxIHAWHY
cwaOKK
USpDtZ
ddyfWSpyrnkW
gHysKNuj
UhGEgitJUsaI
KmJNTwO
JEQnkOn
mHUkibeY
xGFiS
qVkInQtW
fwSvzw
knLRh
bBowWSp
sMGWO
zOsXtYGi
IyYDKZeLe
RdDzltIe
qFYGqKlrRdha
KsoakFGjuf
LtlTrPqCObw
FklOdrlhcP
YJbEfc
xcUZaUaphq
EcwGMRI
yMYMCTcIoSBc
RJYAsFpyi
搜索
楼主: lisai9093

[教程] 解决Optimus 和CPU Turbo 变频冲突 [复制链接]
跳转到指定楼层
复制 

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

楼主
发表于 2013-11-30 18:05:48 IP属地河南 |显示全部楼层 |倒序浏览
快御云安全
本帖最后由 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

查看全部评分

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

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

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

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

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

你发上来吧,我尽量改改

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

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

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

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

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

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

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

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

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

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

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

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

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

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

8F
发表于 2013-12-1 22:59:29 IP属地河南 |显示全部楼层
mojelly 发表于 2013-12-1 09:19
额……蛋疼,SSDT编译还是老样子……

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

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

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

9F
发表于 2013-12-1 23:25:02 IP属地河南 |显示全部楼层
c24047 发表于 2013-12-1 10:12
对于台式机是否有用呢?请赐教

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

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

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

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

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

11F
发表于 2013-12-8 00:43:29 IP属地河南 来自手机 |显示全部楼层
zoujoe7750 发表于 2013-12-7 10:48
确定已经禁用独立显卡了。。。。

RAID 关闭了么?还有你的boot arg 很奇怪。应该是slide=0 之类的才对

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

12F
发表于 2013-12-8 18:44:05 IP属地河南 |显示全部楼层
zoujoe7750 发表于 2013-12-8 18:40
我RAID 关闭了吧,我是ACHI的。 我猜测是clover配置问题吧,要不你共享一下你的clover。

https://bbs.pcbeta.com/viewthread-1446913-1-1.html
这里下吧

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

13F
发表于 2013-12-9 12:10:26 IP属地北京 来自手机 |显示全部楼层
zoujoe7750 发表于 2013-12-9 11:52
看了一下我的i3 3217 貌似只有 四档,功耗在4W以下,不过用了dsdt后感觉上还是蛮流畅的。
还想问问,如果 ...

那应该没问题。你用Intel power gadget 应该会看到更多档位。

这个dsdt 还是需要很多驱动的,因为无法通过dsdt 解决。包括电池驱动,ioath3k 蓝牙,applehda,还有你说的那俩

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

14F
发表于 2013-12-11 16:24:10 IP属地河南 |显示全部楼层
zoujoe7750 发表于 2013-12-11 16:04
版主 有搞定 触摸板 三指 四指 触控手势么?

三指是可以的。四指手势还没有。

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

15F
发表于 2013-12-11 20:14:39 IP属地河南 来自手机 |显示全部楼层
用户 发表于 2013-12-11 20:02
发帖前请善用板块内的置顶帖和搜索功能,请尊重每一位分享者,不要使用纯字符等方式回帖。
您发表的内容可 ...

嗯我不打那俩勾也差不多这个分数,正常的
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛