← Documents Documentation/hwmon/it87.rst GitHub 원문 ↗

Linux 6.18.37 · Hardware Monitoring

Kernel driver it87

ITE IT87 계열 LPC Super I/O의 온도·팬·전압 감시, 칩별 기능 차이, PWM 팬 제어를 설명합니다.

Source pathDocumentation/hwmon/it87.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약·해설

it87.rst:1-385

IT8603E부터 IT87952E와 SiS950까지 21개 장치 항목을 지원하며, LPC 접근, 온도·팬·전압 센서, VID, 16비트 타코미터, 수동 PWM과 구형 자동 팬 제어를 다룹니다.

문서 개요
항목
SourceDocumentation/hwmon/it87.rst
분량385 source lines
지원 장치 항목21
버스LPC, ISA 유사 I/O 포트
기본 감시온도 3, 팬 3, 전압 8, 경보, 침입 감지
팬 제어수동 PWM 및 일부 구형 칩 자동 모드

지원 범위와 핵심 제어 인터페이스입니다.

it87 감시 흐름
Super I/O 칩 ID와 주소 확인LPC I/O 포트 등록칩별 센서·팬 기능 판별1.5초 주기로 측정값·경보 갱신필요하면 PWM·온도 형식·오프셋 설정

칩 탐색에서 센서와 팬 제어까지의 순서입니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Kernel driver it87
2 ==================
3
4 Supported chips:
5
6 * IT8603E/IT8623E
7
8 Prefix: 'it8603'
9
10 Addresses scanned: from Super I/O config space (8 I/O ports)
11
12 Datasheet: Not publicly available
13
14 * IT8620E
15
16 Prefix: 'it8620'
17
18 Addresses scanned: from Super I/O config space (8 I/O ports)
19
20 * IT8628E
21
22 Prefix: 'it8628'
23
24 Addresses scanned: from Super I/O config space (8 I/O ports)
25
26 Datasheet: Not publicly available
27
28 * IT8705F
29
30 Prefix: 'it87'
31
32 Addresses scanned: from Super I/O config space (8 I/O ports)
33
34 Datasheet: Once publicly available at the ITE website, but no longer
35
36 * IT8712F
37
38 Prefix: 'it8712'
39
40 Addresses scanned: from Super I/O config space (8 I/O ports)
41
42 Datasheet: Once publicly available at the ITE website, but no longer
43
44 * IT8716F/IT8726F
45
46 Prefix: 'it8716'
47
48 Addresses scanned: from Super I/O config space (8 I/O ports)
49
50 Datasheet: Once publicly available at the ITE website, but no longer
51
52 * IT8718F
53
54 Prefix: 'it8718'
55
56 Addresses scanned: from Super I/O config space (8 I/O ports)
57
58 Datasheet: Once publicly available at the ITE website, but no longer
59
60 * IT8720F
61
62 Prefix: 'it8720'
63
64 Addresses scanned: from Super I/O config space (8 I/O ports)
65
66 Datasheet: Not publicly available
67
68 * IT8721F/IT8758E
69
70 Prefix: 'it8721'
71
72 Addresses scanned: from Super I/O config space (8 I/O ports)
73
74 Datasheet: Not publicly available
75
76 * IT8728F
77
78 Prefix: 'it8728'
79
80 Addresses scanned: from Super I/O config space (8 I/O ports)
81
82 Datasheet: Not publicly available
83
84 * IT8732F
85
86 Prefix: 'it8732'
87
88 Addresses scanned: from Super I/O config space (8 I/O ports)
89
90 Datasheet: Not publicly available
91
92 * IT8771E
93
94 Prefix: 'it8771'
95
96 Addresses scanned: from Super I/O config space (8 I/O ports)
97
98 Datasheet: Not publicly available
99
100 * IT8772E
101
102 Prefix: 'it8772'
103
104 Addresses scanned: from Super I/O config space (8 I/O ports)
105
106 Datasheet: Not publicly available
107
108 * IT8781F
109
110 Prefix: 'it8781'
111
112 Addresses scanned: from Super I/O config space (8 I/O ports)
113
114 Datasheet: Not publicly available
115
116 * IT8782F
117
118 Prefix: 'it8782'
119
120 Addresses scanned: from Super I/O config space (8 I/O ports)
121
122 Datasheet: Not publicly available
123
124 * IT8783E/F
125
126 Prefix: 'it8783'
127
128 Addresses scanned: from Super I/O config space (8 I/O ports)
129
130 Datasheet: Not publicly available
131
132 * IT8786E
133
134 Prefix: 'it8786'
135
136 Addresses scanned: from Super I/O config space (8 I/O ports)
137
138 Datasheet: Not publicly available
139
140 * IT8790E
141
142 Prefix: 'it8790'
143
144 Addresses scanned: from Super I/O config space (8 I/O ports)
145
146 Datasheet: Not publicly available
147
148 * IT8792E/IT8795E
149
150 Prefix: 'it8792'
151
152 Addresses scanned: from Super I/O config space (8 I/O ports)
153
154 Datasheet: Not publicly available
155
156 * IT87952E
157
158 Prefix: 'it87952'
159
160 Addresses scanned: from Super I/O config space (8 I/O ports)
161
162 Datasheet: Not publicly available
163
164 * SiS950 [clone of IT8705F]
165
166 Prefix: 'it87'
167
168 Addresses scanned: from Super I/O config space (8 I/O ports)
169
170 Datasheet: No longer be available
171
172
173 Authors:
174 - Christophe Gauthron
175 - Jean Delvare <jdelvare@suse.de>
176
177
178 Module Parameters
179 -----------------
180
181 * update_vbat bool
182 0 if vbat should report power on value, 1 if vbat should be updated after
183 each read. Default is 0. On some boards the battery voltage is provided
184 by either the battery or the onboard power supply. Only the first reading
185 at power on will be the actual battery voltage (which the chip does
186 automatically). On other boards the battery voltage is always fed to
187 the chip so can be read at any time. Excessive reading may decrease
188 battery life but no information is given in the datasheet.
189
190 * fix_pwm_polarity bool
191 Force PWM polarity to active high (DANGEROUS). Some chips are
192 misconfigured by BIOS - PWM values would be inverted. This option tries
193 to fix this. Please contact your BIOS manufacturer and ask him for fix.
194
195 * force_id short, short
196
197 Force multiple chip ID to specified value, separated by ','.
198 For example "force_id=0x8689,0x8633". A value of 0 is ignored
199 for that chip.
200 Note: A single force_id value (e.g. "force_id=0x8689") is used for
201 all chips, to only set the first chip use "force_id=0x8689,0".
202 Should only be used for testing.
203
204 * ignore_resource_conflict bool
205
206 Similar to acpi_enforce_resources=lax, but only affects this driver.
207 ACPI resource conflicts are ignored if this parameter is provided and
208 set to 1.
209 Provided since there are reports that system-wide acpi_enfore_resources=lax
210 can result in boot failures on some systems.
211 Note: This is inherently risky since it means that both ACPI and this driver
212 may access the chip at the same time. This can result in race conditions and,
213 worst case, result in unexpected system reboots.
214
215
216 Hardware Interfaces
217 -------------------
218
219 All the chips supported by this driver are LPC Super-I/O chips, accessed
220 through the LPC bus (ISA-like I/O ports). The IT8712F additionally has an
221 SMBus interface to the hardware monitoring functions. This driver no
222 longer supports this interface though, as it is slower and less reliable
223 than the ISA access, and was only available on a small number of
224 motherboard models.
225
226
227 Description
228 -----------
229
230 This driver implements support for the IT8603E, IT8620E, IT8623E, IT8628E,
231 IT8705F, IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F,
232 IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E,
233 IT8792E/IT8795E, IT87952E and SiS950 chips.
234
235 These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
236 joysticks and other miscellaneous stuff. For hardware monitoring, they
237 include an 'environment controller' with 3 temperature sensors, 3 fan
238 rotation speed sensors, 8 voltage sensors, associated alarms, and chassis
239 intrusion detection.
240
241 The IT8712F and IT8716F additionally feature VID inputs, used to report
242 the Vcore voltage of the processor. The early IT8712F have 5 VID pins,
243 the IT8716F and late IT8712F have 6. They are shared with other functions
244 though, so the functionality may not be available on a given system.
245
246 The IT8718F and IT8720F also features VID inputs (up to 8 pins) but the value
247 is stored in the Super-I/O configuration space. Due to technical limitations,
248 this value can currently only be read once at initialization time, so
249 the driver won't notice and report changes in the VID value. The two
250 upper VID bits share their pins with voltage inputs (in5 and in6) so you
251 can't have both on a given board.
252
253 The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E and later IT8712F revisions
254 have support for 2 additional fans. The additional fans are supported by the
255 driver.
256
257 The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
258 IT8783E/F, and late IT8712F and IT8705F also have optional 16-bit tachometer
259 counters for fans 1 to 3. This is better (no more fan clock divider mess) but
260 not compatible with the older chips and revisions. The 16-bit tachometer mode
261 is enabled by the driver when one of the above chips is detected.
262
263 The IT8726F is just bit enhanced IT8716F with additional hardware
264 for AMD power sequencing. Therefore the chip will appear as IT8716F
265 to userspace applications.
266
267 The IT8728F, IT8771E, and IT8772E are considered compatible with the IT8721F,
268 until a datasheet becomes available (hopefully.)
269
270 The IT8603E/IT8623E is a custom design, hardware monitoring part is similar to
271 IT8728F. It only supports 3 fans, 16-bit fan mode, and the full speed mode
272 of the fan is not supported (value 0 of pwmX_enable).
273
274 The IT8620E and IT8628E are custom designs, hardware monitoring part is similar
275 to IT8728F. It only supports 16-bit fan mode. Both chips support up to 6 fans.
276
277 The IT8790E, IT8792E/IT8795E and IT87952E support up to 3 fans. 16-bit fan
278 mode is always enabled.
279
280 The IT8732F supports a closed-loop mode for fan control, but this is not
281 currently implemented by the driver.
282
283 Temperatures are measured in degrees Celsius. An alarm is triggered once
284 when the Overtemperature Shutdown limit is crossed.
285
286 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
287 triggered if the rotation speed has dropped below a programmable limit. When
288 16-bit tachometer counters aren't used, fan readings can be divided by
289 a programmable divider (1, 2, 4 or 8) to give the readings more range or
290 accuracy. With a divider of 2, the lowest representable value is around
291 2600 RPM. Not all RPM values can accurately be represented, so some rounding
292 is done.
293
294 Voltage sensors (also known as IN sensors) report their values in volts. An
295 alarm is triggered if the voltage has crossed a programmable minimum or
296 maximum limit. Note that minimum in this case always means 'closest to
297 zero'; this is important for negative voltage measurements. On most chips, all
298 voltage inputs can measure voltages between 0 and 4.08 volts, with a resolution
299 of 0.016 volt. IT8603E, IT8721F/IT8758E and IT8728F can measure between 0 and
300 3.06 volts, with a resolution of 0.012 volt. IT8732F can measure between 0 and
301 2.8 volts with a resolution of 0.0109 volt. The battery voltage in8 does not
302 have limit registers.
303
304 On the IT8603E, IT8620E, IT8628E, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
305 and IT8783E/F, some voltage inputs are internal and scaled inside the chip:
306 * in3 (optional)
307 * in7 (optional for IT8781F, IT8782F, and IT8783E/F)
308 * in8 (always)
309 * in9 (relevant for IT8603E only)
310 The driver handles this transparently so user-space doesn't have to care.
311
312 The VID lines (IT8712F/IT8716F/IT8718F/IT8720F) encode the core voltage value:
313 the voltage level your processor should work with. This is hardcoded by
314 the mainboard and/or processor itself. It is a value in volts.
315
316 If an alarm triggers, it will remain triggered until the hardware register
317 is read at least once. This means that the cause for the alarm may already
318 have disappeared! Note that in the current implementation, all hardware
319 registers are read whenever any data is read (unless it is less than 1.5
320 seconds since the last update). This means that you can easily miss
321 once-only alarms.
322
323 Out-of-limit readings can also result in beeping, if the chip is properly
324 wired and configured. Beeping can be enabled or disabled per sensor type
325 (temperatures, voltages and fans.)
326
327 The IT87xx only updates its values each 1.5 seconds; reading it more often
328 will do no harm, but will return 'old' values.
329
330 To change sensor N to a thermistor, 'echo 4 > tempN_type' where N is 1, 2,
331 or 3. To change sensor N to a thermal diode, 'echo 3 > tempN_type'.
332 Give 0 for unused sensor. Any other value is invalid. To configure this at
333 startup, consult lm_sensors's /etc/sensors.conf. (4 = thermistor;
334 3 = thermal diode)
335
336
337 Fan speed control
338 -----------------
339
340 The fan speed control features are limited to manual PWM mode. Automatic
341 "Smart Guardian" mode control handling is only implemented for older chips
342 (see below.) However if you want to go for "manual mode" just write 1 to
343 pwmN_enable.
344
345 If you are only able to control the fan speed with very small PWM values,
346 try lowering the PWM base frequency (pwm1_freq). Depending on the fan,
347 it may give you a somewhat greater control range. The same frequency is
348 used to drive all fan outputs, which is why pwm2_freq and pwm3_freq are
349 read-only.
350
351
352 Automatic fan speed control (old interface)
353 -------------------------------------------
354
355 The driver supports the old interface to automatic fan speed control
356 which is implemented by IT8705F chips up to revision F and IT8712F
357 chips up to revision G.
358
359 This interface implements 4 temperature vs. PWM output trip points.
360 The PWM output of trip point 4 is always the maximum value (fan running
361 at full speed) while the PWM output of the other 3 trip points can be
362 freely chosen. The temperature of all 4 trip points can be freely chosen.
363 Additionally, trip point 1 has an hysteresis temperature attached, to
364 prevent fast switching between fan on and off.
365
366 The chip automatically computes the PWM output value based on the input
367 temperature, based on this simple rule: if the temperature value is
368 between trip point N and trip point N+1 then the PWM output value is
369 the one of trip point N. The automatic control mode is less flexible
370 than the manual control mode, but it reacts faster, is more robust and
371 doesn't use CPU cycles.
372
373 Trip points must be set properly before switching to automatic fan speed
374 control mode. The driver will perform basic integrity checks before
375 actually switching to automatic control mode.
376
377
378 Temperature offset attributes
379 -----------------------------
380
381 The driver supports temp[1-3]_offset sysfs attributes to adjust the reported
382 temperature for thermal diodes or diode-connected thermal transistors.
383 If a temperature sensor is configured for thermistors, the attribute values
384 are ignored. If the thermal sensor type is Intel PECI, the temperature offset
385 must be programmed to the critical CPU temperature.
386

