ACPI 風扇效能狀態

當代表風扇的 ACPI 裝置(例如 PNP0C0B 或 INT3404)下存在可選的 _FPS 物件時,ACPI 風扇驅動程式會在該 ACPI 裝置的 sysfs 目錄中建立額外的“state*”屬性。這些屬性列出了風扇效能狀態的屬性。

有關 _FPS 的更多資訊,請參閱 ACPI 規範:

http://uefi.org/specifications

例如,INT3404 ACPI 裝置 sysfs 目錄的內容可能如下所示:

$ ls -l /sys/bus/acpi/devices/INT3404:00/
total 0
...
-r--r--r-- 1 root root 4096 Dec 13 20:38 state0
-r--r--r-- 1 root root 4096 Dec 13 20:38 state1
-r--r--r-- 1 root root 4096 Dec 13 20:38 state10
-r--r--r-- 1 root root 4096 Dec 13 20:38 state11
-r--r--r-- 1 root root 4096 Dec 13 20:38 state2
-r--r--r-- 1 root root 4096 Dec 13 20:38 state3
-r--r--r-- 1 root root 4096 Dec 13 20:38 state4
-r--r--r-- 1 root root 4096 Dec 13 20:38 state5
-r--r--r-- 1 root root 4096 Dec 13 20:38 state6
-r--r--r-- 1 root root 4096 Dec 13 20:38 state7
-r--r--r-- 1 root root 4096 Dec 13 20:38 state8
-r--r--r-- 1 root root 4096 Dec 13 20:38 state9
-r--r--r-- 1 root root 4096 Dec 13 01:00 status
...

其中每個“state*”檔案代表風扇的一種效能狀態,包含一個由冒號分隔的 5 個整數(欄位)列表,其解釋如下:

control_percent:trip_point_index:speed_rpm:noise_level_mdb:power_mw
  • control_percent: 用於使用 _FSL 物件將風扇速度設定為特定水平的百分比值 (0-100)。

  • trip_point_index: 與此效能狀態對應的活動冷卻跳變點編號 (0-9)。

  • speed_rpm: 風扇每分鐘的轉速。

  • noise_level_mdb: 在此狀態下風扇發出的可聽噪聲,單位為毫分貝 (millidecibels)。

  • power_mw: 在此狀態下風扇的功耗,單位為毫瓦 (milliwatts)。

例如:

$cat /sys/bus/acpi/devices/INT3404:00/state1
25:0:3200:12500:1250

當給定欄位未填充或平臺韌體提供的值無效時,將顯示“not-defined”字串而不是該值。

ACPI 風扇細粒度控制

當 _FIF 物件指定支援細粒度控制時,風扇速度可以透過 _FSL 物件以建議的最小“步長”從 0% 設定到 100%。使用者可以使用 thermal sysfs 冷卻裝置調整風扇速度。

這裡,使用者可以檢視風扇效能狀態以獲取參考速度(speed_rpm),並透過更改冷卻裝置的 cur_state 來設定它。如果支援細粒度控制,使用者還可以調整到效能狀態中未定義的其他速度。

細粒度控制的支援透過 sysfs 屬性“fine_grain_control”表示。如果存在細粒度控制,此屬性將顯示“1”,否則顯示“0”。

此 sysfs 屬性與效能狀態位於同一目錄中。

ACPI 風扇效能反饋

可選的 _FST 物件提供風扇裝置的狀態資訊。這包括一個欄位,用於提供風扇當前每分鐘的轉速。

此速度在 sysfs 中使用屬性“fan_speed_rpm”表示,與效能狀態位於同一目錄中。