macbook air笔记本休眠待机后被自动唤醒,笔记本待机失败
Tofloor
poster avatar
shenjing
deepin
2018-05-30 23:36
Author
本帖最后由 shenjing 于 2018-5-30 18:09 编辑

硬件:2015下半年macbook air
cpu: i5
内存:4G 未开启swap
系统:deepin15.5
-------
问题现象描述:
点电源->待机,此时系统背光关闭,键盘灯被关闭,进入待机模式,过10来秒后系统自动被唤醒,进入锁屏界面

原因分析:
要么是待机失败,要么是被异常唤醒
进系统:
sudo dmesg
看日志,有如下输出(着重看我标红的部分):

[ 1170.251041] smpboot: CPU 3 is now offline
[ 1170.253365] ACPI: Low-level resume complete
[ 1170.253468] ACPI: EC: EC started
[ 1170.253469] PM: Restoring platform NVS memory
[ 1170.253944] Enabling non-boot CPUs ...
[ 1170.254131] x86: Booting SMP configuration:
[ 1170.254134] smpboot: Booting Node 0 Processor 1 APIC 0x2
[ 1170.288848] ACPI Error: [\_PR_.CPU0._CST] Namespace lookup failure, AE_NOT_FOUND (20170728/psargs-364)
[ 1170.289403] ACPI Error: Method parse/execution failed \_PR.CPU1._CST, AE_NOT_FOUND (20170728/psparse-550)
[ 1170.294817]  cache: parent cpu1 should not be sleeping
[ 1170.374993] CPU1 is up
[ 1170.375157] smpboot: Booting Node 0 Processor 2 APIC 0x1
[ 1170.375986] ACPI Error: [\_PR_.CPU0._CST] Namespace lookup failure, AE_NOT_FOUND (20170728/psargs-364)
[ 1170.375993] ACPI Error: Method parse/execution failed \_PR.CPU2._CST, AE_NOT_FOUND (20170728/psparse-550)
[ 1170.376034]  cache: parent cpu2 should not be sleeping
[ 1170.376403] CPU2 is up
[ 1170.376476] smpboot: Booting Node 0 Processor 3 APIC 0x3
[ 1170.393114] ACPI Error: [\_PR_.CPU0._CST] Namespace lookup failure, AE_NOT_FOUND (20170728/psargs-364)
[ 1170.393410] ACPI Error: Method parse/execution failed \_PR.CPU3._CST, AE_NOT_FOUND (20170728/psparse-550)
[ 1170.395663]  cache: parent cpu3 should not be sleeping
[ 1170.436510] CPU3 is up
[ 1170.441824] ACPI: Waking up from system sleep state S3


问题原因与acpi相关.acpi导致唤醒了cpu.
此时去查看acpi唤醒系统相关配置:
jesen@jesen-PC:~$ cat /proc/acpi/wakeup
Device        S-state          Status   Sysfs node
PEG0          S3        *disabled
EC          S4        *disabled  platformNP0C09:00
HDEF          S3        *disabled  pci:0000:00:1b.0
RP01          S3        *disabled  pci:0000:00:1c.0
RP02          S3        *disabled  pci:0000:00:1c.1
RP03          S3        *disabled  pci:0000:00:1c.2
ARPT          S4        *disabled  pci:0000:03:00.0
RP05          S3        *disabled  pci:0000:00:1c.4
RP06          S3        *disabled  pci:0000:00:1c.5
SPIT          S3        *disabled  spi:spi-APP000D:00
XHC1          S3        *enabled   pci:0000:00:14.0
ADP1          S4        *disabled  platform:ACPI0003:00
LID0          S4        *enabled   platformNP0C0D:00


我们发现,acpi能够唤醒系统的接口有两个,一个是xhc1,一个是lid0(开合笔记本盖子)
此时,我通过做实验禁用acpi的xhc1唤醒系统.
sudo su
echo XHC1  >/proc/acpi/wakeup
再尝试点电源->休眠
发现ok了,能正常休眠,同时也不会自动唤醒了,nice,找到原因了,就去彻底解决问题.
---------
解决问题办法:
1.修改acpi设备的udev规则,打开终端输入如下命令:
sudo   vi  /etc/udev/rules.d/50-xhc_sleep.rules
输入如下内容:
#disable XHC1 wake up system
SUBSYSTEM=="pci", KERNEL=="0000:00:14.0", ATTR{power/wakeup}="disabled"
2.保存退出
3.重启系统.

4.测试待机功能,看是否还会自动被唤醒?
如果还被唤醒,请确认cat /proc/acpi/wakeup 的XHC1          S3        *enabled   pci:0000:00:14.0是否变成了  XHC1          S3        *disabled   pci:0000:00:14.0




















Reply Favorite View the author
All Replies
avatar
jianguo922
deepin
2018-05-31 01:17
#1
楼主厉害苹果机装国产系统,赞一个
Reply View the author
avatar
shenjing
deepin
2018-05-31 02:10
#2
https://bbs.deepin.org/post/157295
楼主厉害苹果机装国产系统,赞一个

深度用着更符合我使用习惯
Reply View the author
avatar
motlhuhu
deepin
2018-06-18 02:53
#3
我也是跟你遇到一样的问题,休眠总是唤醒,现在只能关机来解决了。我尝试一下你的方法能不能行,感谢。
我现在是删除了mac其他系统,只有deepin了,用了很长一段时间了,感觉非常棒
Reply View the author
avatar
许自强
deepin
2018-06-18 04:05
#4
https://bbs.deepin.org/post/157295
我也是跟你遇到一样的问题,休眠总是唤醒,现在只能关机来解决了。我尝试一下你的方法能不能行,感谢。
我 ...

待机吧?休眠可以看看这个啦:https://www.jianshu.com/p/c4d8350e2a1c
Reply View the author
avatar
motlhuhu
deepin
2018-06-20 02:04
#5
https://bbs.deepin.org/post/157295
待机吧?休眠可以看看这个啦:https://www.jianshu.com/p/c4d8350e2a1c

确实是待机,写错了。
不过现在自动睡眠会睡死。。。无法恢复,只能强行断电再开机。。悲剧
Reply View the author
avatar
139******55
deepin
2018-12-17 02:22
#6
谢谢了,解决了thinkpad s1 yago笔记本同样的问题
Reply View the author
avatar
hghua
deepin
2021-02-18 00:24
#7

感谢楼主!这是个通用方法。我的台式机挂起自动唤醒原因是USB0造成的,于是创建文件“/etc/udev/rules.d/50-usb_sleep.rules”,内容:

SUBSYSTEM=="pci", KERNEL=="0000:00:02.0", ATTR{power/wakeup}="disabled"

重启就解决了。

Reply View the author