lm-传感器如何正确设置/计算最小/最大只读值?

lm-传感器如何正确设置/计算最小/最大只读值?

我有一台(非常旧的)计算机(配有华硕 A8N-SLI DELUXE 主板和 AMD Opteron(tm) 处理器 180),我用 munin 进行监控,并且Vcore Voltage读取的值lm-sensors始终处于某种Critical状态,因为输入电压始终低于最小阈值。多年来我从来没有太烦恼过,但今天我试图纠正这个误报。但是,经过几个小时的故障排除后,我无法解决该问题,因为我无法更改只读的最小/最大阈值。

以下是我迄今为止的发现:

由于输入 Vcor​​e 电压值超出最小/最大值,因此出现临界状态。

Asensors -u报告如下:

...
atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage:
  in0_input: 1.104
  in0_min: 1.450
  in0_max: 1.750
...

如您所见,in0_minis1.45Vin0_input小于 min 1.104V

阅读 lm-sensors 配置文件的文档后(https://linux.die.net/man/5/sensors.conf)我发现我可以通过一些正确的配置来纠正最小/最大值。所以我创建了一个/etc/sensors.d/atk0110.conf包含以下内容的文件:

chip "atk0110-*"

   label in0 "Vcore Voltage"

   set in0_min 1.05

然后我执行sensors -s(阅读手册页中的部分Set Statement以获取更多信息)以使设置生效并繁荣!我收到以下错误:

Error: File /etc/sensors.d/atk0110.conf, line 5: Failed to set value
atk0110-acpi-0: At least one "set" statement failed

经过一番谷歌搜索后,我发现发生此错误是因为这些值在 BIOS 中硬编码且无法更改。一旦加载模块,它们就会通过 sysfs 文件系统暴露给内核asus_atk0110,并从路径中读取值/sys/bus/acpi/drivers/ATK0110/ATK0110:00/hwmon/hwmon1/。特别是in0_min从该文件读取值:/sys/bus/acpi/drivers/ATK0110/ATK0110:00/hwmon/hwmon1/in0_min

我的第二次尝试是尝试尝试compute传感器配置文件中的语句,但我很快发现我不能只是计算最小/最大。当使用sensors.conf 文件中的compute 语句时,输入的所有子功能都会受到计算的影响。从sensors.conf手册页:

A compute statement describes how a feature's raw value should be translated to a real-world value, and how a real-world value should be translated back to a raw value again. This is most useful for voltage sensors, because in general sensor chips have a limited range and voltages outside this range must be divided (using resistors) before they can be monitored...
...
...
A compute statement applies to all sub-features of the target feature for which it makes sense.
...

这意味着在我的例子中,所有三个值 , ,in0_input都会受到影响。所以如果我在配置中使用类似的东西:in0_minin0_max

chip "atk0110-*"

   label in0 "Vcore Voltage"

   compute in0 @-0.4,@

我最终读到的是:

atk0110-acpi-0
Adapter: ACPI interface
Vcore Voltage:
  in0_input: 0.992
  in0_min: 1.050
  in0_max: 1.350

正如您所看到的,所有值都减少了 0.4 伏,因此输入值再次低于最小值,并且批判的穆宁地位依然存在。

有没有什么办法可以软调仅有的流明传感器中的最小/最大值(如果这些值是只读的)?

另一种选择是如果可能的话尝试从 munin 方面解决问题,但在这种情况下问题的根源是 lm 传感器,所以我相信这就是应该解决问题的地方。

答案1

这个答案通过更改 munin 使用的警告/严重阈值解决了 munin 方面的问题。所以虽然我的问题解决了,但我不会将答案标记为解决方案。理想情况下,问题应该围绕流明传感器来解决。

进入使用该插件的节点sensors_volt并执行命令munin-run sensors_volt config。该命令将返回 munin 识别的键/值列表:

# munin-run sensors_volt config
graph_title Voltages
graph_vlabel Volt
graph_args --base 1000 --logarithmic
graph_category sensors
volt1.label Vcore Voltage
volt1.warning 1.51:1.69
volt1.critical 1.45:1.75
volt2.label  +3.3 Voltage
volt2.warning 3.12:3.48
volt2.critical 3.00:3.60
volt3.label  +5.0 Voltage
volt3.warning 4.70:5.30
volt3.critical 4.50:5.50
volt4.label +12.0 Voltage
volt4.warning 11.60:12.80
volt4.critical 11.20:13.20

munin.conf这些键/值可以在您的主节点中更改。

就我而言,我想更改volt1.warningvolt1.critical值,因此在定义主机的部分中我添加了以下行:

[host.localdomain]
    address 1.2.3.4
    use_node_name yes
    sensors_volt.volt1.warning 1.05:1.40
    sensors_volt.volt1.critical 1.00:1.45

因此,现在最小/最大警告值已设置为 1.05V/1.40V,临界值已设置为 1V/1.45V。

答案2

如果您的系统没有过压或欠压,您可能会考虑忽略核心电压:

chip "atk0110-*"
 ignore in0

答案3

您必须是 root 才能执行 set 命令,因此您需要使用sudo sensors -s,然后它应该更改限制。当您再次运行传感器时,限制现在应该是您设置的。

相关内容