PVE 添加 CPU GPU Nvme 温度显示 (AMD CPU)
1. 安装必要的软件包
apt-update && apt-get install lm-sensors -y
2. 安装完成后执行指令 [sensors]
root@pve:~# sensors
amdgpu-pci-0500
Adapter: PCI adapter
vddgfx: 1.44 V
vddnb: 937.00 mV
edge: +50.0°C
PPT: 14.00 W
nvme-pci-0400
Adapter: PCI adapter
Composite: +53.9°C (low = -5.2°C, high = +79.8°C)
(crit = +84.8°C)
k10temp-pci-00c3
Adapter: PCI adapter
Tctl: +52.8°C
3. 下面代码的正则表达式需要按照上面的输出文本进行调整
4. 找到文件 [Nodes.pm] 路径:[/usr/share/perl5/PVE/API2]
搜索代码关键字:
$dinfo = df('/', 1);
在它的下面添加代码:
$res->{CPUtemperature} = `sensors`;
$res->{GPUtemperature} = `sensors`;
$res->{Nvmetemperature} = `sensors`;
修改后的样子:
my $dinfo = df('/', 1); # output is bytes
$res->{CPUtemperature} = `sensors`;
$res->{GPUtemperature} = `sensors`;
$res->{Nvmetemperature} = `sensors`;
$res->{rootfs} = {
total => $dinfo->{blocks},
avail => $dinfo->{bavail},
used => $dinfo->{used},
free => $dinfo->{blocks} - $dinfo->{used},
};
return $res;
5. 找到文件 [pvemanagerlib.js] 路径:[/usr/share/pve-manager/js]
搜索代码找到关键字 [PVE.node.StatusView]:
Ext.define('PVE.node.StatusView', {})
关键字下面找到高度:
height: 350, // 按需求增加高度 例如我自己的是:height: 450
添加温度显示代码,找到 [items] 在代码中添加:
{
itemId: 'CPUtemperature',
colspan: 2,
printBar: false,
title: gettext('CPU Temperature'),
textField: 'CPUtemperature',
renderer: function(value){
const regex = /Tctl:\s+([-+]?[0-9]*\.?[0-9]+)/;
const match = value.match(regex);
const temperature = match ? parseFloat(match[1]) : null;
return ` ${temperature}℃`;
}
},
{
itemId: 'GPUtemperature',
colspan: 2,
printBar: false,
title: gettext('GPU Temperature'),
textField: 'GPUtemperature',
renderer: function(value){
const regex = /edge:\s+([-+]?[0-9]*\.?[0-9]+)/;
const match = value.match(regex);
const temperature = match ? parseFloat(match[1]) : null;
return ` ${temperature}℃`;
}
},
{
itemId: 'Nvmetemperature',
colspan: 2,
printBar: false,
title: gettext('Nvme Temperature'),
textField: 'Nvmetemperature',
renderer: function(value){
const nvmeTemps = Array.from(value.matchAll(/Composite.*?\+([\d\.]+)?/g), m=>m[1]);
return nvmeTemps.map((element, index) => `${element}℃`).join(' | ');
}
}
添加完成后重启PVE面板:
systemctl restart pveproxy
效果图

PVE 添加CPU GPU Nvme 温度显示 (AMD CPU)