零依赖获取传感器数据

I18N: English | 简体中文

当我们提到在 Linux 上读取传感器时,lm-sensors 一直是最为常见的答案。多年来我们总是选用它来读取温度、电压和风扇转速。

lm-sensors 使用 Perl 语言编写,且实现了旧内核兼容,这使得它需要很多依赖:

[kkocdko@klf apps]$ sudo dnf install lm_sensors
... 一些无聊的日志
Installing dependencies:
 perl-AutoLoader  noarch  5.74-492.fc37
 perl-B           x86_64  1.83-492.fc37
 perl-Carp        noarch  1.52-489.fc37
... 很多很多依赖包!
Install  59 Packages
Installed size: 26 M

然而,在 5.6 内核后,我们可以通过 hwmon 模块 读取传感器数据,而无需任何依赖。所以我写了这个 Shell 脚本:

hwmoncat - utils4fedora

此脚本的输出:

[kkocdko@klf apps]$ ./hwmoncat
- bat1
in0: 15.671 V

- nvme
temp1_composite: 23.85 C

- amdgpu
freq1_sclk: 200 MHz
in0_vddgfx: 0.656 V
temp1_edge: 24.00 C

- k10temp
temp1_tctl: 24.88 C

与 lm-sensors 对比:

[kkocdko@klf apps]$ sensors
k10temp-pci-00c3
Adapter: PCI adapter
Tctl:         +31.0°C

nvme-pci-0200
Adapter: PCI adapter
Composite:    +25.9°C

amdgpu-pci-0500
Adapter: PCI adapter
vddgfx:      656.00 mV
edge:         +29.0°C

BAT1-acpi-0
Adapter: ACPI interface
in0:          15.67 V

鸣谢