Files
pve-custom/readme.md
2025-04-24 16:56:51 +00:00

156 lines
4.7 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Nag notice
## manual steps
- `cd /usr/share/javascript/proxmox-widget-toolkit`
- `cp proxmoxlib.js proxmoxlib.js.bak`
- `nano proxmoxlib.js`
- search for "function(orig_cmd) {" and add "orig_cmd();" and "return;" just after it
- `systemctl restart pveproxy.service`
---
# Sensor data
## 1) Lets install lm-sensors to show us the information we need. Type the following in the proxmox shell
apt-get install lm-sensors
Next we can check if its working. To do this we can type `sensors`
The main part we are interested in is:
root@pve:~# sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +23.0°C (high = +84.0°C, crit = +100.0°C)
Core 0: +21.0°C (high = +84.0°C, crit = +100.0°C)
Core 1: +21.0°C (high = +84.0°C, crit = +100.0°C)
Core 2: +22.0°C (high = +84.0°C, crit = +100.0°C)
Core 3: +19.0°C (high = +84.0°C, crit = +100.0°C)
If you see this you are good to go!
## 2) Adding the output of sensors to information
Here we will use `Nano` to edit some files. In your shell, type the following:
nano /usr/share/perl5/PVE/API2/Nodes.pm
Next, you can press **F6** to search for `my $dinfo` and press **Enter**
The code should look like this:
$res->{pveversion} = PVE::pvecfg::package() . "/" .
PVE::pvecfg::version_text();
my $dinfo = df('/', 1); # output is bytes
We are going to add the following line of code in between: `$res->{thermalstate} = \sensors\;`
So the final result should look like this:
$res->{pveversion} = PVE::pvecfg::package() . "/" .
PVE::pvecfg::version_text();
$res->{thermalstate} = `sensors`;
my $dinfo = df('/', 1); # output is bytes
Now press **Ctrl+O** to save and **Ctrl+X** to exit.
## 3) Making space for the new information
Next we will need to edit another file, So once again we will use `Nano`
Type the following command into your shell: `nano /usr/share/pve-manager/js/pvemanagerlib.js`
Once in press **F6** to search for my `widget.pveNodeStatus` and press **Enter**
You will get a snippit of code that looks like this:
Ext.define('PVE.node.StatusView', {
extend: 'PVE.panel.StatusView',
alias: 'widget.pveNodeStatus',
height: 300,
bodyPadding: '5 15 5 15',
layout: {
type: 'table',
columns: 2,
tableAttrs: {
style: {
width: '100%'
}
}
},
Next change the `bodyPadding: '5 15 5 15',` to `bodyPadding: '20 15 20 15',`
As well as `height: 300,` to `height: 360,`
**Dont close the file this time!**
## 4) Final part to edit
Ok so you know the drill by now press **F6** to search for `PVE Manager Version` and press **Enter**
You will see a section of code like this:
{
itemId: 'version',
colspan: 2,
printBar: false,
title: gettext('PVE Manager Version'),
textField: 'pveversion',
value: ''
}
Ok now we need to add some code after this part. The code is:
{
itemId: 'thermal',
colspan: 2,
printBar: false,
title: gettext('CPU Thermal State'),
textField: 'thermalstate',
renderer:function(value){
const c0 = value.match(/Core 0.*?\+([\d\.]+)Â/)[1];
const c1 = value.match(/Core 1.*?\+([\d\.]+)Â/)[1];
const c2 = value.match(/Core 2.*?\+([\d\.]+)Â/)[1];
const c3 = value.match(/Core 3.*?\+([\d\.]+)Â/)[1];
return `Core 0: ${c0} ℃ | Core 1: ${c1} ℃ | Core 2: ${c2} ℃ | Core 3: ${c3} ℃`
}
}
Therefore your final result should look something like this:
{
itemId: 'version',
colspan: 2,
printBar: false,
title: gettext('PVE Manager Version'),
textField: 'pveversion',
value: ''
},
{
itemId: 'thermal',
colspan: 2,
printBar: false,
title: gettext('CPU Thermal State'),
textField: 'thermalstate',
renderer:function(value){
const c0 = value.match(/Core 0.*?\+([\d\.]+)Â/)[1];
const c1 = value.match(/Core 1.*?\+([\d\.]+)Â/)[1];
const c2 = value.match(/Core 2.*?\+([\d\.]+)Â/)[1];
const c3 = value.match(/Core 3.*?\+([\d\.]+)Â/)[1];
return `Core 0: ${c0} ℃ | Core 1: ${c1} ℃ | Core 2: ${c2} ℃ | Core 3: ${c3} ℃`
}
}
Now we can finally press **Ctrl+O** to save and **Ctrl+X** to exit.
## 5)Restart the summery page
To do this you will have to type in the following command: `systemctl restart pveproxy`