ACPI (進階組態與電源介面) 可讓作業系統設定和控制個別的硬體元件。ACPI 可取代 PnP 與 APM。它能提供一些資訊,包括電池、變電器、溫度、風扇以及關閉蓋子
或電池電力不足
等系統事件。
BIOS 會提供一些表格,內含關於個別元件與硬體的存取方法等資訊。作業系統會使用這此資訊來執行任務,像是指定中斷或啟用和停用元件。因為作業系統會執行儲存於 BIOS 中的指令,所以 BIOS 實行會決定其功能。ACPI 能偵測和載入的表格在 /var/log/boot.msg 中可以找到。請參閱節 15.2.3, 疑難排解,以取得更多有關 ACPI 問題疑難排解的資訊。
CPU 有三種省電方法。依據電腦的操作模式的不同,這些方法可合併使用。省電也表示能降低系統溫度,減低風扇的使用頻率。
PowerNow! 與 Speedstep 是 AMD 與 Intel 分別針對此技術所使用的實作。不過,此技術也套用於其他製造商的處理器中。CPU 的時脈頻率及其核心電壓會同時降低,產生高於線性的省電效能。也就是當頻率減半 (效能減半),使用的電量卻能遠低於原本的一半。此技術與 ACPI 無關。CPU 頻率比例的執行有兩種主要的方式—利用核心本身或利用使用者空間應用程式。因此,有不同的核心調節器,這可在 /sys/devices/system/cpu/cpu*/cpufreq/ 下設定。
如果設定使用者空間調節器,核心會將 CPU 頻率比例的控制權交給使用者空間應用程式 (通常是一個精靈)。在 SUSE Linux Enterprise Server 套裝軟體中,此精靈為 powersaved 套件。使用此執行方式時,CPU 頻率會根據目前的系統負載來調整。預設狀態下會使用核心執行方式之一。但是,對某些硬體,或特定的處理器或驅動程式而言,使用者空間執行仍是唯一可行的解決方案。
這是動態 CPU 頻率規則的核心執行方式,應該適用於大部分系統。只要系統負載一過高,就立即提高 CPU 頻率。系統負載降低,則會隨之降低。
此調節器類似要求式調節器,但所用的規則比較保守。系統負載過高的情況必須持續一段時間後,才會提高 CPU 頻率。
CPU 頻率固定設為可能的最小值。
CPU 頻率固定設為可能的最大值。
此技術會忽略部分 CPU 的時脈訊號脈衝。到達 25% 調節時,會省略四分之一脈衝,到達 87.5% 時則每八次脈衝僅有一次會到達處理器。不過,節省用電量稍低於線性。通常調節功能僅在無此頻率比例時使用,或是為了最大化省電效果時使用。此外,此技術必須使用特定程序來進行控制。系統介面是 /proc/acpi/processor/*/throttling。
作業系統會在沒事可做時使處理器進入睡眠。在此情況中,作業系統會傳送 halt 指令給 CPU。一共有三種狀態:C1、C2 和 C3。在最節省的 C3 狀態中,連處理器快取與主記憶體間的同步化也會暫停。因此,僅能在沒有任何設備透過 Bus master 活動來修改主記憶體內容時可以套用此狀態。有些驅動程式會禁止使用 C3。目前的狀態會顯示在 /proc/acpi/processor/*/power 中。
頻率比例及調節只在處理器忙碌時使用,因為在處理器閒置時,一定會套用最節省的 C 狀態。如果 CPU 正忙碌,頻率比例是建議的省電方法。通常處理器僅有部份的工作負載。在此情況中,可以使用較低的頻率。通常,最佳方法是使用核心要求式調節器或精靈 (例如 powersaved) 來控制動態頻率比例。對電池的操作而言,靜態設定為較低頻率比較好,也可以用在您想降低電腦溫度或減低噪音時。
調節應做最後手段使用,例如,在高度系統負載下仍要延伸電池操作時間時。不過在調節過多時,有些系統無法運作順暢。此外,當 CPU 要做的事不多時,調節 CPU 是無意義的動作。
ACPI 公用程式包含僅顯示電池充電等級與溫度等資訊的工具 (acpi、klaptopdaemon 及 等等。)、協助在 /proc/acpi 中存取結構或協助監控變更 (akpi、acpiw、gtkacpiw) 的工具,以及在 BIOS 中編輯 ACPI 表格的工具 (pmtools 套件)。
共有兩種不同類型的問題。一方面是核心的 ACPI 程式碼包含無法及時偵測到的錯誤。在這種情況中,將會有可供下載的解決方案。不過通常問題是因 BIOS 而起。有時,會刻意在 BIOS 中整合與 ACPI 規格不符的技術,以避免在其他常見作業系統中的 ACPI 實作錯誤。會在黑名單中將那些在 ACPI 實行中有重大錯誤的硬體元件記錄下來,以避免 Linux 核心對這些元件使用 ACPI。
發生問題時要做的第一件事是更新 BIOS。如果電腦未能開機,下列中的某一個開機參數也許有幫助:
不使用 ACPI 來設定 PCI 設備。
僅執行一個簡單的資源組態。不將 ACPI 用於其他目的。
關閉 ACPI。
警告: 未使用 ACPI 的開機問題
有些較新的機器 (尤其是 SMP 系統及 AMD64 系統) 需透過 ACPI 以正確設定硬體。關閉這些機器的 ACPI 會發生隨之而來的問題。
有時,透過 USB 或 FireWire 連接的硬體會另機器混淆。如果機器拒絕開機,則拔除所有不需要的硬體插頭,並再試一次。
開機後,可使用 dmesg | grep -2i acpi 指令來監控系統的開機訊息 (或所有訊息,因為也可能是 ACPI 以外的因素構成問題)。如果是在分析 ACPI 表格時發生問題,則最重要的 DSDT 表格可用改良版本來替換。在此情況中,會忽略 BIOS 的錯誤 DSDT。程序在 節 15.4, 疑難排解 中描述。
在核心組態中,有個啟用 ACPI 除錯訊息的切換。如果已編譯並安裝好一個具有 ACPI 除錯能力的核心,則專家將能取得詳細資訊支援,以便搜尋錯誤。
如果您曾遇到 BIOS 問題或硬體問題,建議您聯絡製造商。尤其是哪些一直未提供 Linux 支援的製造商,更應該出面解決這些問題。唯有讓製造商得知他們有不少使用 Linux 的客戶,他們才會嚴肅地處理這些問題。
http://www.cpqlinux.com/acpi-howto.html (詳細的 ACPI HOWTO,內含 DSDT 修補程式)
http://www.intel.com/technology/iapc/acpi/index.htm (進階組態與電源介面)
http://www.lesswatts.org/projects/acpi/ (Sourceforge 的 ACPI4Linux 計劃)
http://www.poupinou.org/acpi/ (Bruno Ducrot 的 DSDT 修補程式)