Linux系统支持多种休眠模式,当前系统支持三种,查看方式如下

cat /sys/power/state
freeze standby mem

freeze: 冻结I/O设备,将它们置于低功耗状态,使处理器进入空闲状态,唤醒最快,耗电比其它standby, mem方式高
standby:除了冻结I/O设备外,还会暂停系统,唤醒较快,耗电比其它 mem、disk方式高
mem:将运行状态数据存到内存,并关闭外设,进入等待模式,唤醒较慢。

启用调试串口ttymxc0作为唤醒设备

echo enabled > /sys/class/tty/ttymxc0/power/wakeup

休眠到mem模式

echo mem > /sys/power/state
M: suspend entry (deep)
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.002 seconds) done.
OOM killer disabled.
Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
Suspending console(s) (use no_console_suspend to debug)

此时系统休眠到memory。在串口上按任意键,可唤醒系统,提示信息如下。

PM: suspend devices took 0.010 seconds
gpmi-nand 1806000.gpmi-nand: enable the asynchronous EDO mode 5
PM: resume devices took 0.010 seconds
OOM killer enabled.
Restarting tasks ... done.
PM: suspend exit

休眠到RAM

echo enabled  > /sys/class/tty/ttymxc0/power/wakeup

echo mem > /sys/power/state

按任意键盘按键,串口会唤醒系统。

休眠后定时唤醒

RTC在5秒后唤醒系统

echo +5 > /sys/class/rtc/rtc1/wakealarm; echo mem > /sys/power/state
作者:SteveChen  创建时间:2024-09-17 15:53
最后编辑:SteveChen  更新时间:2024-09-17 16:55