← Documents Documentation/admin-guide/acpi/fan_performance_states.rst GitHub 원문 ↗

Linux 6.18.37 · Administration / ACPI

ACPI Fan Performance States

_FPS 상태 필드, _FIF fine-grain control과 _FST fan-speed feedback의 sysfs 표현을 설명합니다.

Source pathDocumentation/admin-guide/acpi/fan_performance_states.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

Performance states

fan_performance_states.rst:1-63

state* file의 5개 field와 단위, not-defined 처리를 설명합니다.

Fine-grain control

fan_performance_states.rst:64-81

_FIF/_FSL과 thermal cooling-device를 통한 세밀한 속도 제어를 설명합니다.

Performance feedback

fan_performance_states.rst:82-90

_FST current fan speed를 fan_speed_rpm으로 제공합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ===========================
4 ACPI Fan Performance States
5 ===========================
6
7 When the optional _FPS object is present under an ACPI device representing a
8 fan (for example, PNP0C0B or INT3404), the ACPI fan driver creates additional
9 "state*" attributes in the sysfs directory of the ACPI device in question.
10 These attributes list properties of fan performance states.
11
12 For more information on _FPS refer to the ACPI specification at:
13
14 http://uefi.org/specifications
15
16 For instance, the contents of the INT3404 ACPI device sysfs directory
17 may look as follows::
18
19 $ ls -l /sys/bus/acpi/devices/INT3404:00/
20 total 0
21 ...
22 -r--r--r-- 1 root root 4096 Dec 13 20:38 state0
23 -r--r--r-- 1 root root 4096 Dec 13 20:38 state1
24 -r--r--r-- 1 root root 4096 Dec 13 20:38 state10
25 -r--r--r-- 1 root root 4096 Dec 13 20:38 state11
26 -r--r--r-- 1 root root 4096 Dec 13 20:38 state2
27 -r--r--r-- 1 root root 4096 Dec 13 20:38 state3
28 -r--r--r-- 1 root root 4096 Dec 13 20:38 state4
29 -r--r--r-- 1 root root 4096 Dec 13 20:38 state5
30 -r--r--r-- 1 root root 4096 Dec 13 20:38 state6
31 -r--r--r-- 1 root root 4096 Dec 13 20:38 state7
32 -r--r--r-- 1 root root 4096 Dec 13 20:38 state8
33 -r--r--r-- 1 root root 4096 Dec 13 20:38 state9
34 -r--r--r-- 1 root root 4096 Dec 13 01:00 status
35 ...
36
37 where each of the "state*" files represents one performance state of the fan
38 and contains a colon-separated list of 5 integer numbers (fields) with the
39 following interpretation::
40
41 control_percent:trip_point_index:speed_rpm:noise_level_mdb:power_mw
42
43 * ``control_percent``: The percent value to be used to set the fan speed to a
44 specific level using the _FSL object (0-100).
45
46 * ``trip_point_index``: The active cooling trip point number that corresponds
47 to this performance state (0-9).
48
49 * ``speed_rpm``: Speed of the fan in rotations per minute.
50
51 * ``noise_level_mdb``: Audible noise emitted by the fan in this state in
52 millidecibels.
53
54 * ``power_mw``: Power draw of the fan in this state in milliwatts.
55
56 For example::
57
58 $cat /sys/bus/acpi/devices/INT3404:00/state1
59 25:0:3200:12500:1250
60
61 When a given field is not populated or its value provided by the platform
62 firmware is invalid, the "not-defined" string is shown instead of the value.
63
64 ACPI Fan Fine Grain Control
65 =============================
66
67 When _FIF object specifies support for fine grain control, then fan speed
68 can be set from 0 to 100% with the recommended minimum "step size" via
69 _FSL object. User can adjust fan speed using thermal sysfs cooling device.
70
71 Here use can look at fan performance states for a reference speed (speed_rpm)
72 and set it by changing cooling device cur_state. If the fine grain control
73 is supported then user can also adjust to some other speeds which are
74 not defined in the performance states.
75
76 The support of fine grain control is presented via sysfs attribute
77 "fine_grain_control". If fine grain control is present, this attribute
78 will show "1" otherwise "0".
79
80 This sysfs attribute is presented in the same directory as performance states.
81
82 ACPI Fan Performance Feedback
83 =============================
84
85 The optional _FST object provides status information for the fan device.
86 This includes field to provide current fan speed in revolutions per minute
87 at which the fan is rotating.
88
89 This speed is presented in the sysfs using the attribute "fan_speed_rpm",
90 in the same directory as performance states.
91

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