3. 한국어 전문 번역

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

지원 칩: IT8603E부터 IT8732F

1-90

`it87` 드라이버가 지원하는 첫 번째 ITE Super I/O 장치군입니다. 모든 장치는 Super I/O 구성 공간에서 얻은 주소를 사용하며 8개 I/O 포트를 통해 접근합니다.

IT8705F, IT8712F, IT8716F/IT8726F, IT8718F 데이터시트는 한때 ITE 웹사이트에서 공개됐지만 현재는 제공되지 않습니다. IT8603E/IT8623E, IT8628E, IT8720F, IT8721F/IT8758E, IT8728F, IT8732F 자료는 공개되지 않았고, IT8620E 항목에는 원문상 별도 데이터시트 상태가 없습니다.

IT87 지원 목록 A
접두사주소데이터시트
IT8603E/IT8623Eit8603Super I/O 구성 공간, 8 I/O 포트비공개
IT8620Eit8620Super I/O 구성 공간, 8 I/O 포트원문에 별도 상태 없음
IT8628Eit8628Super I/O 구성 공간, 8 I/O 포트비공개
IT8705Fit87Super I/O 구성 공간, 8 I/O 포트과거 공개, 현재 미제공
IT8712Fit8712Super I/O 구성 공간, 8 I/O 포트과거 공개, 현재 미제공
IT8716F/IT8726Fit8716Super I/O 구성 공간, 8 I/O 포트과거 공개, 현재 미제공
IT8718Fit8718Super I/O 구성 공간, 8 I/O 포트과거 공개, 현재 미제공
IT8720Fit8720Super I/O 구성 공간, 8 I/O 포트비공개
IT8721F/IT8758Eit8721Super I/O 구성 공간, 8 I/O 포트비공개
IT8728Fit8728Super I/O 구성 공간, 8 I/O 포트비공개
IT8732Fit8732Super I/O 구성 공간, 8 I/O 포트비공개

