内核驱动 w83792d¶
支持的芯片
华邦 W83792D
前缀: ‘w83792d’
扫描地址: I2C 0x2c - 0x2f
作者: Shane Huang (华邦) 更新人: Roger Lucas
模块参数¶
- init int
(默认 1)
使用 ‘init=0’ 绕过芯片初始化。如果加载模块时计算机崩溃,请尝试此操作。
- force_subclients=bus,caddr,saddr,saddr
这用于强制特定芯片的子客户端的 I2C 地址。例如,使用 force_subclients=0,0x2f,0x4a,0x4b 可将总线 0 上芯片 0x2f 的子客户端强制设置为 I2C 地址 0x4a 和 0x4b。
描述¶
该驱动程序实现了对华邦 W83792AD/D 的支持。
芯片检测有时会失败,因为它可能处于不允许干净访问的内部状态(带有 ID 寄存器的 Bank 当前未被选中)。如果您知道芯片的地址,请使用 ‘force’ 参数;这将首先使其进入更良好行为的状态。
该驱动程序实现了三个温度传感器、七个风扇转速传感器、九个电压传感器,以及两种自动风扇调节策略:智能风扇 I (温控巡航模式) 和智能风扇 II。
该驱动程序还实现了多达七个风扇控制输出:pwm1-7。Pwm1-7 可以通过其相关的 pwmX_mode 配置为 PWM 输出或模拟直流输出。输出 pwm4 到 pwm7 可能存在,也可能不存在,具体取决于 BIOS 如何配置 W83792AD/D。
自动风扇控制模式仅适用于风扇 1 到风扇 3。
对于所有 pwmX 输出,值为 0 表示最低风扇转速,值为 255 表示最高风扇转速。
温度以摄氏度测量,temp1 的测量分辨率为 1 摄氏度,temp2 和 temp3 的测量分辨率为 0.5 摄氏度。当温度高于过温关机值时会触发警报;警报会一直持续到温度降至迟滞值以下。
风扇转速以 RPM (每分钟转数) 报告。如果转速降至可编程限制以下,则会触发警报。风扇读数可以由可编程分频器 (1、2、4、8、16、32、64 或 128) 进行分频,以提供更大的读数范围或更高的精度。
电压传感器 (也称为 IN 传感器) 以毫伏报告其值。如果电压超出可编程的最小或最大限制,则会触发警报。
警报作为“实时状态寄存器”的输出提供。定义了以下位
位 |
报警开启 |
---|---|
0 |
in0 |
1 |
in1 |
2 |
temp1 |
3 |
temp2 |
4 |
temp3 |
5 |
fan1 |
6 |
fan2 |
7 |
fan3 |
8 |
in2 |
9 |
in3 |
10 |
in4 |
11 |
in5 |
12 |
in6 |
13 |
VID 变化 |
14 |
机箱 |
15 |
fan7 |
16 |
tart1 |
17 |
tart2 |
18 |
tart3 |
19 |
in7 |
20 |
in8 |
21 |
fan4 |
22 |
fan5 |
23 |
fan6 |
如果对应风扇全速旋转 3 分钟后仍无法达到目标温度,则会断言 Tart。
除了上述警报外,芯片上还有一个 CHAS 警报,当您的计算机机箱打开时会触发(此警报是锁存的,与实时警报不同)。
芯片每 3 秒才更新一次值;更频繁地读取它们不会造成伤害,但会返回“旧”值。
W83792D 问题¶
- 已知问题
此驱动程序仅适用于华邦 W83792D C 版本设备,也有一些主板使用 B 版本 W83792D 设备。C 和 B 版本在 in6-in7(测量值、限制)的计算方法上略有不同。C 或 B 版本可以通过 CR[0x49h] 识别。
vid 和 vrm 的功能尚未完成,因为我不太熟悉它们。欢迎添加支持。
机箱开启检测功能需要更多测试。
如果您有华硕服务器主板且未找到芯片:则需要升级到最新(或 Beta)BIOS。如果仍无帮助,请联系我们。
风扇控制¶
手动模式¶
按预期工作。您只需在相应的 pwm# 文件中指定所需的 PWM/DC 值(风扇转速)。
温控巡航¶
在此模式下,W83792D 提供智能风扇系统,自动控制风扇转速,使 CPU 和系统温度保持在特定范围内。首先,必须设置一个目标温度和间隔。这通过 thermal_cruise# 文件完成。tolerance# 文件用于创建 T +- tolerance 间隔。只要当前温度保持在 thermal_cruise# +- tolerance# 值以下,风扇转速就会降低。一旦温度超过高限(T+tolerance),风扇将以 pwm# 设置的特定速度开启,并随着温度变化自动控制其 PWM 占空比。可能出现以下三种情况
(1) 如果温度仍超过高限,PWM 占空比将缓慢增加。
(2) 如果温度低于高限,但仍高于低限(T-tolerance),风扇转速将固定在当前速度,因为温度处于目标范围内。
(3) 如果温度低于低限,PWM 占空比将缓慢减小至 0 或预设停止值,直到温度超过低限。(驱动程序尚未实现预设停止值处理)
智能风扇 II¶
W83792D 还提供了一种特殊的风扇模式。有四个温度点可用。当相关的温度传感器检测到预设温度区域 (sf2_point@_fan# +- tolerance#) 内的温度时,它将使风扇以 sf2_level@_fan# 中编程的值运行。您需要为每个风扇设置四个温度。
/sys 文件¶
- pwm[1-7]
此文件存储 PWM 占空比或直流值(风扇转速),范围为
0 (停止) 到 255 (全速)
- pwm[1-3]_enable
此文件控制风扇/温度控制模式
0 禁用
1 手动模式
2 智能风扇 II
3 温控巡航
- pwm[1-7]_mode
选择 PWM 或直流模式
0 直流
1 PWM
- thermal_cruise[1-3]
选择巡航目标温度(摄氏度)
- tolerance[1-3]
摄氏度值(degC),用于 +- T
- sf2_point[1-4]_fan[1-3]
智能风扇 II 的每个风扇的四个温度点
- sf2_level[1-3]_fan[1-3]
智能风扇 II 的每个风扇的三个 PWM/直流级别