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
:风扇在此状态下发出的可听噪声,以毫分贝为单位。power_mw
:风扇在此状态下的功耗,以毫瓦为单位。
例如
$cat /sys/bus/acpi/devices/INT3404:00/state1
25:0:3200:12500:1250
当给定字段未填充或平台固件提供的值无效时,将显示“not-defined”字符串而不是该值。
ACPI 风扇精细粒度控制¶
当 _FIF 对象指定支持精细粒度控制时,可以使用 _FSL 对象以建议的最小“步长”将风扇速度从 0 设置为 100%。用户可以使用热 sysfs 冷却设备调整风扇速度。
在这里,可以使用参考速度 (speed_rpm) 查看风扇性能状态,并通过更改冷却设备 cur_state 来设置它。如果支持精细粒度控制,则用户还可以调整到性能状态中未定义的其他速度。
精细粒度控制的支持通过 sysfs 属性 “fine_grain_control” 表示。如果存在精细粒度控制,则此属性将显示 “1”,否则显示 “0”。
此 sysfs 属性与性能状态位于同一目录中。
ACPI 风扇性能反馈¶
可选的 _FST 对象提供风扇设备的状态信息。这包括提供风扇当前转速(以每分钟转数为单位)的字段。
此速度使用属性 “fan_speed_rpm” 在 sysfs 中显示,与性能状态位于同一目录中。