前言

在如今嵌入式可移动设备大热的时期,功耗是检测此设备一项重要的指标。如何能做到手机待机时间长久,而且用户还能玩的尽兴,这时候就必须对设备进行省电管理。那用什么省电方式呢? 比如在手机听音乐的时候关闭屏幕,在看电影的时候调节屏幕亮度等都可以用来省电。这些方法在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按键可以唤醒手机。


GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