代码拉取完成,页面将自动刷新
同步操作将从 deepinwiki/wiki 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
[TOC]
休眠是一个很好用的功能,但是也是一个很容易出现问题的功能。
休眠的原理是将内存的数据存放进硬盘里面,然后断电。开机后能够从硬盘里面还原数据到内存,然后就变成和关机之前一模一样的运行状态。当然其中还有很多细节调整,比如网络重连,时间的重设等。
休眠之所以容易出现问题,这是因为ACPI(高级配置和电源接口)对软硬件都是一项挑战,它要求硬件能支持休眠的电源管理调度,也要求软件驱动对其支持。
另外,linux对休眠功能的支持,要求你开启交换分区,内存的信息在休眠的时候将转储到交换分区之上。因此最好让你的交换分区和内存差不多大小。
ACPI电源状态:
systemd 后台管理支持的电源功能:
systemctl suspend
: S3systemctl hibernate
: S4systemctl suspend-then-hibernate
: S3一段时间后S4systemctl hybrid-sleep
: S4+S3我在5.1内核可以成功休眠,但是之后的5.2,5.3,5.4,5.4内核都无法成功休眠。一直认为内核升级就能修复这个问题,但迟迟等不到好的内核。因此对这个问题深入的研究一番:
sudo dmesg |grep -i acpi #查看内核输出信息中关于acpi的内容
#对相关信息进行梳理,发现比较可疑的内容
[ 211.189078] ACPI: EC: event blocked
[ 211.189079] ACPI: EC: EC stopped
# 貌似是被某种东西中断的休眠过程
我的硬件存在不少报错信息,应该是关于usb的:
sudo dmesg -l err # 输出错误信息
# 输出内容如下:
[ 1.076121] pci 0000:00:00.2: AMD-Vi: Unable to write to IOMMU perf counter.
[ 1.396121] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.POT5._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.396276] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.POT6._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.396423] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.POT7._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.396566] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.POT8._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.396699] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.POT9._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.396816] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.PO10._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.396943] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.PO11._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.397101] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.PO12._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.397641] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.PO13._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.397778] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.PO14._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.398752] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.POT1._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.398898] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.POT2._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.399358] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.POT3._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 1.399530] ACPI Error: Aborting method \_SB.PCI0.GPP1.PTXH.RHUB.POT4._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20190816/psparse-531)
[ 4.579953] tpm_crb MSFT0101:00: can't request region for resource [mem 0xbb450000-0xbb453fff]
既然硬件存在问题,那么休眠的时候出现问题也很好理解,毕竟acpi是一个很高标准很严格的电源管理。
后来我在 arch wiki 里面找到一个方法,尝试了一下,发现居然可以解决我的问题:
sudo nano /etc/systemd/sleep.conf
# 添加一行配置到里面
HibernateMode=shutdown
不知道原因,但是确实是解决我的问题,你如果遇到也可以试一下。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。