칩 이름, 접두사, 자료 공개 상태를 원문대로 정리했습니다.

지원 장치 식별
Super I/O 구성 공간 진입칩 ID와 논리 장치 확인8개 I/O 포트 주소 확보칩별 접두사 선택it87 hwmon 장치 등록

Super I/O 구성 정보에서 드라이버 장치로 이어지는 흐름입니다.

Kernel driver it87
==================

Supported chips:

  * IT8603E/IT8623E

    Prefix: 'it8603'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8620E

    Prefix: 'it8620'

    Addresses scanned: from Super I/O config space (8 I/O ports)

  * IT8628E

    Prefix: 'it8628'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8705F

    Prefix: 'it87'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Once publicly available at the ITE website, but no longer

  * IT8712F

    Prefix: 'it8712'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Once publicly available at the ITE website, but no longer

  * IT8716F/IT8726F

    Prefix: 'it8716'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Once publicly available at the ITE website, but no longer

  * IT8718F

    Prefix: 'it8718'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Once publicly available at the ITE website, but no longer

  * IT8720F

    Prefix: 'it8720'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8721F/IT8758E

    Prefix: 'it8721'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8728F

    Prefix: 'it8728'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8732F

    Prefix: 'it8732'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

지원 칩: IT8771E부터 SiS950

