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