内核驱动 NCT6775¶
注意
此驱动程序取代了 W83627EHF 驱动程序中对 NCT6775F 和 NCT6776F 的支持。
支持的芯片
Nuvoton NCT6102D/NCT6104D/NCT6106D
前缀: ‘nct6106’
扫描的地址: 从 Super I/O 寄存器检索的 ISA 地址
数据表: 可从 Nuvoton 网站获得
Nuvoton NCT5572D/NCT6771F/NCT6772F/NCT6775F/W83677HG-I
前缀: ‘nct6775’
扫描的地址: 从 Super I/O 寄存器检索的 ISA 地址
数据表: 可根据要求从 Nuvoton 获得
Nuvoton NCT5573D/NCT5577D/NCT6776D/NCT6776F
前缀: ‘nct6776’
扫描的地址: 从 Super I/O 寄存器检索的 ISA 地址
数据表: 可根据要求从 Nuvoton 获得
Nuvoton NCT5532D/NCT6779D
前缀: ‘nct6779’
扫描的地址: 从 Super I/O 寄存器检索的 ISA 地址
数据表: 可根据要求从 Nuvoton 获得
Nuvoton NCT6791D
前缀: ‘nct6791’
扫描的地址: 从 Super I/O 寄存器检索的 ISA 地址
数据表: 可根据要求从 Nuvoton 获得
Nuvoton NCT6792D
前缀: ‘nct6792’
扫描的地址: 从 Super I/O 寄存器检索的 ISA 地址
数据表: 可根据要求从 Nuvoton 获得
Nuvoton NCT6793D
前缀: ‘nct6793’
扫描的地址: 从 Super I/O 寄存器检索的 ISA 地址
数据表: 可根据要求从 Nuvoton 获得
Nuvoton NCT6795D
前缀: ‘nct6795’
扫描的地址: 从 Super I/O 寄存器检索的 ISA 地址
数据表: 可根据要求从 Nuvoton 获得
Nuvoton NCT6796D
前缀: ‘nct6796’
扫描的地址: 从 Super I/O 寄存器检索的 ISA 地址
数据表: 可根据要求从 Nuvoton 获得
Nuvoton NCT6796D-S/NCT6799D-R
前缀: ‘nct6799’
扫描的地址: 从 Super I/O 寄存器检索的 ISA 地址
数据表: 可根据要求从 Nuvoton 获得
作者
Guenter Roeck <linux@roeck-us.net>
描述¶
此驱动程序实现了对 Nuvoton NCT6775F、NCT6776F 和 NCT6779D 以及兼容的超级 I/O 芯片的支持。
这些芯片支持多达 25 个温度监控源。其中最多 6 个是直接温度传感器输入,其余是特殊来源,例如 PECI、PCH 和 SMBUS。根据芯片类型,可以监控 2 到 6 个温度源,并将其与最小、最大和临界温度进行比较。该驱动程序向用户报告最多 10 个温度。有 4 到 5 个风扇转速传感器、8 到 15 个模拟电压传感器、一个 VID、带有蜂鸣警告的警报(控制未实现)以及一些自动风扇调节策略(以及手动风扇控制模式)。
所有芯片上的温度传感器源都是可配置的。每个温度传感器配置的源都在 tempX_label 中提供。
温度以摄氏度测量,测量分辨率为 1 摄氏度或 0.5 摄氏度,具体取决于温度源和配置。当温度高于上限时会触发警报;它会一直保持开启状态,直到温度降至迟滞值以下。只有 temp1 到 temp6 支持警报,具体取决于芯片类型。
风扇转速以 RPM(每分钟转数)报告。如果转速已降至可编程限制以下,则会触发警报。在 NCT6775F 上,风扇读数可以除以可编程的除数(1、2、4、8、16、32、64 或 128),以使读数具有更大的范围或精度;其他芯片没有风扇速度除数。驱动程序自行设置最合适的风扇除数;具体来说,每次风扇速度读数返回无效值时,它会增加除数的值,如果风扇速度读数低于最佳值,则会减少除数的值。某些风扇可能不存在,因为它们与其他功能共享引脚。
电压传感器(也称为 IN 传感器)以毫伏为单位报告其值。如果电压已越过可编程的最小值或最大值限制,则会触发警报。
该驱动程序支持称为 Thermal Cruise 的自动风扇控制模式。在此模式下,芯片尝试将测量的温度保持在预定义的温度范围内。如果温度超出范围,则会降低/加快风扇转速以再次达到预定义的范围。
该模式适用于 fan1-fan5。
sysfs 属性¶
- pwm[1-7]
此文件存储 PWM 占空比或 DC 值(风扇速度),范围为
0(最低速度)到 255(全速)
- pwm[1-7]_enable
此文件控制风扇/温度控制模式
0 风扇控制禁用(风扇设置为最大速度)
1 手动模式,写入 pwm[0-5] 任何值 0-255
2 “热巡航”模式
3 “风扇速度巡航”模式
4 “智能风扇 III”模式(仅限 NCT6775F)
5 “智能风扇 IV”模式
- pwm[1-7]_mode
控制输出是 PWM 还是 DC 电平
0 DC 输出
1 PWM 输出
通用风扇控制属性¶
- pwm[1-7]_temp_sel
温度源。值是温度传感器索引。例如,为 temp1_input 选择 ‘1’。
- pwm[1-7]_weight_temp_sel
辅助温度源。值是温度传感器索引。例如,为 temp1_input 选择 ‘1’。设置为 0 以禁用辅助温度控制。
如果启用辅助温度功能,则使用以下属性进行控制。
- pwm[1-7]_weight_duty_step
占空比步长。
- pwm[1-7]_weight_temp_step
温度步长。对于超过 temp_step_base 的每个步长,weight_duty_step 的值将添加到当前的 pwm 值。
- pwm[1-7]_weight_temp_step_base
辅助温度控制开始生效的温度。
- pwm[1-7]_weight_temp_step_tol
温度步长容差。
热巡航模式 (2)¶
如果温度在以下定义的范围内
- pwm[1-7]_target_temp
目标温度,单位为毫摄氏度(范围 0 - 127000)
- pwm[1-7]_temp_tolerance
目标温度容差,单位为毫摄氏度
风扇速度没有变化。一旦温度离开该间隔,风扇速度就会增加(如果温度高于所需值)或降低(如果温度低于所需值),使用以下限制和时间间隔。
- pwm[1-7]_start
风扇 pwm 起始值(范围 1 - 255),以便在温度高于定义的范围时启动风扇。
- pwm[1-7]_floor
如果温度低于定义的范围,则最低风扇 pwm(范围 0 - 255)。如果设置为 0,则预期当温度低于定义的范围时风扇会停止。
- pwm[1-7]_step_up_time
增加风扇速度之前的毫秒数
- pwm[1-7]_step_down_time
降低风扇速度之前的毫秒数
- pwm[1-7]_stop_time
关闭相应的风扇(当温度低于定义的范围时)必须经过多少毫秒。
速度巡航模式 (3)¶
此模式尝试保持风扇速度恒定。
- fan[1-7]_target
目标风扇速度
- fan[1-7]_tolerance
目标速度容差
未经测试;使用风险自负。
智能风扇 IV 模式 (5)¶
此模式提供多个斜率来控制风扇速度。可以通过设置 pwm 和温度属性来控制斜率。当温度升高时,芯片将根据当前斜率计算 DC/PWM 输出。根据芯片类型,最多有七个数据点。应将后续数据点设置为更高的温度和更高的 pwm 值,以在温度升高时实现更高的风扇速度。最后一个数据点反映临界温度模式,在该模式下,风扇应以全速运行。
- pwm[1-7]_auto_point[1-7]_pwm
如果温度达到匹配的温度范围,则要设置的 pwm 值。
- pwm[1-7]_auto_point[1-7]_temp
启用匹配的 pwm 的温度。
- pwm[1-7]_temp_tolerance
温度容差,单位为毫摄氏度
- pwm[1-7]_crit_temp_tolerance
临界温度的温度容差,单位为毫摄氏度
- pwm[1-7]_step_up_time
增加风扇速度之前的毫秒数
- pwm[1-7]_step_down_time
降低风扇速度之前的毫秒数
使用说明¶
在带有 NCT6776F 的各种 ASUS 主板上,CPUTIN 似乎并未真正连接到任何东西并浮动,或者它连接到某些非标准温度测量设备。因此,CPUTIN 上报告的温度不会反映有用的值。它通常会报告不合理的高温,在某些情况下,如果实际温度升高,则报告的温度会下降(类似于原始 PECI 温度值 - 有关详细信息,请参阅 PECI 规范)。因此,在 ASUS 主板上应忽略 CPUTIN。ASUS 主板上的 CPU 温度从 PECI 0 或 TSI 0 报告。
NCT6796D-S 和 NCT6799D-R 芯片非常相似,它们的 chip_id 指示它们是不同的版本。此驱动程序以相同的方式对待它们。