内核驱动 it87¶
支持的芯片
IT8603E/IT8623E
前缀:‘it8603’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8620E
前缀:‘it8620’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
IT8628E
前缀:‘it8628’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8705F
前缀:‘it87’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:曾经在 ITE 网站上公开,但现在不再
IT8712F
前缀:‘it8712’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:曾经在 ITE 网站上公开,但现在不再
IT8716F/IT8726F
前缀:‘it8716’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:曾经在 ITE 网站上公开,但现在不再
IT8718F
前缀:‘it8718’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:曾经在 ITE 网站上公开,但现在不再
IT8720F
前缀:‘it8720’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8721F/IT8758E
前缀:‘it8721’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8728F
前缀:‘it8728’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8732F
前缀:‘it8732’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8771E
前缀:‘it8771’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8772E
前缀:‘it8772’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8781F
前缀:‘it8781’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8782F
前缀:‘it8782’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8783E/F
前缀:‘it8783’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8786E
前缀:‘it8786’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8790E
前缀:‘it8790’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT8792E/IT8795E
前缀:‘it8792’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
IT87952E
前缀:‘it87952’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:未公开
SiS950 [IT8705F 的克隆]
前缀:‘it87’
扫描地址:来自 Super I/O 配置空间(8 个 I/O 端口)
数据手册:不再提供
- 作者
Christophe Gauthron
Jean Delvare <jdelvare@suse.de>
模块参数¶
- update_vbat bool
如果 vbat 应报告开机时的值,则为 0;如果每次读取后应更新 vbat,则为 1。默认值为 0。在某些主板上,电池电压由电池或板载电源提供。只有开机时的第一次读取才是实际的电池电压(芯片会自动执行此操作)。在其他主板上,电池电压始终馈送到芯片,因此可以随时读取。过度读取可能会缩短电池寿命,但数据手册中没有提供相关信息。
- fix_pwm_polarity bool
强制将 PWM 极性设置为高电平有效(危险)。某些芯片被 BIOS 错误配置 - PWM 值将反转。此选项尝试修复此问题。请联系您的 BIOS 制造商并要求其修复。
force_id short, short
强制将多个芯片 ID 设置为指定值,用“,”分隔。例如 “force_id=0x8689,0x8633”。 对于该芯片,值为 0 将被忽略。注意:单个 force_id 值(例如“force_id=0x8689”)用于所有芯片,要仅设置第一个芯片,请使用 “force_id=0x8689,0”。 仅应在测试时使用。
ignore_resource_conflict bool
类似于 acpi_enforce_resources=lax,但仅影响此驱动程序。如果提供此参数并设置为 1,则会忽略 ACPI 资源冲突。提供此参数是因为有报告称,在某些系统上,系统范围内的 acpi_enfore_resources=lax 会导致启动失败。注意:这本质上是危险的,因为它意味着 ACPI 和此驱动程序可能会同时访问该芯片。这可能会导致竞争条件,最坏的情况下,会导致系统意外重启。
硬件接口¶
此驱动程序支持的所有芯片都是通过 LPC 总线(类似于 ISA 的 I/O 端口)访问的 LPC Super-I/O 芯片。IT8712F 另外具有到硬件监控功能的 SMBus 接口。但是,此驱动程序不再支持此接口,因为它比 ISA 访问速度慢且可靠性低,并且仅在少数主板型号上可用。
描述¶
此驱动程序实现了对 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 另外具有 VID 输入,用于报告处理器的 Vcore 电压。早期的 IT8712F 有 5 个 VID 引脚,IT8716F 和后期的 IT8712F 有 6 个。但它们与其他功能共享,因此在给定系统上可能无法使用该功能。
IT8718F 和 IT8720F 也具有 VID 输入(最多 8 个引脚),但该值存储在 Super-I/O 配置空间中。由于技术限制,该值目前只能在初始化时读取一次,因此驱动程序不会注意到并报告 VID 值的变化。上面的两个 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 位转速计计数器。这更好(不再有风扇时钟分频器问题),但不与较旧的芯片和版本兼容。当检测到上述芯片之一时,驱动程序会启用 16 位转速计模式。
IT8726F 只是增强了位的 IT8716F,具有用于 AMD 电源排序的附加硬件。因此,对于用户空间应用程序,该芯片将显示为 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 支持用于风扇控制的闭环模式,但驱动程序目前未实现此模式。
温度以摄氏度为单位测量。当超过过温关断限值时,会触发一次警报。
风扇转速以 RPM(每分钟转数)报告。如果转速已降至可编程限值以下,则会触发警报。当不使用 16 位转速计计数器时,可以将风扇读数除以可编程分频器(1、2、4 或 8)以使读数具有更大的范围或精度。当分频器为 2 时,可表示的最低值约为 2600 RPM。并非所有 RPM 值都可以准确表示,因此会进行一些舍入。
电压传感器(也称为 IN 传感器)以伏特为单位报告其值。如果电压已超过可编程的最小或最大限值,则会触发警报。请注意,这种情况下的最小值始终表示“最接近零”;这对于负电压测量非常重要。在大多数芯片上,所有电压输入都可以测量 0 到 4.08 伏之间的电压,分辨率为 0.016 伏。IT8603E、IT8721F/IT8758E 和 IT8728F 可以测量 0 到 3.06 伏之间的电压,分辨率为 0.012 伏。IT8732F 可以测量 0 到 2.8 伏之间的电压,分辨率为 0.0109 伏。电池电压 in8 没有限值寄存器。
在 IT8603E、IT8620E、IT8628E、IT8721F/IT8758E、IT8732F、IT8781F、IT8782F 和 IT8783E/F 上,一些电压输入是内部的,并在芯片内部缩放: * in3(可选)* in7(对于 IT8781F、IT8782F 和 IT8783E/F 为可选)* in8(始终)* in9(仅与 IT8603E 相关)。驱动程序透明地处理此问题,因此用户空间不必关心。
VID 线(IT8712F/IT8716F/IT8718F/IT8720F)对核心电压值进行编码:您的处理器应使用的电压级别。这是由主板和/或处理器本身硬编码的。它是一个以伏特为单位的值。
如果触发警报,它将保持触发状态,直到至少读取一次硬件寄存器。这意味着警报的原因可能已经消失了!请注意,在当前实现中,只要读取任何数据(除非距离上次更新少于 1.5 秒),就会读取所有硬件寄存器。这意味着您很容易错过一次性的警报。
如果芯片正确接线和配置,超出限制的读数也会导致蜂鸣。可以为每种传感器类型(温度、电压和风扇)启用或禁用蜂鸣。
IT87xx 仅每 1.5 秒更新一次其值;更频繁地读取它不会造成任何伤害,但会返回“旧”值。
要将传感器 N 更改为热敏电阻,请使用 ‘echo 4 > tempN_type’,其中 N 为 1、2 或 3。要将传感器 N 更改为热二极管,请使用 ‘echo 3 > tempN_type’。对于未使用的传感器,请设置为 0。任何其他值均无效。要在启动时配置此项,请查阅 lm_sensors 的 /etc/sensors.conf。(4 = 热敏电阻;3 = 热二极管)
风扇速度控制¶
风扇速度控制功能仅限于手动 PWM 模式。自动“智能守护”模式控制仅适用于较旧的芯片(见下文)。但是,如果您想使用“手动模式”,只需写入 1 到 pwmN_enable 即可。
如果您只能使用非常小的 PWM 值来控制风扇速度,请尝试降低 PWM 基频 (pwm1_freq)。根据风扇的不同,这可能会为您提供更大的控制范围。相同的频率用于驱动所有风扇输出,这就是为什么 pwm2_freq 和 pwm3_freq 是只读的原因。
自动风扇速度控制(旧接口)¶
该驱动程序支持旧的自动风扇速度控制接口,该接口由 IT8705F 芯片(最高至 F 版本)和 IT8712F 芯片(最高至 G 版本)实现。
此接口实现了 4 个温度与 PWM 输出的跳变点。跳变点 4 的 PWM 输出始终为最大值(风扇全速运行),而其他 3 个跳变点的 PWM 输出可以自由选择。所有 4 个跳变点的温度都可以自由选择。此外,跳变点 1 附带一个迟滞温度,以防止风扇快速开关。
该芯片根据输入温度自动计算 PWM 输出值,基于以下简单规则:如果温度值在跳变点 N 和跳变点 N+1 之间,则 PWM 输出值为跳变点 N 的值。自动控制模式不如手动控制模式灵活,但它反应更快,更可靠,并且不占用 CPU 周期。
在切换到自动风扇速度控制模式之前,必须正确设置跳变点。驱动程序会在实际切换到自动控制模式之前执行基本完整性检查。
温度偏移属性¶
该驱动程序支持 temp[1-3]_offset sysfs 属性,以调整热二极管或二极管连接的热晶体管的报告温度。如果将温度传感器配置为热敏电阻,则会忽略属性值。如果热传感器类型为 Intel PECI,则必须将温度偏移量编程为 CPU 的临界温度。