91-177

두 번째 장치군은 IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, IT8792E/IT8795E, IT87952E와 IT8705F 복제 칩인 SiS950입니다. 작성자는 Christophe Gauthron과 Jean Delvare입니다.

ITE 장치의 데이터시트는 모두 공개되지 않았습니다. SiS950 자료도 더 이상 제공되지 않습니다. 모든 장치는 첫 장치군과 마찬가지로 Super I/O 구성 공간에서 주소를 얻고 8개 I/O 포트를 사용합니다.

IT87 지원 목록 B
접두사주소데이터시트
IT8771Eit8771Super I/O 구성 공간, 8 I/O 포트비공개
IT8772Eit8772Super I/O 구성 공간, 8 I/O 포트비공개
IT8781Fit8781Super I/O 구성 공간, 8 I/O 포트비공개
IT8782Fit8782Super I/O 구성 공간, 8 I/O 포트비공개
IT8783E/Fit8783Super I/O 구성 공간, 8 I/O 포트비공개
IT8786Eit8786Super I/O 구성 공간, 8 I/O 포트비공개
IT8790Eit8790Super I/O 구성 공간, 8 I/O 포트비공개
IT8792E/IT8795Eit8792Super I/O 구성 공간, 8 I/O 포트비공개
IT87952Eit87952Super I/O 구성 공간, 8 I/O 포트비공개
SiS950, IT8705F 복제it87Super I/O 구성 공간, 8 I/O 포트더 이상 제공되지 않음

후기 ITE 장치와 SiS 복제 칩을 모두 보존했습니다.

후기 칩 호환성 확인
ITE 또는 SiS 칩 ID 읽기복합 모델명과 리비전 확인정확한 접두사 대조Super I/O I/O 범위 예약센서 채널 수 확인

칩 ID와 접두사를 기준으로 지원 경로를 선택합니다.


  * IT8771E

    Prefix: 'it8771'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8772E

    Prefix: 'it8772'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8781F

    Prefix: 'it8781'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8782F

    Prefix: 'it8782'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8783E/F

    Prefix: 'it8783'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8786E

    Prefix: 'it8786'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8790E

    Prefix: 'it8790'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT8792E/IT8795E

    Prefix: 'it8792'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * IT87952E

    Prefix: 'it87952'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: Not publicly available

  * SiS950   [clone of IT8705F]

    Prefix: 'it87'

    Addresses scanned: from Super I/O config space (8 I/O ports)

    Datasheet: No longer be available


Authors:
    - Christophe Gauthron
    - Jean Delvare <jdelvare@suse.de>

모듈 매개변수와 위험 조건

178-215

`update_vbat` 불리언은 `0`일 때 전원 인가 시의 배터리 전압을 보고하고 `1`일 때 읽을 때마다 `vbat`를 갱신합니다. 기본값은 `0`입니다. 어떤 보드는 배터리 또는 온보드 전원 공급 장치가 배터리 전압 입력을 번갈아 공급하므로 전원 인가 직후 첫 읽기만 실제 배터리 전압일 수 있습니다. 다른 보드는 항상 배터리 전압을 공급해 언제든 읽을 수 있습니다. 지나친 읽기가 배터리 수명을 줄일 가능성이 있지만 데이터시트에는 구체 정보가 없습니다.

`fix_pwm_polarity`는 PWM 극성을 강제로 active high로 바꾸는 위험한 옵션입니다. BIOS가 극성을 잘못 설정해 PWM 값이 반전된 경우를 임시로 고치지만, 근본 해결을 위해 BIOS 제조사에 수정 요청을 해야 합니다.

`force_id`는 쉼표로 구분한 여러 칩 ID를 강제합니다. 예를 들어 `force_id=0x8689,0x8633`을 사용할 수 있고 값 `0`은 해당 칩에서 무시됩니다. 단일 값은 모든 칩에 적용되므로 첫 칩만 설정하려면 `force_id=0x8689,0`을 사용합니다. 이 옵션은 시험용으로만 사용해야 합니다.

`ignore_resource_conflict=1`은 시스템 전체의 `acpi_enforce_resources=lax`와 비슷하지만 이 드라이버에만 적용됩니다. 전체 lax 설정이 일부 시스템에서 부팅 실패를 일으킨다는 보고 때문에 제공됩니다. ACPI와 드라이버가 동시에 칩을 접근할 수 있어 경쟁 상태, 최악의 경우 예기치 않은 재부팅을 일으킬 수 있는 본질적으로 위험한 옵션입니다.

