1. 程式人生 > >Linux電源管理-概述

Linux電源管理-概述

前言

在如今嵌入式可移動裝置大熱的時期,功耗是檢測此裝置一項重要的指標。如何能做到手機待機時間長久,而且使用者還能玩的盡興,這時候就必須對裝置進行省電管理。那用什麼省電方式呢? 比如在手機聽音樂的時候關閉螢幕,在看電影的時候調節螢幕亮度等都可以用來省電。這些方法在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.  檢視系統支援的睡眠方式
[email protected]:~$ cat /sys/power/state 
mem disk
可以看到ubuntu系統支援的睡眠方式有,suspend to ram和suspend to disk 2.  echo mem > /sys/power/state 此方式就可以達到睡眠,按任意按鍵可以喚醒計算機。 在android手機上檢視睡眠方式。
[email protected]
:/ # cat /sys/power/state standby mem
可以看到手機上沒有disk方式,因為嵌入式都不帶disk裝置的。 通過echo  mem > /sys/power/state可以使手機睡眠,同時按下power按鍵可以喚醒手機。

相關推薦

Linux電源管理-概述

前言 在如今嵌入式可移動裝置大熱的時期,功耗是檢測此裝置一項重要的指標。如何能做到手機待機時間長久,而且使用者還能玩的盡興,這時候就必須對裝置進行省電管理。那用什麼省電方式呢? 比如在手機聽音樂的時候關閉螢幕,在看電影的時候調節螢幕亮度等都可以用來省電。這些方法在linux

Linux電源管理-Linux regulator framework概述

nts RM 成功 一定的 val machine ons 存在 nag 前言 1. 什麽是regulator? regulator翻譯為"調節器",分為voltage regulator(電壓調節器)和current(電流調節器)。一般電源管理芯片(Power

1.Linux電源管理-休眠與喚醒

abi 按鍵事件 define 電平 最快 head config文件 con 我們 1.休眠方式 在內核中,休眠方式有很多種,可以通過下面命令查看 # cat /sys/power/state //來得到內核支持哪幾種休眠方式.

Linux電源管理研究筆記 動態電源管理 DPM

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linux電源管理(7)_Wakeup events framework

1.  前言 本文繼續“Linux電源管理(6)_Generic PM之Suspend功能”中有關suspend同步以及PM wakeup的話題。這個話題,是近幾年Linux kernel最具爭議的話題之一,在國外Linux開發論壇,經常可以看到圍繞該話題的辯論。辯論的時間跨度和空間

Linux電源管理(6)_Generic PM之Suspend功能

1. 前言 Linux核心提供了三種Suspend: Freeze、Standby和STR(Suspend to RAM),在使用者空間向”/sys/power/state”檔案分別寫入”freeze”、”standby”和”mem”,即可觸發它們。 核心中,Suspend及Resume過程

Linux電源管理(5)_Hibernate和Sleep功能介紹

1. 前言 Hibernate和Sleep兩個功能是Linux Generic PM的核心功能,它們的目的是類似的:暫停使用——>儲存上下文——>關閉系統以節電········>恢復系統——>恢復上下文——>繼續使用。 本文以核心向用戶空間提供的介面為突破口

Linux電源管理(4)_Power Management Interface

1. 前言 Linux電源管理中,相當多的部分是在處理Hibernate、Suspend、Runtime PM等功能。而這些功能都基於一套相似的邏輯,即“Power management interface”。該Interface的程式碼實現於“include/linux/pm.h”、“dri

Linux電源管理(3)_Generic PM之Reboot過程

1. 前言 在使用計算機的過程中,關機和重啟是最先學會的兩個操作。同樣,這兩個操作在Linux中也存在,稱作shutdown和restart。這就是本文要描述的物件。 在Linux Kernel中,主流的shutdown和restart都是通過“reboot”系統呼叫(具體可參考kern

Linux電源管理(2)_Generic PM之基本概念和軟體架構

1. 前言 這裡的Generic PM,是蝸蝸自己起的名字,指Linux系統中那些常規的電源管理手段,包括關機(Power off)、待機(Standby or Hibernate)、重啟(Reboot)等。這些手段是在嵌入式Linux普及之前的PC或者伺服器時代使用的。在那個電腦科學的蠻荒時

Linux電源管理(1)_整體架構

1. 前言 在這個世界中,任何系統的運轉都需要能量。如樹木依靠光能生長,如馬兒依靠食物奔跑,如計算機系統依靠電能執行。而能量的獲取是有成本的,因此如果能在保證系統運轉的基礎上,儘量節省對能量的消耗,就會大大提升該系統的生存競爭力。這方面,大自然已經做的很好了,如植物的落葉,如動物的冬眠,等等。

Linux電源管理(11)_Runtime PM之功能描述

1. 前言 終於可以寫Runtime PM(後面簡稱RPM)了,說實話,蝸蝸有點小激動。因為從個人的角度講,我很推崇使用RPM進行日常的動態電源管理,而不是suspend機制。 軟體工程的基本思想就是模組化:高內聚和低耦合。通俗地講呢,就是“各人自掃門前雪”,儘量掃好自己的(高內聚),儘

Linux電源管理(9)_wakelocks

1. 前言 wakelocks是一個有故事的功能。 wakelocks最初出現在Android為linux kernel打的一個補丁集上,該補丁集實現了一個名稱為“wakelocks”的系統呼叫,該系統呼叫允許呼叫者阻止系統進入低功耗模式(如idle、suspend等)。同時,該補丁集更

Linux電源管理(8)_Wakeup count功能

1. 前言 Wakeup count是Wakeup events framework的組成部分,用於解決“system suspend和system wakeup events之間的同步問題”。本文將結合“Linux電源管理(6)_Generic PM之Suspend功能”和“Linux電源管

1.Linux電源管理-休眠與喚醒【轉】

轉自:https://www.cnblogs.com/lifexy/p/9629699.html 1.休眠方式  在核心中,休眠方式有很多種,可以通過下面命令檢視 # cat /sys/power/state //來得到核心支援哪幾種休眠方式.  

Linux電源管理_autosleep--(五)【轉】

本文轉載自:https://blog.csdn.net/wlsfling/article/details/46005409 1. 前言 Autosleep也是從Android wakelocks補丁集中演化而來的(Linux電源管理(9)_wakelocks),用於取代Android wakelocks中

Linux電源管理-wakeup count

前言 在wakeup events framework小節中提到,wakeup events framwork可以解決system suspend和wakeup events之間的同步問題。而整篇下來沒有看到是如何解決同步問題的。所有本小節繼續分析wakeup events framewo

Linux電源管理_Wakeup events framework--(二)

1.  前言 本文繼續“Linux電源管理(6)_Generic PM之Suspend功能”中有關suspend同步以及PM wakeup的話題。這個話題,是近幾年Linux kernel最具爭議的話題之一,在國外Linux開發論壇,經常可以看到圍繞該話題的辯論。辯論的時間跨度和空間

Linux電源管理-wakeup events framework

前言 通常新機制/事物的出現往往是解決某些問題的,同樣wakeup events framework機制也不例外。先帶大家瞭解下wakeup events framework出現的背景,然後在瞭解其內部的實現機制。 Linux系統中的電源管理一般是冷睡眠,而Android系統

Linux電源管理(五)thermal

thermal子系統概述 thermal子系統是核心提供的溫控管理框架,一套軟體溫度解決方案,配合ic內部溫度感測器,對ic溫度進行管控,保證系統穩定性。 thermal系統多用於對ic內部的重點發熱模組的功能管控,如cpu、gpu。 thermal se