Linux电源管理-概述

2019-07-13 21:17发布

前言

在如今嵌入式可移动设备大热的时期,功耗是检测此设备一项重要的指标。如何能做到手机待机时间长久,而且用户还能玩的尽兴,这时候就必须对设备进行省电管理。那用什么省电方式呢? 比如在手机听音乐的时候关闭屏幕,在看电影的时候调节屏幕亮度等都可以用来省电。这些方法在linux操作系统中已经做了统一的实现: suspend/resume机制。本节就简单认识下linux下的电源管理。

电源状态

  1. On (on)                                 S0-Working
  2. Standby (standby)                S1- CPU and RAM are powed but not executed
  3. Suspend to Ram (mem)        S2- RAM is powered and the running content is saved to RAM
  4. Suspend to Disk (disk)         S3 - All content is saved to Disk and power down
S0状态也就是计算机正常工作状态。 S1状态简称standby状态,此状态下CPU处于低功耗状态,并且没有数据保存到RAM或者disk中,此状态待机和恢复通常很快。 S2状态简称STR,此状态下计算机会冻结所有的活动并将当前工作状态保存到RAM中,然后关闭屏幕进入低功耗模式,通常睡眠和唤醒需要几秒。 S3状态简称SRD或者Hibernate,代表冬眠,意识是比较长久,一般在window系统中常见到。此状态下计算机将所有活动的状态保存到磁盘中,然后处于关机状态,此模式下是不耗电的,而相比之前的模式,休眠和唤醒的速度都比较慢。
下图是四种状态的功耗和唤醒速度对比。
关于suspend/standby/hibernate的区别可以看此地址:http://blog.csdn.net/vaqeteart/article/details/4158058

睡眠唤醒体验

如果你用的系统是window,就可以直接在开始按钮出,选择各种睡眠类型。 如果你用的是linux,就可以直接通过命令行操作,以我的系统Ubuntu为例子: 1.  查看系统支持的睡眠方式 root@test:~$ cat /sys/power/state mem disk 可以看到ubuntu系统支持的睡眠方式有,suspend to ram和suspend to disk
2.  echo mem > /sys/power/state 此方式就可以达到睡眠,按任意按键可以唤醒计算机。
在android手机上查看睡眠方式。 root@test:/ # cat /sys/power/state standby mem 可以看到手机上没有disk方式,因为嵌入式都不带disk设备的。
通过echo  mem > /sys/power/state可以使手机睡眠,同时按下power按键可以唤醒手机。