成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux acpi電源管理詳解

運維 系統運維
要實現電源管理,最重要的有兩點:第一是需要設備本身支持節電功能,比如硬盤,可以通過指令暫時關閉;第二是需要操作系統支持電源管理,這樣就可以在空閑一段時間之后調用驅動的電源管理功能關閉設備。

雖然Linux可以在任何一臺386以上的PC上運行,目前大多數人使用的都是新型的,帶有各種外設的桌面PC或者筆記本電腦,這樣,電源管理功能(PM)就逐漸變得越來越重要。

1.Linux acpi電源管理概述

在筆記本電腦上電源管理可以節能,延長電池壽命,而在桌面PC上它可以降低幅射,降溫,延長外設使用壽命。現在的操作系統大都內置了電源管理支持,例如Windows和Linux。

2.PC機實現Linux acpi電源管理的方法

兩種電源管理標準:APM和ACPI
傳統的APM(AdvancedPowerManagement)是一種基于bios的電源管理標準,目前的***版本是1.2,它提供了CPU和設備電源管理的功能,但是由于這種電源管理方式主要是由bios實現,所以有些缺陷,比如對bios的過度依賴,新老bios之間的不兼容性,以及無法判斷電源管理命令是由用戶發起的還是由bios發起的,對某些新硬件如USB和1394的不支持性。為了彌補APM的缺陷,新的電源管理ACPI應運而生,這就是ACPI(AdvancedConfigurationandPowerInterface),它主要是將電源管理的主要執行者由bios轉換成為操作系統,這樣可以提供更大的靈活性以及可擴展性。目前的PC機主板一般同時支持APM和ACPI兩種標準。

3.Linux對電源管理的支持

內核模塊
針對APM和ACPI兩種不同的標準,Linux內核提供了兩個不同的模塊來實現電源管理功能,這就是apm和acpi。需要注意,apm和acpi是互相沖突的兩個模塊,用戶在同一時間內只能加載其中之一,如果當他們在加載的時候發現二者之一已經加載,就會自動退出。
在官方發布的內核中APM是較為成熟的電源管理方式,可以完成在Windows下ACPI所能完成的大部分功能。由于官方內核中ACPI的功能比較有限,目前還處于開發版狀態。所以當前的大多數distribution,如紅帽子默認就使用了apm作為電源管理方式。但是值得注意的是Linux中的ACPI實際上是由一個單獨的項目小組模塊進行維護的,當前內核ACPI的版本實際上已經遠遠落后于***的版本。由于Linux穩定版中對任何新特性的加入都非常謹慎小心,所以我們也許只能等到2.6.x版本的Linux誕生后才能看到ACPI的穩定全功能版了。不過我們也可以自己對內核打***的ACPI補丁來獲得這些功能。
這里是ACPI的主頁:
http://sf.net/projects/acpi/
下面對電源管理的介紹以APM為主。

用戶態Daemon
為了讓Linux內核中的電源管理功能夠更好的被利用,我們還需要用戶態daemon程序的配合。針對APM和ACPI,分別有apmd和acpid兩個不同軟件。他們實現的功能比較類似,都是允許用戶預先定義某些策略,然后跟蹤電源狀態,執行特定的操作。在apmd軟件包中還有一個工具apm,用戶可以用它使機器主動進入standby和suspend狀態,還可以查詢bios的apm版本號。在使用acpi時直接對proc文件系統進行操作即可完成同樣的功能。

4.Linux下驅動的Linux acpi電源管理機制

在Linux下不必為驅動分別編寫與APM和ACPI相對應的代碼,Linux與Windows類似,為驅動提供了統一的電源管理接口。驅動只要實現了這些接口,就可以實現電源管理的功能。操作系統在它認為合適的時候就會通知驅動完成這些操作。

實現設備電源管理接口主要需要實現以下5點:
1).使用pm_register對設備的每個實例(instance)進行注冊;
2).在對硬件進行操作之前調用pm_access(這樣會保證設備已被喚醒并且處于ready狀態);
3).用戶自己的pm_callback函數在系統進入suspend狀態(ACPID1-D3),或者從suspend狀態恢復(ACPID0)的時候會被調用;
4).當設備不在被使用的時候調用pm_dev_idle函數,這個操作是可選的,可以增強設備idle狀態的監測能力;
5).當被unload的時候,使用pm_unregister來取消設備的注冊。

