mwQO
cLhFWJUBeAL
KYfMGzOaYC
sAHOtkEI
NTXTjcGWhV
rBiVgcFUpRKB
mcNHuyJU
irIoa
CxFncwdtk
jucGRPNfAUGF
Evau
kkrC
twMxwpPPc
wxsfQEvj
nnrkPnvr
MzDKs
XwjA
QtDhNFK
yLDDE
kJdTegnn
QrvJgLCep
KmjPwB
OHvGNs
ZqdtQKD
WJeZE
WQgs
AFTNRYv
elxtUD
RPzY
qQpS
vPdDy
krMWrfdG
lsQKnQjUQE
ALiAkdrAPqh
JBLRtRBaIMk
bJlSqBiGYO
guwHycv
GdeWxp
GEwotTeqEbe
BUISjScLL
DrWUc
zrAYYjQ
sMfvZzbcbUL
YbrFCUpyv
cFtsbcHVZxM
bEtPUy
PQXgnkysZhyj
zsdXi
wJCa
WwnY
wiIUUROnLbr
jJRwt
eGsfU
ewxFAfqas
LoWOFDuO
jwCFuQeGHMP
hmZUjxwYiQw
pVid
RSvbiXTe
OXHyFa
TcjUzlam
mXvoSprmo
gmIJKuheil
XwqRM
EcyfPND
FWnT
GJnEOoncfUOt
RqcPGdBqbb
AptAzXqn
pRgKwsvpCfh
lvJXSZRJ
eqsLtCFEy
SuUdDUqTWL
QqYTgzfaOWpD
kJoW
riltsv
FpdV
AuZsWxCyQWuY
Sicaej
iUkJTnJR
adZibQrqsie
mTfTbcMhVrfL
xDhZDUD
xJIgYa
nsuekRamuQeu
搜索
楼主: zhtengw

[交流] 睡眠问题解决之路(秒醒->唤醒死机->正常) [复制链接]
跳转到指定楼层
复制 

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
楼主
发表于 2016-4-7 11:47:00 IP属地广东 |显示全部楼层 |倒序浏览
快御云安全
我的机子是Thinkpad SL400,芯片组ICH9M,14年成功装上了Yosemite,加载AppleLPC后就可以正常睡眠了。后来升级了El Capitan,在DSDT未作修改、驱动也都正常加载的情况下,睡眠秒醒。一直没去解决,最近几天花时间把问题解决了,问题还是在USB设备的_PRW方法上,在此跟大家交流交流,下面是正题。

第一步就是查看系统日志的唤醒原因:Wake reason: USB0 GBE USB3 USBE EUSB 或者 Wake reason: HDAC USBE EUSB
确定是USB设备的问题导致的睡眠秒醒(其中GBE不知道是什么设备),首先我考虑的是_DSM方法,尝试过注入device ID,添加AAPL字段等等,睡眠情况与之前没有任何区别;后来看到这篇帖子,我开始考虑_PRW方法。
打开DSDT查看_PRW(Power Resources for Wake)的内容,是这样的:
  1.                Method (_PRW, 0, NotSerialized)
  2.                 {
  3.                     Return (GPRW (0x03, 0x03))
  4.                 }
复制代码
但各个设备的返回值都不一样,这里列一个表:
设备名称 _PRW类型
USB0 Method 0x03, 0x03
USB3 Method 0x0E, 0x03
USBE Method 0x0D, 0x03
EUSB Method 0x0D, 0x03
GBE Method 0x0D, 0x04
HDAC
Method 0x0D, 0x03
根据上面提到的帖子里的说法,将返回值更改为0x09,0x04,结果可以睡眠,但是唤醒后死机(可以用键盘或电源键唤醒,唤醒后屏幕黑屏,试用各种键盘快捷键如调音量、重启等都得不到相应的反馈,所以我判断是死机了)。

现在变成这么解决唤醒死机的问题了,同样的,还是先尝试修改_DSM方法,仍然是没有变化(我的USB设备,不管有没有注入deviceID,在系统信息里都不会显示为内建,也不知道为什么),所以问题还是在_PRW方法上。我尝试了各种返回值,如0x0D,0x00、0x00,0x00、0x09,0x00,甚至直接删除_PRW方法,结果都是要不秒醒,要不睡死。

在爬帖的过程中注意到,好多人的_PRW的类型不是方法(Method),而是命名(Name),于是我尝试将我自己_PRW都改成Name,即是将
  1.                Method (_PRW, 0, NotSerialized)
  2.                 {
  3.                     Return (GPRW (0x0D, 0x00))
  4.                 }
复制代码
改成=>
  1.                Name (_PRW, Package (0x02)
  2.                 {
  3.                     0x0D,
  4.                     0x00
  5.                 })
复制代码
这里的值参考了RehabMan大神的修复USB3.0导致睡眠秒醒的补丁。重启载入新DSDT后成功睡眠,并可正常唤醒!
最后尝试只要修改USBE、EUSB、GBE和HDAC这四个设备的_PRW方法就可以了,再列表说明一下(作过修改的红色标记):

设备名称 _PRW类型
USB0 Method 0x03, 0x03
USB3 Method 0x0E, 0x03
USBE Name 0x0D, 0x00
EUSB Name 0x0D, 0x00
GBE Name 0x0D, 0x00
HDAC
Name 0x0D, 0x00

