Linux電源管理研究筆記—acpid工作原理

來源:互聯網
上載者:User

Linux電源管理研究筆記—acpid工作原理

 

轉載時請註明出處:http://blog.csdn.net/absurd/

 

在手持功能設計中,電源管理曆來為重要的研究課題之一。我們日常所說的省電就屬於電源管理的範疇,這也是我們最關心的一個部分。通過掛起不必要的裝置、降低CPU的頻率或者其它方法,可以減少能量的消耗,達到省電的目的。電源管理實際上是一個系統工程,從應用程式到核心架構,再到裝置驅動和硬體裝置,都要參與進來,才能達到電源管理的最佳化。本文介紹一下acpid的工作原理。

 

ACPI是Advanced Configuration and Power Interface縮寫,acpid中的d則代表daemon。Acpid是一個使用者空間的服務進程,它充當linux核心與應用程式之間通訊的介面,負責將kernel中的電源管理事件轉寄給應用程式。

 

acpid與核心的通訊方式:acpid用poll函數掛在/proc/acpi/event檔案上。核心在drivers/acpi/event.c中實現了該檔案的介面,一旦匯流排事件列表(acpi_bus_event_list)上有電源管理事件發生,核心就會喚醒掛在 /proc/acpi/event上的acpid,acpid再從/proc/acpi/event中讀取相應的事件。

 

acpid與應用程式的通訊方式有兩種,其一是通過本地socket,其檔案名稱為/var/run/acpid.socket,應用程式只要串連到這個socket上,不用發送任何命令就可以接收到acpid轉寄的電源管理事件。

 

其二是通過設定檔。在acpid收到來自核心的電源管理事件時,根據設定檔中的規則執行指定的命令。設定檔在/etc/acpi/events/目錄下,下面是一個樣本:

event=button/power.*

action=/sbin/shutdown -h now

 

事件的格式為:device_class bus_id type data。device_class和bus_id是字串,type和data是十六制整數。在設定檔中可以使用萬用字元,來匹配指定的事件。

 

~~end~~

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.