it87 모듈 매개변수
매개변수기본·예효과주의
update_vbat기본 00: 전원 인가 값, 1: 매 읽기 갱신잦은 읽기가 배터리 수명에 영향 가능
fix_pwm_polarityboolPWM 극성을 active high로 강제위험, BIOS 수정이 우선
force_id0x8689,0x8633여러 칩 ID 강제, 0은 무시시험용으로만 사용
ignore_resource_conflict1이 드라이버의 ACPI 충돌 무시경쟁 상태와 재부팅 위험

효과와 사용 위험을 함께 표시했습니다.

위험 매개변수 판단
보드 동작과 BIOS 설정 확인기본값으로 센서 검증필요한 매개변수 하나만 선택ACPI·PWM·배터리 위험 평가시험 후 영구 설정 여부 결정

기본 동작으로 해결되지 않을 때만 제한적으로 적용합니다.

Module Parameters
-----------------

* update_vbat bool
    0 if vbat should report power on value, 1 if vbat should be updated after
    each read. Default is 0. On some boards the battery voltage is provided
    by either the battery or the onboard power supply. Only the first reading
    at power on will be the actual battery voltage (which the chip does
    automatically). On other boards the battery voltage is always fed to
    the chip so can be read at any time. Excessive reading may decrease
    battery life but no information is given in the datasheet.

* fix_pwm_polarity bool
    Force PWM polarity to active high (DANGEROUS). Some chips are
    misconfigured by BIOS - PWM values would be inverted. This option tries
    to fix this. Please contact your BIOS manufacturer and ask him for fix.

* force_id short, short

  Force multiple chip ID to specified value, separated by ','.
  For example "force_id=0x8689,0x8633".  A value of 0 is ignored
  for that chip.
  Note: A single force_id value (e.g. "force_id=0x8689") is used for
  all chips, to only set the first chip use "force_id=0x8689,0".
  Should only be used for testing.

* ignore_resource_conflict bool

  Similar to acpi_enforce_resources=lax, but only affects this driver.
  ACPI resource conflicts are ignored if this parameter is provided and
  set to 1.
  Provided since there are reports that system-wide acpi_enfore_resources=lax
  can result in boot failures on some systems.
  Note: This is inherently risky since it means that both ACPI and this driver
  may access the chip at the same time. This can result in race conditions and,
  worst case, result in unexpected system reboots.

LPC 하드웨어 인터페이스

216-226

이 드라이버가 지원하는 모든 칩은 LPC Super I/O 장치이며 ISA와 유사한 I/O 포트를 사용하는 LPC 버스로 접근합니다.

IT8712F는 하드웨어 감시 기능을 위한 SMBus 인터페이스도 갖지만, 이 드라이버는 더 이상 그 인터페이스를 지원하지 않습니다. SMBus 경로는 ISA 접근보다 느리고 신뢰성이 낮으며 소수 메인보드에서만 제공됐기 때문입니다.

접근 경로 비교
경로대상상태이유
LPC, ISA 유사 I/O 포트모든 지원 칩지원빠르고 일반적인 Super I/O 접근
SMBusIT8712F 감시 기능미지원느리고 신뢰성이 낮으며 지원 보드가 적음

현재 지원 경로와 제거된 경로를 비교했습니다.

하드웨어 접근
Super I/O 구성 공간에서 장치 탐색LPC 논리 장치와 기본 주소 확인ISA 유사 I/O 포트 예약환경 컨트롤러 레지스터 접근hwmon 값 게시

구성 공간과 런타임 I/O 포트의 역할을 구분합니다.

Hardware Interfaces
-------------------

All the chips supported by this driver are LPC Super-I/O chips, accessed
through the LPC bus (ISA-like I/O ports). The IT8712F additionally has an
SMBus interface to the hardware monitoring functions. This driver no
longer supports this interface though, as it is slower and less reliable
than the ISA access, and was only available on a small number of
motherboard models.

칩별 센서, VID, 팬 기능 차이

227-282

드라이버는 원문에 나열된 IT8603E, IT8620E, IT8623E, IT8628E, IT8705F, IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F, IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E, IT8792E/IT8795E, IT87952E, SiS950을 지원합니다.

이들은 플로피 디스크, 적외선 포트, 조이스틱 등 여러 기능을 결합한 Super I/O 칩입니다. 하드웨어 감시용 환경 컨트롤러에는 기본적으로 온도 센서 3개, 팬 회전 속도 센서 3개, 전압 센서 8개, 관련 경보, 섀시 침입 감지 기능이 있습니다.

IT8712F와 IT8716F에는 프로세서 Vcore를 보고하는 VID 입력이 있습니다. 초기 IT8712F는 5개, IT8716F와 후기 IT8712F는 6개 VID 핀을 사용하며 다른 기능과 핀을 공유하므로 시스템에 따라 사용할 수 없습니다. IT8718F와 IT8720F는 최대 8개 VID 핀을 지원하지만 값이 Super I/O 구성 공간에 저장되어 초기화 시 한 번만 읽을 수 있으므로 이후 변경을 감지하지 못합니다. 상위 두 VID 비트는 `in5`, `in6`과 핀을 공유해 같은 보드에서 둘을 동시에 쓸 수 없습니다.

IT8716F, IT8718F, IT8720F, IT8721F/IT8758E와 후기 IT8712F는 팬 2개를 추가로 지원합니다. IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F, IT8783E/F와 후기 IT8712F·IT8705F는 팬 1~3에 선택적 16비트 타코미터 카운터를 제공하며 드라이버가 해당 칩을 감지하면 이 모드를 활성화합니다.

