电源管理ACPI、及APM、GNU/Linux系统下的对应命令使用

2019-07-13 21:48发布

/*********************************************************************  * Author  : Samson  * Date    : 05/19/2014  * Test platform:  *              Mint 15-3.8.13.13  *              GNU bash, version 4.2.45  * *******************************************************************/
rtc: The Real Time Clock (RTC) unit can be operated by the backup battery when the system power is off. The data
include the time by second, minute, hour, date, day, month, and year. The RTC unit works with an external 32.768 KHz crystal and can perform the alarm function.

当系统电源关闭时,通过备用电源可以运行实时时钟(RTC)单元。数据包含的时间,即秒,分钟,小时,日期,日,月和年。RTC 工作由一个外部32.768kHz 的晶体驱动,并可以执行报警功能。

要掌握待机和休眠,必须先了解下面两个知识:ACPI和APM。  
  1.什么是ACPI
  ACPI是Advanced Configuration and Power Interface的缩写,中文意为“高级配置与电源接口”,这是微软、英特尔和东芝共同开发的一种工业标准。  

  ACPI主要可实现以下功能:   
  ①用户可以使电脑在指定时间开、关;   
  ②即插即用设备在插入时能够由ACPI来控制,并为其供电;
  ③在无人使用电脑时可以使电脑进入休眠状态,但保证一些通信设备打开;
  ④操作系统可以根据外设和主板具体需求为它分配能源;
  ⑤操作系统可以在应用程序对时间要求不高的情况下降低时钟频率;
  ⑥使用笔记本电脑的用户可以指定电脑在低电压情况下进入低功耗状态,以保证重要应用程序运行。   

  同时,可将ACPI分为六种不同的工作状态,分别是S0到S5,它们代表的含义分别是:  
  S0:电脑正常工作,所有硬件设备全部处于打开或正常工作的状态;
  S1:也称为POS(Power on Suspend,CPU停止工作),其他的硬件设备仍然正常工作;
  S2:将CPU关闭,但其余的硬件设备仍然运转;
  S3:通常称为STR(Suspend to RAM,挂起到内存),将运行中的数据写入内存后关闭硬盘;
  S4:也称为STD(Suspend to Disk,挂起到硬盘),内存信息写入硬盘,然后所有部件停止工作;
  S5:所有硬件设备(包括电源)全部都关闭,也就是关机。  

  2.什么是APM
  APM其实是Advanced Power Manager(高级电源管理)的缩写,这是通过操作系统来控制、管理电脑硬件电源的一种管理模式,其实也是一套电脑电源管理程序(软件),版本不同,功能也有所不同,比如APM V1.0&V1.1,这两个版本都是直接由BIOS执行电源管理,而APM V1.2则是可以先通过操作系统定义电源管理,然后再由BIOS负责执行。
  在如今流行的操作系统中,都内置了APM,而在以前的DOS时代,APM并未真正被引入操作系统,所以无法执行待机、休眠等操作,重启也只能用Ctrl+Alt+Delete组合键或电源的Reset键。


  S1 =>Standby。即指說系統處於低電源供應狀態,在 windows or BIOS 中可設定螢幕訊號輸出關閉、硬碟停止運轉進入待命狀態、電源燈號處於閃爍狀態。此時動一動滑鼠、按鍵盤任一鍵均可叫醒電腦。
  
  S2 =>Power Standby。和 S1 幾乎是一樣。
  
  S3 =>Suspend to RAM。即是把 windows 現在存在記憶體中的所有資料保存不動,然後進入「假關機」。此時除了記憶體需要電源來保持資料以外,其它的設備、裝置全部停止供電。也就是說,理論上可以把 CPU, PCI, AGP device 拿掉又插回去,電腦也可能正常完成開機及運作,只要不動到記憶體和電源的部份。這時只剩下電源燈號一閃一閃的,其它和關機沒什麼兩樣。(電源供應器的風扇也停止運轉喔)重新開新後,電腦只是把記憶體的資料完整性確認後,即立刻會回到你進 S3 前的畫面。
  
  S4 =>Suspend to Disk。即是把 windows 記憶體中的資料完整的存在硬碟中。等開機時就直接從存這些資料的地方直接完整的讀到記憶體,不需要跑一堆應用程式。使用這種模式的話,硬碟一定要騰出一個完整的連續空間。Windows 98/SE 必需要用軟體去製作一個大檔案或是一個磁區來提供 win98/SE 執行 S4 這功能,WinME/2000/XP 本身就有製作一個大檔案來給 S4 功能用(在電源管理中有一個啟動休眠,就是這個啦) 。在啟動後,在 C: 下會看到一個和你電腦現有記憶體大小一樣的大檔案。
  
  S5 =>Shutdown....這不用說了吧!
  
  S1/S3 在 windows 中都叫「待命 or standby」,所以在 BIOS 裏會有一個選項,設定說 Standby mode 為何,是要 S1 還是 S3,所以啦。S1 和 S3 是不能同時存在的。不是 S1,S4,S5 就是 S3,S4,S5 。

S1、S2:待机,可通过鼠标、键盘唤醒,省电低;
S3:挂起,是把所有当前运行的环境保存到内存中,而关闭硬盘等其它设备全部停止供电,必须通过按设备的开机按钮唤醒进行载入;
S4:休眠,把所有当前运行的环境保存到硬盘中后,只是RTC处理器供电,而RTC是基于BIOS电池供电的,所以在省电方面是和关机是一样一样的,当设置的唤醒时间或是重新按开机按钮后,从硬盘载入保存的环境到内存中,即是休眠前的状态,便于快速恢复到上一次的工作环境。

GNU/Linux系统中提供的rtcwake命令进行以上的5种模式:
休眠:
电脑进入休眠模式,并在2个小时(7200秒)后自动唤醒
sudo rtcwake -m disk -s 7200

在10:45这个时刻唤醒
sudo rtcwake -m disk -t `date -d 10:45 +%s`

会让系统进入S3,睡20秒再自动唤醒。
sudo rtcwake -v -s 20 -m mem

-m后的参数可以查看系统下支持的模式:
gy@yy:~$ cat /sys/power/state
standby mem disk

可见是支持以上三种模式。关于rtcwake的更多请在GNU/Linux下man了。
ref: http://wenku.baidu.com/view/016ff0ee81c758f5f61f67ba.html http://wenku.baidu.com/view/c8f9c7f57c1cfad6195fa710.html