From 09d2a732eaca1b3ce300887d11818685e8aa42d3 Mon Sep 17 00:00:00 2001 From: volker Date: Sun, 10 Mar 2013 19:43:13 +0000 Subject: disable plugin sensors if not found git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@1196 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- plugin_raspi.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'plugin_raspi.c') diff --git a/plugin_raspi.c b/plugin_raspi.c index bd1dea8..c6e7e45 100644 --- a/plugin_raspi.c +++ b/plugin_raspi.c @@ -44,6 +44,7 @@ #include #include #include +#include #ifdef WITH_DMALLOC #include @@ -53,6 +54,7 @@ #define RASPI_FREQ_PATH "/sys/devices/system/cpu/cpu0/cpufreq/" #define RASPI_FREQ_VALUE "cpuinfo_cur_freq" #define RASPI_FREQ_IDFILE "scaling_driver" +#define RASPI_FREQ_ID "BCM2835 CPUFreq" #define RASPI_TEMP_PATH "/sys/class/thermal/thermal_zone0/" #define RASPI_TEMP_VALUE "temp" #define RASPI_TEMP_IDFILE "type" @@ -132,15 +134,32 @@ int plugin_init_raspi(void) { char checkFile[128]; - AddFunction("raspi::cpufreq", 0, my_cpufreq); - AddFunction("raspi::cputemp", 0, my_cputemp); - snprintf(checkFile, sizeof(checkFile), "%s%s", RASPI_TEMP_PATH, RASPI_TEMP_IDFILE); if (strncmp( readStr(checkFile), RASPI_TEMP_ID, strlen(RASPI_TEMP_ID) ) != 0) { error("Warning: no raspberry pi thermal sensor found: value of '%s' is '%s', should be '%s'", checkFile, readStr(checkFile), RASPI_TEMP_IDFILE); } + snprintf(checkFile, sizeof(checkFile), "%s%s", RASPI_TEMP_PATH, RASPI_TEMP_VALUE); + if (0 == access(checkFile, R_OK)) { + AddFunction("raspi::cputemp", 0, my_cputemp); + } else { + error("Error: File '%s' not readable, no temperature sensor found", checkFile); + } + + snprintf(checkFile, sizeof(checkFile), "%s%s", RASPI_FREQ_PATH, RASPI_FREQ_IDFILE); + if (strncmp( readStr(checkFile), RASPI_FREQ_ID, strlen(RASPI_FREQ_ID) ) != 0) { + error("Warning: no raspberry pi frequence sensor found: value of '%s' is '%s', should be '%s'", + checkFile, readStr(checkFile), RASPI_FREQ_IDFILE); + } + + snprintf(checkFile, sizeof(checkFile), "%s%s", RASPI_FREQ_PATH, RASPI_FREQ_VALUE); + if (0 == access(checkFile, R_OK)) { + AddFunction("raspi::cpufreq", 0, my_cpufreq); + } else { + error("Error: File '%s' not readable, no frequency sensor found", checkFile); + } + return 0; } -- cgit v1.2.3