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”表示,与性能状态位于同一目录中。