风扇速度传感器实际报告什么?

风扇速度传感器实际报告什么?

我的上网本 (ASUS EeePC 1015PW) 存在过热问题,我正在尝试解决此问题。过热时使用 lm-sensors 得到以下输出:

acpitz-virtual-0
Adapter: Virtual device
temp1:        +86.0°C  (crit = +100.0°C)   

eeepc-isa-0000
Adapter: ISA adapter
fan1:        4089 RPM 

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +82.0°C  (crit = +100.0°C)
Core 1:       +80.0°C  (crit = +100.0°C)

但我听不到风扇的声音,尽管传感器显示风扇在旋转。因此,我启用了手动 pwm 控制并将风扇设置为全速,几分钟后我得到了以下输出:

acpitz-virtual-0
Adapter: Virtual device
temp1:        +65.0°C  (crit = +100.0°C)

eeepc-isa-0000
Adapter: ISA adapter
fan1:        4016 RPM

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +62.0°C  (crit = +100.0°C)
Core 1:       +58.0°C  (crit = +100.0°C)

这次我能听到风扇转动的声音。所以很明显风扇控制或风扇监控存在问题。因此问题是:风扇传感器到底报告了什么样的物理信息?

为什么我很确定我控制的人就是我监视的人:

*** root # cd /sys/class/hwmon/hwmon2
*** hwmon2 # ls
device  fan1_input  name  power  pwm1  pwm1_enable  subsystem  uevent
*** hwmon2 # cat *
cat: device: is a folder
4094
eeepc
cat: power: is a folder
0
2
cat: subsystem: is a folder
*** hwmon2 # echo 1 > pwm1_enable; echo 255 > pwm1
*** hwmon2 # cat *
cat: device: is a folder
4016
eeepc
cat: power: is a folder
255
1
cat: subsystem: is a folder

看来 lm-sensors 正在读取这个 fan1_input 文件的内容,该文件与我正在玩的 pwm1 文件位于同一文件夹中,并且它们应该与同一个设备相关联。

我尝试将风扇速度调到一半echo 125 > pwm1,结果是风扇仍在旋转,虽然速度较慢(合乎逻辑),但 fan1_input 包含 4094!所以我试着玩了一下……结果发现,在任何低于 242 的速度下,风扇都会显示它以 4090 RPM 左右的速度旋转(今天我每次尝试都是 4094 RPM),而高于 243 时,它报告的速度为 4020 RPM 左右(介于 4015 和 4025 之间)。

现在我真的很困惑...这怎么可能?是不是因为计算机读取风扇输入的“比例”与风扇提供的“比例”不一样?

谢谢

PS:我应该补充一点,这台电脑是一台小型、难以拆卸的上网本,所以我不能也不想尝试“堵住风扇,看看传感器报告什么”这样的实验。

答案1

它实际上根本不报告物理信息。物理传感器返回一个从 0 到(比如说)65535 的值,然后对该值进行操作(乘以、加以等)以得到您看到的结果。可能是软件校准错误或类似原因,导致产生您看到的奇怪值。

相关内容