现在的 linux 内核支持三种电源管理模式,可以在 /sys/power/state 文件中查看:

cat /sys/power/state
standby mem disk

向该文件写入模式的名称即可实现待机,休眠等,例如:

echo standby > /sys/power/state

下面对各模式详细说明。

1. standby

ACPI state: S1

该模式会关闭显示器和键盘等输入设备, CPU 依然在工作,所有的操作状态都不会丢失。

在该模式下按一下计算机的开关键,系统会在1~2秒内恢复到之前的状态。

2. mem

ACPI state: S3

该模式相当于 Windows 下的待机。计算机将进入一个低供电状态,只有内存保持供电,并处于自刷新模式,以便保存内容。

此时,系统和设备的状态都存储在内存中。所有设备电源都进入 D3 状态,即全部断电。多数情况下,外围设备总线也全部断电。

在该模式下按一下计算机的开关键,系统会在3~5秒内恢复到之前的状态。

3. disk

ACPI state: S4

该模式类似 mem 模式,但是最后多了一个步骤:将内存的内容写入硬盘(通常是写入 swap 分区)。在恢复时,再将其读出,并重新写入暂停前的工作状态。这样做的好处是,即使在该模式下计算机断电,也不会丢失数据,依然可以恢复到以前的工作状态。

从该模式恢复需要大约30秒。

在 disk 模式中,将内存内容写入硬盘的 swap 分区使用的是 swsusp 机制。关于该机制的详情在内核源码的 Documentation/power/swsusp.txt 文件中。

Li Shaocheng. Published under BY-NC-SA
Comments
Write a Comment