IT8726F는 AMD 전원 순차 제어 하드웨어를 더한 IT8716F이므로 사용자 공간에는 IT8716F로 보입니다. 데이터시트가 나올 때까지 IT8728F, IT8771E, IT8772E는 IT8721F 호환으로 간주됩니다.

IT8603E/IT8623E의 감시부는 IT8728F와 비슷하지만 팬 3개와 16비트 팬 모드만 지원하고 `pwmX_enable=0`인 전속 모드는 지원하지 않습니다. IT8620E와 IT8628E도 IT8728F와 비슷하며 16비트 팬 모드만 사용하고 최대 팬 6개를 지원합니다. IT8790E, IT8792E/IT8795E, IT87952E는 최대 팬 3개를 지원하며 16비트 모드가 항상 켜집니다. IT8732F의 폐루프 팬 제어는 현재 구현되지 않았습니다.

칩별 특수 기능
칩군특수 기능제약
IT8712F·IT8716F5개 또는 6개 VID 핀다른 기능과 핀 공유
IT8718F·IT8720F최대 8개 VID 핀초기화 때만 읽음, 상위 비트가 in5·in6과 공유
IT8716F·8718F·8720F·8721F/8758E·후기 8712F추가 팬 2개칩 리비전 확인 필요
지정 후기 칩팬 1~3 선택적 16비트 타코미터구형 방식과 비호환
IT8726FAMD 전원 순차 제어사용자 공간에는 IT8716F로 표시
IT8603E/IT8623E팬 3개, 16비트 모드전속 pwmX_enable=0 미지원
IT8620E·IT8628E최대 팬 6개, 16비트 모드구형 팬 모드 미사용
IT8790E·IT8792E/8795E·IT87952E최대 팬 3개16비트 모드 항상 활성
IT8732F폐루프 팬 제어 하드웨어드라이버 미구현

VID, 추가 팬, 타코미터와 호환성 차이를 요약했습니다.

칩 기능 판별
칩 ID와 리비전 감지기본 3온도·3팬·8전압 구성 설정VID와 추가 팬 지원 판별16비트 타코미터 모드 선택칩별 제한을 hwmon 속성에 반영

칩 ID와 리비전에 따라 노출할 센서 기능을 선택합니다.

Description
-----------

This driver implements support for the IT8603E, IT8620E, IT8623E, IT8628E,
IT8705F, IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F, IT8732F,
IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E, IT8790E,
IT8792E/IT8795E, IT87952E and SiS950 chips.

These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
joysticks and other miscellaneous stuff. For hardware monitoring, they
include an 'environment controller' with 3 temperature sensors, 3 fan
rotation speed sensors, 8 voltage sensors, associated alarms, and chassis
intrusion detection.

The IT8712F and IT8716F additionally feature VID inputs, used to report
the Vcore voltage of the processor. The early IT8712F have 5 VID pins,
the IT8716F and late IT8712F have 6. They are shared with other functions
though, so the functionality may not be available on a given system.

The IT8718F and IT8720F also features VID inputs (up to 8 pins) but the value
is stored in the Super-I/O configuration space. Due to technical limitations,
this value can currently only be read once at initialization time, so
the driver won't notice and report changes in the VID value. The two
upper VID bits share their pins with voltage inputs (in5 and in6) so you
can't have both on a given board.

The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E and later IT8712F revisions
have support for 2 additional fans. The additional fans are supported by the
driver.

The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
IT8783E/F, and late IT8712F and IT8705F also have optional 16-bit tachometer
counters for fans 1 to 3. This is better (no more fan clock divider mess) but
not compatible with the older chips and revisions. The 16-bit tachometer mode
is enabled by the driver when one of the above chips is detected.

The IT8726F is just bit enhanced IT8716F with additional hardware
for AMD power sequencing. Therefore the chip will appear as IT8716F
to userspace applications.

The IT8728F, IT8771E, and IT8772E are considered compatible with the IT8721F,
until a datasheet becomes available (hopefully.)

The IT8603E/IT8623E is a custom design, hardware monitoring part is similar to
IT8728F. It only supports 3 fans, 16-bit fan mode, and the full speed mode
of the fan is not supported (value 0 of pwmX_enable).

The IT8620E and IT8628E are custom designs, hardware monitoring part is similar
to IT8728F. It only supports 16-bit fan mode. Both chips support up to 6 fans.

The IT8790E, IT8792E/IT8795E and IT87952E support up to 3 fans. 16-bit fan
mode is always enabled.

The IT8732F supports a closed-loop mode for fan control, but this is not
currently implemented by the driver.

온도·팬·전압·경보의 의미

283-336

온도는 섭씨로 측정하며 과열 종료(Overtemperature Shutdown) 한계를 넘을 때 한 번 경보가 발생합니다. 팬 회전 속도는 RPM으로 보고하고 설정 가능한 하한보다 낮아지면 경보가 발생합니다.

16비트 타코미터를 쓰지 않을 때 팬 판독값은 1, 2, 4, 8 중 설정 가능한 분주기로 나눠 범위나 정확도를 조절할 수 있습니다. 분주기 2에서는 표현 가능한 최저값이 약 2600 RPM이며 모든 RPM 값을 정확히 표현할 수 없어 일부 반올림이 발생합니다.

IN 센서라고도 하는 전압 센서는 볼트 단위 값을 보고하고 설정 가능한 최소·최대 한계를 넘으면 경보를 냅니다. 음전압에서는 최소값이 항상 0에 가장 가까운 값을 뜻한다는 점이 중요합니다. 대부분의 칩은 0~4.08V를 0.016V 분해능으로 측정합니다. IT8603E, IT8721F/IT8758E, IT8728F는 0~3.06V를 0.012V 분해능으로, IT8732F는 0~2.8V를 0.0109V 분해능으로 측정합니다. 배터리 전압 `in8`에는 한계 레지스터가 없습니다.

