睡眠问题解决之路(秒醒->唤醒死机->正常)
我的机子是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)的内容,是这样的: Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x03, 0x03))
}
但各个设备的返回值都不一样,这里列一个表:
设备名称 _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,即是将 Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x0D, 0x00))
}
改成=> Name (_PRW, Package (0x02)
{
0x0D,
0x00
})
这里的值参考了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后的睡眠问题解决,但我仍然不清楚这些返回值的意义,希望坛友们多多交流。
支持下!!! xidibo 发表于 2016-4-7 12:03
支持下!!!
谢谢支持(﹒﹒) 看看先、谢谢分享 谢谢楼主分享,我的现在睡眠只是显示器关了,主机还是一直在转,以前是正常的 好贴,我之前直接删除方法后,一睡不起,待我用楼主的办法试试去 问下楼主,对A卡有效吗 可以鼠标唤醒吗? Loueos 发表于 2016-4-7 14:39 https://www.pcbeta.com/static/image/common/back.gif
可以鼠标唤醒吗?
不行,现在睡眠后usb是断电的,请问您有什么建议吗? 虽然看不懂.但是感觉到了很厉害!!!! 顶起来,希望更多人能分享成果 支持楼主的折腾,黑苹果就是要折腾 我也是ICH9M,打了补丁只能睡一次……先马一个等会试试 不错~支持一下,黑苹果就是需要这种举一反三的折腾精神 甘新平 发表于 2016-4-7 13:49 https://www.pcbeta.com/static/image/common/back.gif
谢谢楼主分享,我的现在睡眠只是显示器关了,主机还是一直在转,以前是正常的
找个时间睡一下,然后看看当时的系统日志有没有sleep和wake相关的内容,找一找问题所在。
比如说你今晚(4月7日)八点多试着睡眠,然后开机后,打开终端,输入:syslog | grep -i "sleep"| grep -i "Apr7" | grep "20:"和syslog | grep -i "wake"| grep -i "Apr7" | grep "20:"看看两个命令的输出,应该能看出点端倪来。 ppforwork 发表于 2016-4-7 16:24 https://www.pcbeta.com/static/image/common/back.gif
虽然看不懂.但是感觉到了很厉害!!!!
谢谢!{:5_273:} tanpengsccd 发表于 2016-4-7 16:27 https://www.pcbeta.com/static/image/common/back.gif
顶起来,希望更多人能分享成果
谢谢你!{:5_264:} wagsin 发表于 2016-4-7 14:22 https://www.pcbeta.com/static/image/common/back.gif
问下楼主,对A卡有效吗
这个我不清楚哦,没用过A卡,不知道A卡的情况,你搜索一下论坛吧,不好意思啊 zhtengw 发表于 2016-4-7 16:16 https://www.pcbeta.com/static/image/common/back.gif
不行,现在睡眠后usb是断电的,请问您有什么建议吗?
对啊,笔记本因为蓝牙,摄像头,导致睡眠秒醒。在想能不能只搞蓝牙,摄像头usb端口禁用。 Loueos 发表于 2016-4-7 18:03 https://www.pcbeta.com/static/image/common/back.gif
对啊,笔记本因为蓝牙,摄像头,导致睡眠秒醒。在想能不能只搞蓝牙,摄像头usb端口禁用。
这样的话,你可照我的办法试试。我的蓝牙和摄像头就是挂在USBE和EUSB两个设备下的,另外HDAC是声卡,改了这几个之后就可以睡眠了。USB口睡眠断电应该是另外的问题,可能跟我的USB无法内建有关,但这样改了以后起码能睡眠了。
如果你有其他好办法,麻烦分享一下啊{:5_266:}