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