IT8603E, IT8620E, IT8628E, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F, IT8783E/F에서는 일부 전압 입력이 내부 신호이고 칩 안에서 스케일됩니다. `in3`은 선택 사항, `in7`은 IT8781F·IT8782F·IT8783E/F에서 선택 사항, `in8`은 항상 내부 입력, `in9`는 IT8603E에만 관련됩니다. 드라이버가 이를 투명하게 처리합니다.

IT8712F/IT8716F/IT8718F/IT8720F의 VID 선은 프로세서가 동작해야 하는 코어 전압을 인코딩하며 메인보드나 프로세서에 고정된 볼트 값입니다.

경보는 하드웨어 레지스터를 최소 한 번 읽을 때까지 유지되므로 원인이 이미 사라졌을 수 있습니다. 현재 구현은 마지막 갱신 후 1.5초가 지나지 않은 경우를 제외하고 어떤 데이터든 읽을 때 모든 하드웨어 레지스터를 읽으므로 일회성 경보를 쉽게 놓칠 수 있습니다. 칩이 올바르게 배선·구성되면 한계 초과가 비프음을 만들 수 있고 온도·전압·팬 센서 종류별로 비프음을 켜거나 끌 수 있습니다.

IT87xx는 1.5초마다 값만 갱신하므로 더 자주 읽어도 해롭지는 않지만 이전 값을 반환합니다. 센서 N을 서미스터로 바꾸려면 `echo 4 > tempN_type`, 열 다이오드로 바꾸려면 `echo 3 > tempN_type`, 미사용이면 `0`을 씁니다. N은 1, 2, 3이고 다른 값은 유효하지 않습니다. 부팅 시 구성은 lm_sensors의 `/etc/sensors.conf`를 사용합니다.

센서 측정 규칙
대상규칙주의
온도섭씨, 과열 종료 한계에서 일회성 경보레지스터 읽기 뒤 경보 해제
RPM, 설정 하한 아래에서 경보비16비트 모드는 1·2·4·8 분주기와 반올림
일반 전압0~4.08V, 0.016V최소는 0에 가장 가까운 값
IT8603E·IT8721F/8758E·IT8728F0~3.06V, 0.012V내부 스케일 입력 존재
IT8732F0~2.8V, 0.0109V내부 스케일 입력 존재
in8배터리 전압한계 레지스터 없음
내부 입력in3 선택, in7 일부 선택, in8 항상, in9 IT8603E드라이버가 스케일 처리
갱신 주기1.5초더 잦은 읽기는 이전 값 반환
tempN_type4 서미스터, 3 열 다이오드, 0 미사용N은 1~3

단위, 범위, 경보와 특수 입력을 함께 정리했습니다.

센서 값 판독
1.5초 갱신 주기 확인온도·팬·전압 레지스터 일괄 읽기칩별 스케일과 팬 분주기 적용최소·최대·과열 한계 비교래치 경보와 비프 상태 보고

캐시 갱신과 래치 경보의 관계를 반영합니다.

Temperatures are measured in degrees Celsius. An alarm is triggered once
when the Overtemperature Shutdown limit is crossed.

Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
triggered if the rotation speed has dropped below a programmable limit. When
16-bit tachometer counters aren't used, fan readings can be divided by
a programmable divider (1, 2, 4 or 8) to give the readings more range or
accuracy. With a divider of 2, the lowest representable value is around
2600 RPM. Not all RPM values can accurately be represented, so some rounding
is done.

Voltage sensors (also known as IN sensors) report their values in volts. An
alarm is triggered if the voltage has crossed a programmable minimum or
maximum limit. Note that minimum in this case always means 'closest to
zero'; this is important for negative voltage measurements. On most chips, all
voltage inputs can measure voltages between 0 and 4.08 volts, with a resolution
of 0.016 volt.  IT8603E, IT8721F/IT8758E and IT8728F can measure between 0 and
3.06 volts, with a resolution of 0.012 volt.  IT8732F can measure between 0 and
2.8 volts with a resolution of 0.0109 volt.  The battery voltage in8 does not
have limit registers.

On the IT8603E, IT8620E, IT8628E, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
and IT8783E/F, some voltage inputs are internal and scaled inside the chip:
* in3 (optional)
* in7 (optional for IT8781F, IT8782F, and IT8783E/F)
* in8 (always)
* in9 (relevant for IT8603E only)
The driver handles this transparently so user-space doesn't have to care.

The VID lines (IT8712F/IT8716F/IT8718F/IT8720F) encode the core voltage value:
the voltage level your processor should work with. This is hardcoded by
the mainboard and/or processor itself. It is a value in volts.

If an alarm triggers, it will remain triggered until the hardware register
is read at least once. This means that the cause for the alarm may already
have disappeared! Note that in the current implementation, all hardware
registers are read whenever any data is read (unless it is less than 1.5
seconds since the last update). This means that you can easily miss
once-only alarms.

Out-of-limit readings can also result in beeping, if the chip is properly
wired and configured. Beeping can be enabled or disabled per sensor type
(temperatures, voltages and fans.)

The IT87xx only updates its values each 1.5 seconds; reading it more often
will do no harm, but will return 'old' values.

To change sensor N to a thermistor, 'echo 4 > tempN_type' where N is 1, 2,
or 3. To change sensor N to a thermal diode, 'echo 3 > tempN_type'.
Give 0 for unused sensor. Any other value is invalid. To configure this at
startup, consult lm_sensors's /etc/sensors.conf. (4 = thermistor;
3 = thermal diode)

수동 PWM과 구형 자동 팬 제어