5.Linux acpi電源管理對APM進行編程

下面介紹在實模式中和在Linux下使用APM功能的編程方法:
由于APM是由bios提供的,我們可以直接在實模式(如DOS下)調用int15軟中斷來進行電源管理操作。
在實模式下APM的standby、suspend和poweroff功能分別可以通過下面的匯編語言實現:
 

  1. standby:  
  2. movax,5307H  
  3. movbx,1  
  4. movcx,1  
  5. int15H  
  6. suspend:  
  7. 改成movcx,2  
  8. poweroff:  
  9. 改成movcx,3  

 


需要注意的一件事是在Linux內核中沒有使用和實模式的一樣的方法來調用int15H中斷,而是直接調用了bios的保護模式接口。所以我們如果修改了bios中的apm相關代碼并且沒有處理好保護模式接口的問題,可以出現這樣的情況:在實模式DOS下使用apm功能一切正常,但是在Linux下調用apm功能發生內核一般保護性錯誤。在Linux下我們可以通過對apm_bios設備的操作來完成同樣的功能。下面的代碼可以實現APM的suspend功能,等價于apm-s
 

  1. #include  
  2. #include  
  3. #include  
  4. #include  
  5. #include  
  6. #include  
  7. #include"apm.h"  
  8. intmain()  
  9. {  
  10. intfd,res;  
  11. fd=open("/dev/apm_bios",O_RDWR);  
  12. if(fd  

 

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/17928/showart_114897.html

【編輯推薦】

  1. 華碩補齊Eee PC的ACPI源代碼回應指責
  2. Linux acpi off簡介
  3. Linux acpi off學習的必要
  4. Linux acpi off關于Suspend to Disk 問題分析
  5. Linux acpi off報告ACPI bug處理方法

 

責任編輯:chenqingxiang 來源: ChinaUnix博客
相關推薦

2010-06-18 12:58:17

Linux acpi電

2009-12-14 15:41:58

Linux高級電源管理

2010-06-18 14:58:42

Linux ACPI服

2009-02-17 21:58:31

LinuxGPU電源管理

2010-06-18 15:22:14

Linux ACPI服

2010-06-18 12:47:04

Linux acpi

2010-06-21 14:05:08

Linux APM

2010-06-18 11:27:43

Linux acpi

2010-06-21 10:49:24

Linux APM

2010-06-18 14:41:48

Linux ACPI服

2010-02-25 15:45:48

Linux啟動服務

2010-06-18 12:26:17

Linux acpi

2010-06-18 14:27:52

ACPI是什么

2014-06-06 09:40:14

802.11

2010-06-18 12:38:31

Linux acpi

2009-03-05 09:43:32

Linux系統進程管理命令

2017-01-15 20:58:04

Linux進程作業管理

2014-04-15 11:02:56

Linux 3.15Linux內核

2010-11-15 10:02:31

UPS電源技術

2013-11-25 17:39:17

Linux內核PCIACPI
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 视频一区 亚洲 | 狠狠综合网 | 国产一级黄色网 | 操射视频 | 国产精品jizz在线观看老狼 | 亚洲区一区二区 | 国产1区 | 欧美成人免费在线视频 | 狠狠爱一区二区三区 | 国产精品一二三区 | 成人av资源在线 | 国产一区亚洲 | 亚洲欧美日韩精品久久亚洲区 | 中文字幕一区在线观看视频 | 成人综合视频在线观看 | 国产精品不卡 | 亚洲精品一区二区在线观看 | 国产精品久久久久久久免费大片 | 麻豆一区| 国产在线二区 | 美日韩一区二区 | 天堂久久网 | 久久久婷婷 | 午夜精品一区二区三区在线观看 | 色免费看 | 在线国产一区 | 91久久久久久 | 欧美精品成人一区二区三区四区 | 久久精品 | 国产日韩视频在线 | 久久精品国产免费 | 亚洲精品视频在线观看视频 | 伊人免费视频二 | 国产一区二区精 | 婷婷精品 | 一级毛片视频 | 亚洲欧美日韩久久久 | 亚洲精品91 | 亚洲精品日韩视频 | 欧美成人h版在线观看 | www.日本在线播放 |