From f28f5e28745c8cdda6c7f7e20024d1e93e021f84 Mon Sep 17 00:00:00 2001 From: Carter Li Date: Sun, 5 Jan 2025 17:27:23 +0800 Subject: [PATCH] CPU (Linux): detect TZ temp if CPU temp is not available --- src/detection/cpu/cpu_linux.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/detection/cpu/cpu_linux.c b/src/detection/cpu/cpu_linux.c index 3fc9c8557..fcce77f66 100644 --- a/src/detection/cpu/cpu_linux.c +++ b/src/detection/cpu/cpu_linux.c @@ -44,12 +44,20 @@ static double parseHwmonDir(FFstrbuf* dir, FFstrbuf* buffer) if( ffStrbufContainS(buffer, "cpu") || ffStrbufEqualS(buffer, "k10temp") || // AMD + ffStrbufEqualS(buffer, "fam15h_power") || // AMD ffStrbufEqualS(buffer, "coretemp") // Intel ) return value / 1000.; return 0.0/0.0; } +static double detectTZTemp(FFstrbuf* buffer) +{ + if (ffReadFileBuffer("/sys/class/thermal/thermal_zone0/temp", buffer)) + return ffStrbufToDouble(buffer) / 1000.; + return 0.0/0.0; +} + static double detectCPUTemp(void) { FF_STRBUF_AUTO_DESTROY baseDir = ffStrbufCreateA(64); @@ -79,7 +87,7 @@ static double detectCPUTemp(void) ffStrbufSubstrBefore(&baseDir, baseDirLength); } - return 0.0/0.0; + return detectTZTemp(&buffer); } #ifdef __ANDROID__