- 积分
- 337
- 最后登录
- 2021-6-15
- 精华
- 0
- 阅读权限
- 30
- 主题
- 23
- UID
- 3644780
- 帖子
- 768
- PB币
- 2044
- 威望
- 5
- 贡献
- 0
- 技术
- 33
- 活跃
- 555
- UID
- 3644780
- 帖子
- 768
- PB币
- 2044
- 贡献
- 0
- 技术
- 33
- 活跃
- 555
|
本帖最后由 尚目目 于 2015-4-16 16:57 编辑
我的笔记本是Asus F83VD,配置和之前安装的经历放在这儿:[交流] 华硕F83VD安装Yosemite 10.10.2已达到80+%完美,参考+交流
我之前没搞睡眠问题,但是我的原生电源管理AppleIntelPowerManagement、AppleIntelPowerManagementClient以及
AppleLPC、AppleHPET都是正常加载的。USB全部内建。
加载原生电源管理参考这两个帖子:
[教程] 通过加载AppleLPC.kext来使用MAC原生的CPU电源管理
[url=https://bbs.pcbeta.com/viewthread-1569975-1-1.html][分享] 加载AppleLPC完善睡眠唤醒(DSDT+添加主板LPC的ID)图文教程
[/url]
USB内建通过这两个帖子搞定:
[分享] DSDT修改第二季(包括USB内建)
之后开始尝试睡眠,发现我的笔记本是可以睡眠的,但是唤醒有问题。表现为:
情况一:
点击睡眠后,屏幕黑,如果几秒内(应该还没睡)点击自带键盘可中止睡眠,这个没什么。
情况二:
正常点睡眠几秒之后,硬盘等长亮几次后熄灭(在写入睡眠文件?),风扇停止,只有电源键、电池指示灯闪烁。
此时再次点击键盘,可明显发现风扇开始转动,电源键、电池指示灯均点亮,不闪烁,硬盘灯闪烁几次(读取数据?)后熄灭。
但是屏幕自始至终黑屏,触摸板、键盘、电源键均无法点亮屏幕,按Ctrl+Alt+F12没反应,只能长按电源键强制关机。
再次开机后睡眠前未退出的程序仍没有退出。
情况一、二设置HibernateMode为0、3表现相同,且/var/vm/sleepimage是存在的。
关于不同睡眠模式的具体情况,参考这个帖子:[推荐] 详解Mac睡眠模式设置
关于睡眠问题请记住两个命令比较方便(先sudo -i切换至root):
- pmset -g | grep hibernate
- pmset -a hibernatemode 0
复制代码
第一个命令查询当前睡眠模式设定,一般输出类似于“hibernatemode 0”、“hibernatemode 3”等等,表示目前处于睡眠模式0或者3。
第二个命令表示设置睡眠模式为0。
注意:更改睡眠模式之前最好先sudo /var/vm/sleepimage,然后更改睡眠模式,重启,这样新设定的睡眠模式更改才会起效。
根据睡眠相关教程,强制关机后再开机通过控制台查看System.log并搜索“hibernate”一般是可以找到相关原因的。
但是我的system.log搜索hibernate没有信息。这样我开始搜索“wake”。结果吓我一大跳,这是神马:
- Apr 15 08:10:05 JackiedeiMac.local apsd[52]: Attempt to set push wake topics without dark wake enabled: ()
- Apr 15 16:12:18 JackiedeiMac.local apsd[52]: Peer [pid=294] requested push wake but lacks APSPushWakeEntitlement
- Apr 15 16:12:53 JackiedeiMac.local apsd[52]: Attempt to set push wake topics without dark wake enabled: ()
- Apr 16 00:32:02 localhost kernel[0]: [ALXEthernet] kIOEthernetWakeOnMagicPacket added to filters.
- Apr 15 16:32:06 JackiedeiMac.local apsd[52]: Attempt to set push wake topics without dark wake enabled: ()
- Apr 15 16:34:11 JackiedeiMac.local apsd[52]: Attempt to set push wake topics without dark wake enabled: ()
- Apr 15 16:34:12 JackiedeiMac.local apsd[52]: Attempt to set push wake topics without dark wake enabled: ()
- Apr 15 16:34:12 JackiedeiMac.local apsd[52]: Attempt to set push wake topics without dark wake enabled: ()
- Apr 15 16:34:19 JackiedeiMac.local apsd[52]: Peer [pid=267] requested push wake but lacks APSPushWakeEntitlement
复制代码
赶紧上论坛一搜:
呵呵,基本啥都没有。
只能求助万能的Google,结果一搜就发现InsanelyMac的一篇帖子:Can't wake up from sleep
当时那个高兴啊,一看#15的@MacNB提出一个解决办法:Yosemite fails to wake from sleep
具体的可以去看他的帖子,为了照顾英语没过四级的这里大概说一下~~~~(>_<)~~~~ ,他发现DSDT里有这么一段:
- Method (_INI, 0, NotSerialized) // _INI: Initialize
- {
- If (STRC (_OS, "Microsoft Windows"))
- {
- Store (0x56, SMIP)
- }
- Else
- {
- If (STRC (_OS, "Microsoft Windows NT"))
- {
- If (CondRefOf (\_OSI, Local0))
- {
- If (_OSI ("Windows 2001"))
- {
- Store (0x59, SMIP)
- Store (Zero, OSFL)
- Store (0x03, OSFX)
- }
- If (_OSI ("Windows 2006"))
- {
- Store (0x59, SMIP)
- Store (Zero, OSFL)
- Store (0x04, OSFX)
- }
- }
- Else
- {
- Store (0x58, SMIP)
- Store (Zero, OSFX)
- Store (Zero, OSFL)
- }
- }
- Else
- {
- Store (0x59, SMIP)
- Store (Zero, OSFL)
- Store (0x03, OSFX)
- }
- }
- }
复制代码
他直接改成:
- Method (^_INI, 0, NotSerialized) // _INI: Initialize
- {
- Store (0x59, SMIP)
- Store (Zero, OSFL)
- Store (0x04, OSFX)
- }
复制代码
然后问题就解决了.....
我赶紧搜我的里的_INI,没有一样的Method _INI,近似的结果我的是这样的:
- Method (OSFL, 0, NotSerialized)
- {
- If (LNotEqual (OSVR, Ones))
- {
- Return (OSVR)
- }
- If (LEqual (PICM, Zero))
- {
- Store (0xAC, DBG8)
- }
- Store (One, OSVR)
- If (CondRefOf (_OSI, Local1))
- {
- If (_OSI ("Windows 2000"))
- {
- Store (0x04, OSVR)
- }
- If (_OSI ("Windows 2001"))
- {
- Store (Zero, OSVR)
- }
- If (_OSI ("Windows 2001 SP1"))
- {
- Store (Zero, OSVR)
- }
- If (_OSI ("Windows 2001 SP2"))
- {
- Store (Zero, OSVR)
- }
- If (_OSI ("Windows 2001.1"))
- {
- Store (Zero, OSVR)
- }
- If (_OSI ("Windows 2001.1 SP1"))
- {
- Store (Zero, OSVR)
- }
- If (_OSI ("Windows 2006"))
- {
- Store (Zero, OSVR)
- }
- }
- Else
- {
- If (MCTH (_OS, "Microsoft Windows NT"))
- {
- Store (0x04, OSVR)
- }
- Else
- {
- If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
- {
- Store (0x02, OSVR)
- }
- If (MCTH (_OS, "Linux"))
- {
- Store (0x03, OSVR)
- }
- }
- }
- Return (OSVR)
- }
复制代码 这下完全没办法了,好不容易找到一个方法结果对我不适用....没办法,直接跟帖求助(对,我英语过四级六级了,有InsanelyMac账号飘过)
上面那个第一个地址下面第#19的Jackie_ME就是我的跟帖。他给我提出办法,将上述Method (OSFL, 0, NotSerialized)里的"Windows 2001" 改成"Darwin"试试
我马上尝试了下,把Method (OSFL, 0, NotSerialized)里的所有Windows 2001***改成Darwin:
- Method (OSFL, 0, NotSerialized)
- {
- If (LNotEqual (OSVR, Ones))
- {
- Return (OSVR)
- }
- If (LEqual (PICM, Zero))
- {
- Store (0xAC, DBG8)
- }
- Store (One, OSVR)
- If (CondRefOf (_OSI, Local1))
- {
- If (_OSI ("Windows 2000"))
- {
- Store (0x04, OSVR)
- }
- If (_OSI ("Darwin"))
- {
- Store (Zero, OSVR)
- }
- If (_OSI ("Darwin"))
- {
- Store (Zero, OSVR)
- }
- If (_OSI ("Darwin"))
- {
- Store (Zero, OSVR)
- }
- If (_OSI ("Darwin"))
- {
- Store (Zero, OSVR)
- }
- If (_OSI ("Darwin"))
- {
- Store (Zero, OSVR)
- }
- If (_OSI ("Windows 2006"))
- {
- Store (Zero, OSVR)
- }
- }
- Else
- {
- If (MCTH (_OS, "Microsoft Windows NT"))
- {
- Store (0x04, OSVR)
- }
- Else
- {
- If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
- {
- Store (0x02, OSVR)
- }
- If (MCTH (_OS, "Linux"))
- {
- Store (0x03, OSVR)
- }
- }
- }
- Return (OSVR)
- }
-
复制代码
结果你猜你猜你猜猜,你猜怎么着,睡眠唤醒正常了!hibernatemode设置成0或者3都正常,敲击键盘秒醒有木有!仿冒声卡没有唤醒无声问题有木有!
好了,这个帖子写的有点乱。方法应大概说了,要是你的Method (_INI, 0, NotSerialized)和@MacNB一样的话照他的该,和我一样奇葩的按我的改。
和上述两个的都不一样就只有自己研究研究怎么改,或者你英语过了四级直接上InsanelyMac那个帖子跟帖求助吧。
最后,愿所有折腾黑苹果的机友们早日成功!
|
-
2
查看全部评分
-
|