歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux筆記本電源管理指南

Linux筆記本電源管理指南

日期:2017/3/3 16:41:10   编辑:關於Linux

Linux是一種性能優越的開源操作系統,隨著其性能和知名度越來越高,最主要的是在價格上無與倫比的優勢,許多廠家開始推出Linux筆記本電腦,並且這種趨勢大有愈演愈烈之勢。我們知道,筆記本受到電池續航時間的限制,所以特別注重機器的電源管理。因此,本文將討論如何處理這些事項。

一、概述

實際上,除了利用主板上的BIOS來管理電源外,大多數Linux系統本身都自帶了管理電源的實用工具軟件,來處理各種電源事件,如:

1.電池電量不足--這時機器會發出警告,並顯示相應圖標,或者將硬件掛起。

2.閒置--如果在一段時間內機器一直處於非活動狀態,那麼可以讓機器休眠(如關閉硬盤以及停用音頻及網絡等服務)從而有效延長電池供電時間。

通過檢測你的筆記本使用的是交流電源還是電池,可以讓機器進入相應的電源管理模式。在Fedora中,用於管理和檢修電源問題的工具有:

1.高級電源管理(APM)--APM軟件組成如下:一個pmd守護進程,用來監視電池的使用情況;多個實用工具軟件,用來顯示和響應電池事件。它們包含於apmd軟件包中。

2.高級配置和電源接口(ACPI)--acpid事件守護進程一方面監視電源事件,另一方面用來設置響應這些事件的規則,這些規則用來關閉某些硬件或關掉系統電源等。ACPI是一款設計用來替代APM電源管理的更具通用性的工具軟件,但是目前它還需進一步完善。

3.hdparm命令--hdparm命令可用於打開和關閉電源管理功能。另外,該命令還有許多選項,完成諸如停止硬盤啟動器轉動或讓硬盤進入待機狀態等操作。

需要說明的是,使用ACPI時,是操作系統在負責電源管理,而不是BIOS。盡管ACPI在管理電源問題方面功能更強也更靈活,但是,普通用戶用起來卻不是那麼方便,如使用ACPI時,你必須親自告訴它要關注哪些電源事件以及如何響應這些事件。目前,對一般用戶而言,APM的功能不但豐富,並且對用戶也更加友好。

下邊我們將針對以上三種常見的電源管理工具分別加以討論。

二、用APM管理電源

在Fedora中,可以配置APM,讓其檢測某些電源事件並做出響應。這時,它運行守護進程/usr/sbin/apmd來偵聽事件,然後根據配置文件/etc/sysconfig/apmd 中的有關規定來處理這些事件。要配置運行APM,輸入下列命令:

# chkconfig apmd on
# service apmd restart

注意:apmd和acpid不能同時使用,所以,如果此前系統正在使用acpid的話,應該先停用它,具體命令如下:

# chkconfig acpid off
# service acpid stop

APM成功啟動後,在文件/var/log/messages中應該看到一則消息,指出該服務已啟動,並列出當前電池的電量狀況。默認時,pmd守護進程根據文件/etc/sysconfig/apmd 中的設置運行。我們可以列出當前運行的進程來查看運行中的apmd的使用了哪些選項:

# ps ax | grep apmd
/usr/sbin/apmd -p 10 -w 5 -W -P /etc/sysconfig/apm-scripts/apmscript

根據以上命令中列出的選項,apmd守護進程將會:

1.記錄電池電量的變化--如果電量變化超過10%或更多,守護進程將向系統日志文件(默認時為/var/log/messages)發出一條消息。這一行為是由選項"-p 10"指定的。

2.記錄電池電量不足--當電池電量低於5%並且仍未充電時,一條警告消息將發送到系統日志文件中。這一行為是由選項"-w 5"指定的。

3.提醒用戶--如果電池電量低於"-w"選項所設定的值,將向所有登錄系統的用戶發送警報。此行為是由選項"-W"指定的。

4.利用apmscript響應事件--出現電源事件時,apmd將這些事件轉給設定用於響應這些事件的腳本。根據上面的命令,運行的腳本應該是/etc/sysconfig/apm-scripts/apmscript。所用的文件取決於選項"- P"。

除了上述的電量不足和電量變化設置外,大多數給與響應的電源事件僅在apmscript文件中有所提及。如果想了解您機器的電源管理情況的話,看看該文件的內容便一目了然了。在FedoraCore中,要想添加你自已的要給與響應的電源事件,你必須建立自己的腳本。默認時的apmscript是文件/etc/sysconfig/apm-scripts/apmcontinue。該文件處理以下事件:

1.掛起--當你的筆記本電腦進入掛起或待機狀態後,文件apmscript會停止所有音頻處理程序,掛其所有硬盤驅動器操作,關閉任何NFS連接,關閉網絡連接以及pcmcia卡。

2.恢復--在復原時,apmscript會還原所有在掛起時停止的事件。

3.更換電源--當機器電源發生變化時,腳本會做出反應:如果使用交流電源,就讓機器運行於高性能狀態;如果使用電池,則讓機器運行於更加節電的狀態。

4.更換電池--如果電池缺電,該事件將使apm停止所有服務,並進入極限節電模式。

