BetterTemps
When the temperatures are polled to plot the temperature graph in 'status monitoring' on hardware that utilises hardware p-states (speed shift) the clock speeds are so sensitive that this can add a significant amount of temperature for a brief moment during the polling period, which will cause elevated temperatures to be recorded on the graph that don't accurately represent the average temperature of the unit. This patch will make it fetch a cached value from a previous poll instead, the actual poll will need to be added to the cron.
First check if you see the 'Cron' item on the 'Services' menu. If it is missing then go to the 'System' menu and select 'Package Manager', from there select 'Available Packages' and then install the 'Cron' Package.
Go to the 'Services' menu, select 'Cron', then click on the green '+Add' button.
For the top 5 boxes which are Minute, Hour, Day of the month, Month of the Year, and Day of the week, populate the box with the asterisk symbol '*'.
For the user box enter 'root'.
For the command box add the following. All pasted in as one line. /sbin/sysctl -q hw.acpi.thermal dev.cpu dev.t5nex dev.armada_thermal dev.cordbuc dev.pchtherm | /usr/bin/grep temperature > /tmp/rrd.temps.
Finally click the blue 'Save' Button
Next add and apply the the patch as below.
Paste the below code into the Patch Contents box.
Add a description such as 'better cpu temp monitoring, requires sysctl temp cron' in the Description box.
Set Path Strip Count to '0'.
Base Directory to '/etc/inc/'.
--- rrd.inc 2024-06-13 10:40:51.931237000 +0100 +++ rrd.inc 2024-06-13 11:03:17.066678000 +0100 @@ -744,7 +744,7 @@ $unknown = ""; $rrdupdateds = ""; $rrdsensors = ""; - $_gb = exec("/sbin/sysctl -q hw.acpi.thermal dev.cpu dev.t5nex dev.armada_thermal dev.cordbuc dev.pchtherm | /usr/bin/grep temperature | /usr/bin/cut -d':' -f1", $sensors_array); + $_gb = exec("cat /tmp/rrd.temps | /usr/bin/cut -d':' -f1", $sensors_array); if (!empty($sensors_array)) { foreach ($sensors_array as $sensor) { @@ -753,7 +753,7 @@ $rrdcreateds .= "DS:$sensor_name:GAUGE:$sensorsvalid:0:100 "; $unknown .= ":U"; $rrddsname = strtoupper($sensor_name); - $rrdupdateds .= "$rrddsname=`$sysctl -qn $sensor | $sed 's/C//'`\n"; + $rrdupdateds .= "$rrddsname=`/usr/bin/grep $sensor /tmp/rrd.temps | /usr/bin/cut -d' ' -f2 | $sed 's/C//'`\n"; $rrdsensors .= ":\${$rrddsname}"; } if (!file_exists("$rrddbpath$ifname$sensors")) {