powersave
套件負責處理先前說明的所有省電功能。由於減低能源消耗的需求普遍提高,因此它的部分功能對工作站和伺服器也很重要,例如暫停、待命或 CPU 頻率比例等。
此套件包含電腦的所有電源管理功能。它支援使用 ACPI、APM、IDE 硬碟和 PowerNow! 或 SpeedStep 技術的硬體。來自套件 apmd
、acpid
、ospmd
和 cpufreqd
(現在為 cpuspeed
) 的功能已合併於 powersave
套件中。這些套件中的精靈 (做為 acpi 事件多工器的 acpid 除外) 不得與省電精靈同時執行。
即使您的系統不包含上述所有硬體元件,仍可以使用 powersave 精靈來控制省電功能。因為 ACPI 和 APM 互斥,僅可在電腦上使用其中一種系統。精靈會自動偵測硬體組態的變化。
powersave 的組態散佈於數個檔案。各檔案中所列的每個組態選項都包含其他有關其功能的文件。
/etc/sysconfig/powersave/common
此檔案包含 powersave 精靈的一般設定。例如,可以增加變數 DEBUG
的值以增加 /var/log/messages
中的偵錯訊息數量。
/etc/sysconfig/powersave/events
powersave 精靈需要此檔案以處理系統事件。事件可以是指定的外部動作或精靈本身執行的動作。對於外部動作,精靈會嘗試執行 /usr/lib/powersave/scripts/
中的執行檔 (通常是 Bash 程序檔)。預先定義的內部動作為:
ignore
throttle
dethrottle
suspend_to_disk
suspend_to_ram
standby
do_suspend_to_disk
do_suspend_to_ram
do_standby
notify
screen_saver
reread_cpu_capabilities
throttle
以 MAX_THROTTLING
中定義的值減緩處理器。此值視目前的配置而定。dethrottle
將處理器設為完整效能。suspend_to_disk
、suspend_to_ram
和 standby
會觸發休眠模式的系統事件。這三個動作一般負責觸發休眠模式,但是它們應該永遠與特定系統事件關聯。
目錄 /usr/lib/powersave/scripts
包含處理事件的程序檔:
在暫停或待命之後,如果螢幕發生錯置時會很有用。
儲存設定並從 GNOME、KDE 或其他視窗管理員登出。
儲存 GNOME 或 KDE 設定並關閉系統。
執行 /etc/sysconfig/powersave/disk
中的磁碟設定。
例如,如果設定 EVENT_GLOBAL_SUSPEND2DISK="prepare_suspend_to_disk do_suspend_to_disk"
變數,兩個程序檔或動作會在使用者給 powersaved 休眠模式指令 suspend to disk
時,立即以特定順序處理。精靈會執行外部程序檔 /usr/lib/powersave/scripts/prepare_suspend_to_disk
。在此程序檔成功處理之後,精靈會執行內部動作 do_suspend_to_disk
,並在程序檔卸載關鍵模組並停止服務之後,將電腦設為休眠模式。
休眠按鈕事件的動作可在 EVENT_BUTTON_SLEEP="notify suspend_to_disk"
中修改。在此例下,使用者從 X 的快顯視窗或主控台的訊息中收到暫停通知。之後,會產生 EVENT_GLOBAL_SUSPEND2DISK
事件,導致執行上述動作及安全系統暫停模組。您可以用 /etc/sysconfig/powersave/common
中的 NOTIFY_METHOD
變數自定 notify
內部動作。
/etc/sysconfig/powersave/cpufreq
包含最佳化動態 CPU 頻率設定以及應使用使用者空間或核心執行方式的變數。
/etc/sysconfig/powersave/battery
包含電池限制和其他電池特定設定。
/etc/sysconfig/powersave/sleep
在此檔案中,啟用休眠模式並決定應卸載哪個關鍵模組,以及在暫停或待命事件之前應停止的服務。當系統繼續時,這些模組會重新載入並啟動服務。例如,您甚至可以延遲觸發的休眠模式以儲存檔案。預設值主要考量 USB 和 PCMCIA 模組。特定模組通常會造成暫停或待命的錯誤。請參閱第 28.5.4 節「疑難排解」以取得關於辨識錯誤的詳細資訊。
/etc/sysconfig/powersave/thermal
啟用冷卻和熱控制。關於此主題的詳細資訊也可在檔案 /usr/share/doc/packages/powersave/README.thermal
中找到。
/etc/sysconfig/powersave/disk
此組態檔控制針對硬碟進行的動作和設定。
/etc/sysconfig/powersave/scheme_*
這些為搭配特定部署狀況電源消耗的不同配置。數種配置已預先設定好並可供使用。可在此儲存自定配置。
有三種基本 ACPI 休眠模式和兩種 APM 休眠模式:
將全部記憶體內容儲存到硬碟。電腦完全關閉,不消耗任何電力。此休眠模式預設為啟用,而且應該適用於所有系統。
將所有設備的狀態儲存到主要記憶體。僅主要記憶體繼續消耗電力。雖然許多機器可以使用睡眠模式,但 SUSE Linux Enterprise 一般不支援。
睡眠模式是預設啟用的,但僅在目前機器列於支援此模式的資料庫時才會執行。資料庫包含於 suspend
套件所提供的 /usr/sbin/s2ram
二進位檔。
若要修改預設參數 (例如,全面停用 suspend to ram
睡眠模式,或即使機器未列於資料庫中也強制執行此模式),請在 /etc/sysconfig/powersave/sleep
組態檔中尋找可用選項的更多資訊。
若要進一步瞭解 s2ram
二進位檔,請參閱 /usr/share/doc/packages/suspend
中的 README 檔案。
關閉部份設備 (視製造商而定)。
請確定檔案 /etc/sysconfig/powersave/events
中的下列預設選項設為暫停、待命和繼續的正確處理 (預設值為在安裝 SUSE Linux Enterprise 之後):
EVENT_GLOBAL_SUSPEND2DISK= "prepare_suspend_to_disk screen_saver do_suspend_to_disk" EVENT_GLOBAL_SUSPEND2RAM= "prepare_suspend_to_ram screen_saver do_suspend_to_ram" EVENT_GLOBAL_STANDBY= "prepare_standby screen_saver do_standby" EVENT_GLOBAL_RESUME_SUSPEND2DISK= "restore_after_suspend_to_disk" EVENT_GLOBAL_RESUME_SUSPEND2RAM= "restore_after_suspend_to_ram" EVENT_GLOBAL_RESUME_STANDBY= "restore_after_standby"
在檔案 /etc/sysconfig/powersave/battery
中,定義三種電池充電強度 (以百分比),當達到時會觸發警示或特定動作。
BATTERY_WARNING=12 BATTERY_LOW=7 BATTERY_CRITICAL=2
當充電強度掉到特定限制之下,要執行的動作或程序檔定義於組態檔 /etc/sysconfig/powersave/events
中。按鈕的標準動作可以修改為如 第 28.5.1 節「設定 powersave 套件」 中所述。
EVENT_BATTERY_NORMAL="ignore" EVENT_BATTERY_WARNING="notify" EVENT_BATTERY_LOW="notify" EVENT_BATTERY_CRITICAL="wm_shutdown"
系統行為可與電源供應類型搭配。當系統從 AC 電源供應中斷連接並以電池操作時,系統的電源消耗應減少。相似地,系統一連接到 AC 電源供應時,效能應自動增加。CPU 頻率、IDE 的省電功能和許多其他參數均可修改。
當電腦連接到或從 AC 電源供應中斷連接時,要執行的動作定義於 /etc/sysconfig/powersave/events
中。請在 /etc/sysconfig/powersave/common
中選取要使用的配置:
AC_SCHEME="performance" BATTERY_SCHEME="powersave"
配置儲存在 /etc/sysconfig/powersave
中的檔案內。檔案名稱的格式為 scheme_name-of-the-scheme
。範例參考兩種配置:scheme_performance
與 scheme_powersave
。performance
、powersave
、presentation
,和 acoustic
都是預先配置的。藉由 第 28.6 節「YaST電源管理模組」 中描述的 YaST 電源管理模組的協助,可編輯、建立、刪除現有配置或和不同電源供應狀態相關聯。
如果您使用 ACPI,可以控制系統對 ACPI 按鈕 (電源、休眠、開蓋、關蓋) 的回應。請在 /etc/sysconfig/powersave/events
中設定動作的執行。請參閱此組態檔以取得個別選項的說明。
當按下電源按鈕時,系統回應為關閉對應視窗管理員 (KDE、GNOME、fvwm 等)。
當按下休眠按鈕時,系統設為休眠 (suspend-to-disk) 模式。
當開啟蓋子時,不發生任何事。
當關上蓋子時,會啟用螢幕保護程式。
如果精靈遭遇未知的事件,就會發生此事件。未知的事件包含某些機器上的 ACPI 快速鍵。
如果 CPU 負載在特定時間未超過特定限制,則可以進一步節流 CPU 效能。在 PROCESSOR_IDLE_LIMIT
中指定負載限制,在 CPU_IDLE_TIMEOUT
中指定逾時。如果 CPU 負載未超過限制的時間大於逾時,則會啟用 EVENT_PROCESSOR_IDLE
中設定的事件。如果 CPU 再度忙碌,便執行 EVENT_PROCESSOR_BUSY
。
所有錯誤訊息和警示會記錄在檔案 /var/log/messages
中。如果您找不到所需資訊,請使用 /etc/sysconfig/powersave/common
檔案中的 DEBUG
提高 powersave 訊息的資料詳細程度。將變數值增加到 7
或甚至 15
,並重新啟動精靈。/var/log/messages
中更詳細的錯誤訊息可協助您找出錯誤。下列小節涵蓋 powersave 最常見的問題。
如果您遭遇到 ACPI 的問題,請使用指令 dmesg|grep -i acpi
來搜尋 ACPI 特定訊息的 dmesg 輸出。必須更新 BIOS 以解決問題。請到您筆記型電腦製造商的首頁,尋找更新的 BIOS 版本並安裝。請詢問製造商以符合最新 ACPI 規格。在 BIOS 更新後,如果錯誤持續發生,請繼續以更新的 DSDT 取代您 BIOS 中的錯誤 DSDT 表格:
從 http://acpi.sourceforge.net/dsdt/index.php 下載您系統的 DSDT。檢查檔案是否已解壓縮,並以所示副檔名 .aml
(ACPI 機器語言) 編譯。如果是此狀況,請繼續步驟 3。
如果下載的表格副檔名為 .asl
(ACPI 原始語言),請以 iasl (pmtools
套件) 編譯。請輸入 iasl -sa file.asl
指令。最新版本的 iasl (Intel ACPI 編譯器) 可在 http://developer.intel.com/technology/iapc/acpi/downloads.htm 中找到。
將檔案 DSDT.aml
複製到任何位置 (建議 /etc/DSDT.aml
)。編輯 /etc/sysconfig/kernel
並將路徑與 DSDT 檔案搭配。啟動 mkinitrd (套件 mkinitrd
)。只要您安裝核心並使用 mkinitrd 來建立 initrd
,當系統啟動時,修改的 DSDT 便會整合並載入。
請參考核心來源 (kernel-source
) 以查看是否支援您的處理器。您需要特殊核心模組或模組選項以啟用 CPU 頻率控制。此資訊可在 /usr/src/linux/Documentation/cpu-freq/*
中找到。如果需要特殊核心模組或模組選項,可在檔案 /etc/sysconfig/powersave/cpufreq
中藉由變數 CPUFREQD_MODULE
和 CPUFREQD_MODULE_OPTS
加以設定。
由於 DSDT 實做 (BIOS) 的錯誤,ACPI 系統在暫停或待命時可能會有問題。若這樣的話,請更新 BIOS。
在 ACPI 與 APM 系統上:當系統嘗試卸載錯誤模組時,系統會停止或不觸發暫停事件。如果您不卸載模組或停止服務 (導致無法成功暫停),也可能發生此狀況。在兩種情況下,都請嘗試辨識無法啟動休眠模式的錯誤模組。在此狀況下,在 /var/log/suspend2ram.log
和 /var/log/suspend2disk.log
中的省電精靈所產生的記錄檔非常有用。如果電腦無法進入休眠模式,原因在於最後卸載的模組。請操作 /etc/sysconfig/powersave/sleep
中的下列設定,在暫停或待命之前卸載有問題的模組。
UNLOAD_MODULES_BEFORE_SUSPEND2DISK="" UNLOAD_MODULES_BEFORE_SUSPEND2RAM="" UNLOAD_MODULES_BEFORE_STANDBY="" SUSPEND2DISK_RESTART_SERVICES="" SUSPEND2RAM_RESTART_SERVICES="" STANDBY_RESTART_SERVICES=""
如果您在變動網路環境中或以遠端裝載檔案系統 (如 Samba 和 NIS) 的連接使用暫停或待命,請在上述變數中使用自動裝載器以裝載或新增對應服務,例如 smbfs
或 nfs
。如果應用程式在暫停或待命之前存取遠端裝載檔案系統,則服務無法正確停止,而檔案系統無法正確取消裝載。在系統繼續之後,檔案系統可能損毀並必須重新裝載。
/usr/share/doc/packages/powersave
—本地省電精靈文件
http://powersave.sourceforge.net—最新的省電精靈文件
http://www.opensuse.org/Projects_Powersave—openSUSE wiki 中的專案頁面