新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > linux電源管理

        linux電源管理

        作者: 時間:2008-07-23 來源:網絡 收藏

          1.概述

          雖然 linux 可以在任何一臺 386 以上的 PC 上運行,目前大多數人使用的都是新型的,帶有各種外設的桌面PC或者筆記本電腦,這樣,功能(PM)就逐漸變得越來越重要。在筆記本電腦上可以節能,延長電池壽命,而在桌面PC上它可以降低幅射,降溫,延長外設使用壽命。現在的操作系統大都內置了支持,例如 Windows 和

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

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

          兩種電源管理標準:APM和ACPI

          傳統的APM(Advanced Power Management)是一種基于bios的電源管理標準,目前的最新版本是1.2,它提供了CPU和設備電源管理的功能,但是由于這種電源管理方式主要是由bios實現,所以有些缺陷,比如對bios的過度依賴,新老bios之間的不兼容性,以及無法判斷電源管理命令是由用戶發起的還是由bios發起的,對某些新硬件如USB和1394的不支持性。

          為了彌補APM的缺陷,新的電源管理ACPI應運而生,這就是ACPI(Advanced Configuration and Power InteRFace),它主要是將電源管理的主要執行者由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補丁來獲得這些功能。

          下面對電源管理的介紹以APM為主。

          用戶態Daemon

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

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

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

          實現設備電源管理接口主要需要實現以下5點:

          1)使用pm_register對設備的每個實例(instance)進行注冊;

          2)在對硬件進行操作之前調用pm_access(這樣會保證設備已被喚醒并且處于ready狀態);

          3)用戶自己的pm_callback函數在系統進入suspend狀態(ACPI D1-D3),或者從suspend狀態恢復(ACPI D0)的時候會被調用;

          4)當設備不在被使用的時候調用pm_dev_idle函數,這個操作是可選的,可以增強設備idle狀態的監測能力;

          5)當被unload的時候,使用pm_unregister來取消設備的注冊。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        關鍵詞: Linux 電源管理

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东海县| 卢龙县| 谢通门县| 馆陶县| 朝阳县| 白朗县| 遂宁市| 广平县| 泰兴市| 交口县| 清水河县| 东阳市| 汤阴县| 宜州市| 松溪县| 漳州市| 临江市| 通城县| 宜黄县| 阜城县| 惠来县| 长宁区| 柞水县| 光山县| 石林| 桂平市| 宣武区| 沙田区| 肇源县| 淳化县| 泽州县| 息烽县| 视频| 信阳市| 钦州市| 贡觉县| 灯塔市| 封开县| 马尔康县| 化德县| 怀安县|