5.開機--啟動機器時,apmscript會首先檢查apmcontinue文件,除非你在該文件中設置了啟動時要做的事,否則該腳本什麼也不干。

6.停機--與開機時一樣,停機時apmscript會首先檢查apmcontinue文件,除非你在該文件中設置了啟動時要做的事,否則該腳本什麼也不干。

在apmcontinue文件中還可以有其他事件(默認時並不存在),用來響應其它選定的各種事件。此外,你還可以建立/etc/sysconfig/apm-scripts/apmcontinue腳本,然後讓它來響應存放在像apmscript這樣的文件中的各種事件。

如果只是隨便的查看一下APM服務的話,可以使用不帶參數的apm命令,這樣能看到電池供電狀況或是否使用交流電源之類的報告:

# apm
AC on-line, battery charging: 100%

你還可以讓你的筆記本電腦進入掛起模式(apm-s)或待機模式(apm-S)。當接通交流電源後,筆記本電腦會忽略所有由APM(apm-i)產生的掛起和待機事件。

三、使用ACPI管理電源

與APM類似,ACPI也運行一個守護進程來偵聽電源事件,然後將這些事件傳遞給某個程序來進行處理。這種情況下,我們可以通過啟用acpid服務來運行acpid守護進程:

# chkconfig acpid on
# service acpid restart

再強調一下,一定要先關閉你不想要的電源管理服務。對此而言,就是要關閉apmd,即:

# chkconfig apmd off
# chkconfig apmd stop

ACPI只能運行在內核中已經激活了ACPI的Linux系統上,否則,你必須在啟動時通過啟動選項ACPI=force來手動激活它。另外,你還需要在BIOS中激活ACPI。如果在/proc/acpi/event文件中有與ACPI事件相關的內容,則說明ACPI已在工作。

Acpid會監視來自於/proc/acpi/events中的每個事件,然後將這些事件跟/etc/acpi/events目錄下的各文件中的各項進行匹配。默認的情況下,該目錄下只有一個文件,即sample.conf,其中存放著ACPI事件和相應的處理,如:

# ACPID 配置舉例
event=button/power.*
action=/sbin/shutdown -h now

在該例中,當收到button/power.*事件後,系統立即執行shutdown命令,因為命令後邊帶有- h now選項。要配置您自己的處理ACPI事件的動作,可以將您的文件(你必須是超級用戶)添加到/etc/acpi/events目錄中。要注意的是,該文件內容的格式必須與該目錄下其他文件一致。要了解這些文件的確切格式,可以通過 "man acpid" 命令來進行進一步學習。當你列出的事件出現時, "action="行中的命令就會作為超級用戶運行。

若要尋找事件名稱的話,可以使用命令cat/proc/acpi/event。如果要查看acpid的活動,可以查看/var/log/acpid文件的內容。改變幾次電源狀態,如拔下插頭、再插上、按掛起鍵等等,然後看看哪些事件被記錄在日志文件中了。

四、用hdparm修改電源設置

如果您正在使用筆記本電腦的話,你可以使用hdparm的諸多選項來控制電量的消耗。某些選項會立即生效,如讓硬盤驅動器進入睡眠模式;而其他選項會在一段時間後才生效,如在某段時間內硬盤一直處於非活動狀態的話,就停轉硬盤驅動器。

要了解機器的IDE電源模式狀態,可以鍵入下列命令:

# hdparm -C /dev/hda
/dev/hda:
drive state is: active/idle

這表示電源模式設為正常運行。如果驅動器不支持該項功能,那麼驅動器狀態顯示為"unknown"。為了節電,最常用的做法是為spindown模式(-S)設一個比較低的值。甚而有人認為spindown的最低值(五秒鐘的空閒時間)既能全面改善電池續航時間,又不至於嚴重影響性能。我們可以用hdparm命令加"-S"選項來規定硬盤進入spindown模式的閒置時間,如果"-S"後跟隨的數字介於0到240之間,那麼該值乘以5就是實際的進入spindown模式的閒置時間(以秒為單位)。因此,下例中的值3的含義是讓磁盤驅動器在閒置15秒後入待機模式(硬盤會停轉):

# hdparm -S3 /dev/hda
/dev/hda:
sotting standby to 3 (15 seconds)

注意:當-S的取值范圍介於241到251之間時,那麼該值減去240後乘以30就是實際的進入spindown模式的閒置時間(以分鐘為單位)。所以,241把停轉的閒置時間設為30分鐘,而251將其設為5.5小時。這一點使用時容易混淆,請讀者一定注意。你可以通過-y選項讓硬盤自動進入待機模式,如下所示:

# hdparm -y /dev/hda
/dev/hda:
issuing standby command

同時,你也能夠通過-Y選項進入睡眠模式:

# hdparm -Y /dev/hda
/dev/hda:
issuing sleep command

當再次需用硬盤時,Linux將自動啟動它。

五、小結

上面我們對Linux下三種常見的電源管理工具進行了討論,我想您現在已經清楚如何設置Linux本本的電源管理了,那就趕緊試試吧--什麼?你用的是台式機,那等有機會再試也不算遲呀!

Copyright © Linux教程網 All Rights Reserved