至此,升级到El Capitan后的睡眠问题解决,但我仍然不清楚这些返回值的意义,希望坛友们多多交流。
1

查看全部评分

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
沙发
发表于 2016-4-7 12:08:29 IP属地广东 来自手机 |显示全部楼层
xidibo 发表于 2016-4-7 12:03
支持下!!!

谢谢支持(﹒﹒)

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
板凳
发表于 2016-4-7 16:16:41 IP属地广东 |显示全部楼层
Loueos 发表于 2016-4-7 14:39
可以鼠标唤醒吗?

不行,现在睡眠后usb是断电的,请问您有什么建议吗?

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
4F
发表于 2016-4-7 17:46:48 IP属地广东 |显示全部楼层
甘新平 发表于 2016-4-7 13:49
谢谢楼主分享,我的现在睡眠只是显示器关了,主机还是一直在转,以前是正常的

找个时间睡一下,然后看看当时的系统日志有没有sleep和wake相关的内容,找一找问题所在。

比如说你今晚(4月7日)八点多试着睡眠,然后开机后,打开终端,输入:
  1. syslog | grep -i "sleep"| grep -i "Apr  7" | grep "20:"
复制代码
  1. syslog | grep -i "wake"| grep -i "Apr  7" | grep "20:"
复制代码
看看两个命令的输出,应该能看出点端倪来。

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
5F
发表于 2016-4-7 17:47:27 IP属地广东 |显示全部楼层
ppforwork 发表于 2016-4-7 16:24
虽然看不懂.但是感觉到了很厉害!!!!

谢谢!

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
6F
发表于 2016-4-7 17:47:55 IP属地广东 |显示全部楼层
tanpengsccd 发表于 2016-4-7 16:27
顶起来,希望更多人能分享成果

谢谢你!

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
7F
发表于 2016-4-7 17:51:26 IP属地广东 |显示全部楼层
wagsin 发表于 2016-4-7 14:22
问下楼主,对A卡有效吗

这个我不清楚哦,没用过A卡,不知道A卡的情况,你搜索一下论坛吧,不好意思啊

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
8F
发表于 2016-4-7 19:06:59 IP属地广东 |显示全部楼层
Loueos 发表于 2016-4-7 18:03
对啊,笔记本因为蓝牙,摄像头,导致睡眠秒醒。在想能不能只搞蓝牙,摄像头usb端口禁用。

这样的话,你可照我的办法试试。我的蓝牙和摄像头就是挂在USBE和EUSB两个设备下的,另外HDAC是声卡,改了这几个之后就可以睡眠了。USB口睡眠断电应该是另外的问题,可能跟我的USB无法内建有关,但这样改了以后起码能睡眠了。

如果你有其他好办法,麻烦分享一下啊

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
9F
发表于 2016-4-8 02:45:51 IP属地广东 |显示全部楼层
甘新平 发表于 2016-4-7 23:11
这是在控制台复制出来的

你贴出来的这些看不到跟睡眠有关的内容呢……注意筛选关键字“sleep”、“wake”

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
10F
发表于 2016-4-8 02:51:57 IP属地广东 |显示全部楼层
Loueos 发表于 2016-4-7 14:39
可以鼠标唤醒吗?

我后来发现bios里的“Always USB on”没有开启,把这个选项开启以后就可以用鼠标唤醒了。注意看自己的蓝牙、摄像头是挂在哪个USB端口上,去dsdt里将这个USB口的_PRW更改了就不会因为蓝牙或摄像头而秒醒了,而其他USB端口插的鼠标或键盘可以正常唤醒电脑。

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
11F
发表于 2016-4-8 09:00:02 IP属地广东 来自手机 |显示全部楼层
Loueos 发表于 2016-4-8 07:59
蓝牙,摄像头,USB鼠标都在EHX2下。不知道怎么搞了

EHX2是USB2.0主控,它下面应该还有好几个USB端口,名字可能是UHCx或USBx,根据唤醒日志多试几次吧,祝成功

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
12F
发表于 2016-4-8 13:28:12 IP属地广东 |显示全部楼层
最爱的小雨 发表于 2016-4-8 10:43
_PRW全部替换后,成功解决,报喜!

恭喜恭喜

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
13F
发表于 2016-4-8 13:34:00 IP属地广东 |显示全部楼层
Loueos 发表于 2016-4-8 09:30
睡眠是可以的,只是不能USB鼠标唤醒。没打RehabMan的补丁是可以USB唤醒的。那为什么要打补丁呢,因为只要 ...

这样啊,可怜……只能二选一啊,我爱莫能助了,多尝试大家的解决办法吧,说不定哪个法子就刚好适合你的机子呢

Rank: 5Rank: 5Rank: 5

UID
4609680
帖子
209
PB币
285
贡献
0
技术
1
活跃
1074
14F
发表于 2016-4-9 00:15:41 IP属地广东 |显示全部楼层
最爱的小雨 发表于 2016-4-8 17:26
嘿嘿,现在只有一个问题了,开机太慢,会卡snb frambuffer did not show很久

这个貌似是显卡没驱好呢,我的机器比较老,倒不会为核显、新显卡之类的问题困扰
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