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本本的電源管理了,那就趕緊試試吧--什麼?你用的是台式機,那等有機會再試也不算遲呀!