요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
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
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>
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.
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.
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.
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)
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.
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.
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 항목에는 원문상 별도 데이터시트 상태가 없습니다.
칩 이름, 접두사, 자료 공개 상태를 원문대로 정리했습니다.
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 포트를 사용합니다.
후기 ITE 장치와 SiS 복제 칩을 모두 보존했습니다.
칩 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와 드라이버가 동시에 칩을 접근할 수 있어 경쟁 상태, 최악의 경우 예기치 않은 재부팅을 일으킬 수 있는 본질적으로 위험한 옵션입니다.
효과와 사용 위험을 함께 표시했습니다.
기본 동작으로 해결되지 않을 때만 제한적으로 적용합니다.
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 접근보다 느리고 신뢰성이 낮으며 소수 메인보드에서만 제공됐기 때문입니다.
현재 지원 경로와 제거된 경로를 비교했습니다.
구성 공간과 런타임 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의 폐루프 팬 제어는 현재 구현되지 않았습니다.
VID, 추가 팬, 타코미터와 호환성 차이를 요약했습니다.
칩 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`를 사용합니다.
단위, 범위, 경보와 특수 입력을 함께 정리했습니다.
캐시 갱신과 래치 경보의 관계를 반영합니다.
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 선택까지의 흐름입니다.
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 임계 온도로 설정해야 합니다.
센서 종류에 따른 오프셋 의미입니다.
센서 종류를 먼저 확인한 뒤 오프셋을 적용합니다.
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.
요약·해설
it87.rst:1-385IT8603E부터 IT87952E와 SiS950까지 21개 장치 항목을 지원하며, LPC 접근, 온도·팬·전압 센서, VID, 16비트 타코미터, 수동 PWM과 구형 자동 팬 제어를 다룹니다.
지원 범위와 핵심 제어 인터페이스입니다.
칩 탐색에서 센서와 팬 제어까지의 순서입니다.