From 9e33a2a1bf79079b2ad65a377cff89b385d3e77d Mon Sep 17 00:00:00 2001 From: PA4WDH Date: Wed, 24 May 2023 15:27:30 +0200 Subject: Add README.html and lo_graph_example.png --- README.html | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++ lo_graph_example.png | Bin 0 -> 48845 bytes 2 files changed, 115 insertions(+) create mode 100644 README.html create mode 100644 lo_graph_example.png diff --git a/README.html b/README.html new file mode 100644 index 0000000..494a75d --- /dev/null +++ b/README.html @@ -0,0 +1,115 @@ +

cputemp2maxfreq

+

+ This daemon sets the cpufreq scale_max_freq setting and scales it down when + the CPU reaches a given temperature. +

+

Why this program?

+

+ I recently bought a new mainboard, an Asrock J5040-ITX. + This board has a passively cooled CPU which means heat can build up when you + give it a GPU or CPU intensive task. It will happily heat itself up to over + 95°C, and since i'm a Gentoo user, that happens quite a lot :-). I thought + it's wasn't a good idea to leave it running for hours at 95°C. One + solution could be to add a small fan, but I hate fans and that's why i got a + fanless mainboard in the first place. The other solution is to reduce CPU heat + generation when the temperature is too high, and the best way to do that is to + reduce it's frequency as can be done with cpufreq within linux.
+ When discovered there is no program to do that i deciced to write it myself. +

+

What does this program do?

+

+ It's basic function is simple: It reads the CPU's temperature sensor and if + the temperature is above a certain threshold it will lower scale_max_freq to + lower the CPU speed and allow it to cool down. When the temperature drops + below the threshold it will increase scalea_max_freq again to allow it to + reach it's full speed. +

+

+ There is a lot you can tune and do with this basic function, these are the + options you can pass to cputemp2maxfreq: +

+ +

+ To use the CSV file with libreOffice first stop the daemon to make sure all + data has been written. Then use LibreOffice Calc to open the CSV file. In the + text import dialog use the following options: +

+ +

+ The preview should already show a nicely formed table, so click Ok. +

+

+ If the document is opened read-only, click the Edit Document button. Select + the whole sheet, open the Insert menu and choose Chart... +

+

+ Now select Chart Type XY (Scatter) and subtype Lines Only and click Finish. +

+

+ You should now have a graph and depending on the number of data points it + might beusefull to make it wider to give the graph some more space. Becaue + the CPU temperatures are much lower numbers than the frequencies it's useful + to add a second Y axis, to do so click on the background and choose + Insert/Delete axes and enable the secondary Y axis. Now click the first + temperature line (usually at the bottom of the chart) and choose Format Data + Series, and set Allign Data Series to Secondary Y axis. Do the same for the + second temperature line. +

+

The resulting graph should look like this:

+ +

+ You can clearly see the scaling this daemon does between 12:37:26 and 12:40:19. +

+

How to install this program

+

+ Since i'm a Gentoo user i made an ebuild provided in the gentoo directory of + the source code. Place it in your own overlay to use it, the suggested + category is sys-power. The ebuild will install the binary in /usr/sbin and + install an initscript so you can start the daemon on boot. +

+

+ To install from source manually the best way is to git clone + https://code.pa4wdh.nl.eu.org/tools/cputemp2maxfreq. Change to the + source directory and type make to start the build proces. It + shouldn't take long since this is a very small program. The result should + be an executable called cputemp2maxfreq. +

+

What can i do with this program?

+

+ The daemon has two uses: Get the maximum performance from your CPU when the + temperature allows it, and protect the hardware from overheating. +

+

+ Since i'm a Gentoo user there is a topic about this program on thei + Gentoo forums. +

+

Happy computing!

diff --git a/lo_graph_example.png b/lo_graph_example.png new file mode 100644 index 0000000..5e56270 Binary files /dev/null and b/lo_graph_example.png differ -- cgit v1.2.3