ACPI fan 성능 상태

1-63

이 GPL-2.0 문서는 fan을 나타내는 ACPI device, 예를 들어 `PNP0C0B` 또는 `INT3404` 아래 선택적 `_FPS` object가 있을 때의 sysfs interface를 설명합니다. ACPI fan driver는 해당 device directory에 fan 성능 상태 속성을 나열하는 `state*` attribute를 추가합니다. `_FPS`의 자세한 내용은 `http://uefi.org/specifications`의 ACPI specification을 참조합니다.

`INT3404:00` ACPI device의 sysfs directory에는 `state0`부터 `state11` 같은 read-only file과 `status`가 나타날 수 있습니다.

 $ 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*` file은 fan 성능 상태 하나를 나타내며, colon으로 구분한 정수 field 5개를 다음 순서로 담습니다.

  control_percent:trip_point_index:speed_rpm:noise_level_mdb:power_mw
Fan performance-state fields
FieldMeaningRange/unit
control_percent`_FSL` object로 특정 fan speed를 설정할 때 사용할 percent0-100%
trip_point_index이 성능 상태에 대응하는 active cooling trip point 번호0-9
speed_rpmFan 회전 속도revolutions per minute
noise_level_mdb이 상태에서 fan이 내는 가청 소음millidecibels
power_mw이 상태에서 fan이 소비하는 전력milliwatts

`state*` file의 colon-separated field를 순서대로 해석합니다.

예를 들어 `state1`의 `25:0:3200:12500:1250`은 control 25%, trip point 0, 3200 RPM, 12500 millidecibels, 1250 mW를 뜻합니다. Field가 채워지지 않았거나 platform firmware 값이 유효하지 않으면 숫자 대신 `not-defined`를 표시합니다.

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

Fan fine-grain control

64-81

`_FIF` object가 fine-grain control 지원을 명시하면 `_FSL` object를 통해 권장 최소 `step size` 단위로 fan speed를 0~100% 사이에서 설정할 수 있습니다. 사용자는 thermal sysfs cooling device로 속도를 조절합니다.

Fan performance state의 `speed_rpm`을 기준 속도로 보고 cooling device의 `cur_state`를 바꿔 설정할 수 있습니다. Fine-grain control을 지원하면 미리 정의된 performance state에 없는 다른 속도도 선택할 수 있습니다.

같은 performance-state directory의 `fine_grain_control` attribute는 지원할 때 `1`, 지원하지 않을 때 `0`을 표시합니다.

Fine-grain fan control
_FIF advertises fine-grain supportRead reference speed_rpmChange cooling-device cur_state_FSL sets 0-100% speed
fine_grain_control = 1Select intermediate speeds not listed in state*

Firmware capability와 thermal cooling-device control의 연결입니다.

Fan 성능 feedback

82-90

선택적 `_FST` object는 fan device의 status information을 제공합니다. 여기에는 fan이 현재 회전하는 속도를 revolutions per minute 단위로 나타내는 field가 포함됩니다.

현재 속도는 performance state와 같은 sysfs directory의 `fan_speed_rpm` attribute로 노출됩니다.

Fan capability objects and attributes
ACPI objectCapabilityRelevant sysfs
_FPSPerformance statesstate*
_FIFFine-grain control capabilityfine_grain_control
_FSTCurrent fan status and speedfan_speed_rpm

ACPI object가 만드는 핵심 fan sysfs interface를 대응시킵니다.