You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用lm-sensors设置温度阈值后高温(high)与临界温度(crit)始终相同的问题咨询

lm-sensors设置温度阈值后高温(high)与临界温度(crit)始终相同的问题咨询

看起来你遇到了lm-sensors配置里一个容易混淆的点,我来帮你拆解下问题所在,以及怎么解决:

首先先明确你的操作和现象:
你在lm-sensors的配置中添加了针对coretemp-isa-0000的compute规则:

chip "coretemp-isa-0000"
    compute temp1 99,100
    compute temp2 100,99
    compute temp3 @-2,@-1
    compute temp4 @-1,@-2

重启服务后运行sensors,发现所有核心的high和crit温度值完全一致:

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +99.0°C  (high = +99.0°C, crit = +99.0°C)
Core 0:       +100.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +42.0°C  (high = +98.0°C, crit = +98.0°C)
Core 2:        +44.0°C  (high = +99.0°C, crit = +99.0°C)
Core 3:        +46.0°C  (high = +100.0°C, crit = +100.0°C)

问题根源:误解了compute指令的作用

你可能搞错了compute指令的用途——它不是用来设置high/crit阈值的,而是用来定义传感器原始值到显示值的线性转换规则。格式是compute <feature> <slope>,<offset>,或者@<slope>,@<offset>表示反向转换。

当你给某个温度条目设置了compute规则后,lm-sensors会用同样的转换公式去处理该条目的high和crit原始阈值,这就导致转换后的显示值出现了high和crit相同的情况(比如你的temp1规则,可能刚好把原始的high和crit值转换成了同一个数)。

正确的解决方法:用set指令单独设置阈值

如果你的需求是分别设置high和crit温度,应该使用set指令,而不是compute。如果确实需要保留温度转换规则,也可以同时结合两者:

修改后的配置示例:

chip "coretemp-isa-0000"
    # 如果你需要温度转换,保留compute规则
    compute temp1 99,100
    # 单独设置temp1的high和crit阈值
    set temp1_high 95
    set temp1_crit 100

    compute temp2 100,99
    set temp2_high 96
    set temp2_crit 101

    compute temp3 @-2,@-1
    set temp3_high 97
    set temp3_crit 99

    compute temp4 @-1,@-2
    set temp4_high 96
    set temp4_crit 100

如果你的目的只是调整阈值,不需要修改温度显示数值,那可以直接去掉所有compute指令,只保留set规则即可。

验证步骤

修改配置后,重启lm-sensors服务:

sudo service lm-sensors restart

然后再次运行sensors命令,查看各个温度条目的high和crit是否已经分开显示为你设置的数值。

另外要注意:coretemp传感器的部分条目(比如Package id)可能和核心温度共享硬件阈值,不一定能单独修改,这取决于你的硬件和驱动支持情况。

备注:内容来源于stack exchange,提问作者porton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 09:05:31