337-377

팬 속도 제어는 기본적으로 수동 PWM 모드로 제한됩니다. 자동 `Smart Guardian` 모드 처리는 아래의 구형 칩에서만 구현되어 있습니다. 수동 모드를 사용하려면 `pwmN_enable`에 `1`을 기록합니다.

아주 작은 PWM 값에서만 팬 속도를 제어할 수 있다면 PWM 기본 주파수 `pwm1_freq`를 낮춰볼 수 있습니다. 팬에 따라 제어 범위가 넓어질 수 있습니다. 모든 팬 출력은 같은 주파수를 사용하므로 `pwm2_freq`와 `pwm3_freq`는 읽기 전용입니다.

구형 자동 팬 속도 제어 인터페이스는 리비전 F까지의 IT8705F와 리비전 G까지의 IT8712F에 구현되어 있습니다. 이 인터페이스는 온도와 PWM 출력을 연결하는 트립 포인트 4개를 사용합니다.

트립 포인트 4의 PWM 출력은 항상 최대값, 즉 팬 전속입니다. 나머지 세 포인트의 PWM 출력과 네 포인트의 온도는 자유롭게 선택할 수 있습니다. 트립 포인트 1에는 팬이 빠르게 켜졌다 꺼지는 것을 막는 히스테리시스 온도가 붙습니다.

입력 온도가 트립 포인트 N과 N+1 사이면 칩은 트립 포인트 N의 PWM 출력값을 사용합니다. 자동 모드는 수동 모드보다 유연하지 않지만 반응이 빠르고 견고하며 CPU 시간을 쓰지 않습니다. 자동 모드로 전환하기 전에 트립 포인트를 올바르게 설정해야 하며 드라이버가 기본 무결성 검사를 수행합니다.

팬 제어 모드
모드대상설정특징
수동 PWM지원 칩 전반pwmN_enable=1직접 PWM 값 설정
PWM 주파수모든 팬 출력 공통pwm1_freqpwm2_freq·pwm3_freq는 읽기 전용
구형 자동IT8705F rev F 이하, IT8712F rev G 이하4개 온도·PWM 트립 포인트빠르고 견고하며 CPU 사용 없음
트립 포인트 4구형 자동PWM 최대값 고정팬 전속
트립 포인트 1구형 자동히스테리시스 온도 포함빠른 켜짐·꺼짐 방지

수동 모드와 구형 하드웨어 자동 모드를 비교했습니다.

구형 자동 제어
네 온도 트립 포인트 설정1~3번 PWM 값과 1번 히스테리시스 설정4번 PWM은 최대값으로 유지드라이버 무결성 검사 통과현재 온도 구간의 하위 트립 PWM 적용

트립 포인트 설정에서 하드웨어 PWM 선택까지의 흐름입니다.

Fan speed control
-----------------

The fan speed control features are limited to manual PWM mode. Automatic
"Smart Guardian" mode control handling is only implemented for older chips
(see below.) However if you want to go for "manual mode" just write 1 to
pwmN_enable.

If you are only able to control the fan speed with very small PWM values,
try lowering the PWM base frequency (pwm1_freq). Depending on the fan,
it may give you a somewhat greater control range. The same frequency is
used to drive all fan outputs, which is why pwm2_freq and pwm3_freq are
read-only.


Automatic fan speed control (old interface)
-------------------------------------------

The driver supports the old interface to automatic fan speed control
which is implemented by IT8705F chips up to revision F and IT8712F
chips up to revision G.

This interface implements 4 temperature vs. PWM output trip points.
The PWM output of trip point 4 is always the maximum value (fan running
at full speed) while the PWM output of the other 3 trip points can be
freely chosen. The temperature of all 4 trip points can be freely chosen.
Additionally, trip point 1 has an hysteresis temperature attached, to
prevent fast switching between fan on and off.

The chip automatically computes the PWM output value based on the input
temperature, based on this simple rule: if the temperature value is
between trip point N and trip point N+1 then the PWM output value is
the one of trip point N. The automatic control mode is less flexible
than the manual control mode, but it reacts faster, is more robust and
doesn't use CPU cycles.

Trip points must be set properly before switching to automatic fan speed
control mode. The driver will perform basic integrity checks before
actually switching to automatic control mode.

온도 오프셋 속성

378-385

드라이버는 열 다이오드 또는 다이오드 연결 열 트랜지스터의 보고 온도를 조정하기 위해 `temp[1-3]_offset` sysfs 속성을 지원합니다.

온도 센서가 서미스터로 구성되면 오프셋 값은 무시됩니다. 열 센서 종류가 Intel PECI이면 온도 오프셋을 CPU 임계 온도로 설정해야 합니다.

온도 오프셋 적용
센서 종류temp[1-3]_offset 동작
열 다이오드보고 온도 조정에 적용
다이오드 연결 열 트랜지스터보고 온도 조정에 적용
서미스터속성값 무시
Intel PECICPU 임계 온도로 프로그래밍

센서 종류에 따른 오프셋 의미입니다.

오프셋 설정 판단
tempN_type과 하드웨어 센서 확인다이오드 계열이면 보정값 계산PECI이면 CPU 임계 온도 사용서미스터이면 오프셋 미적용보정된 보고 온도 검증

센서 종류를 먼저 확인한 뒤 오프셋을 적용합니다.

Temperature offset attributes
-----------------------------

The driver supports temp[1-3]_offset sysfs attributes to adjust the reported
temperature for thermal diodes or diode-connected thermal transistors.
If a temperature sensor is configured for thermistors, the attribute values
are ignored. If the thermal sensor type is Intel PECI, the temperature offset
must be programmed to the critical CPU temperature.