i3status - Default to acpitz(4) instead of cpu(4) for OpenBSD temperature readings

The acpitz(4) values are eventually used by the kernel to determine if the machine
is getting too hot.
This commit is contained in:
Jasper Lievisse Adriaanse 2012-10-10 09:53:34 +02:00 committed by Michael Stapelberg
parent ed03d2450c
commit 1c2517a399
2 changed files with 9 additions and 6 deletions

View File

@ -31,9 +31,11 @@ enum { O_DZEN2, O_XMOBAR, O_I3BAR, O_NONE } output_format;
* Due to the fact there are various ways to obtain a temperature reading, THERMAL_ZONE will need
* to be adjustable enough for those situations. As it can either be hw.sensors.cpu%d.temp0, or
* hw.sensors.acpitz%d.temp0 or even something different entirely within hw.sensors.%s.temp0.
* XXX: For now just check cpu%d.temp0. Adjust this later.
* XXX:
* Due to the fact the i3status API only allows to set the THERMAL_ZONE parameter to an integer,
* we can't make this fully configureable (yet?).
*/
#define THERMAL_ZONE "cpu%d"
#define THERMAL_ZONE "acpitz%d"
#endif

View File

@ -88,18 +88,19 @@ void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const
goto error;
}
/*
* 'path' is actually the node within the full path (eg, cpu0).
* 'path' is actually the node within the full path (currently always acpitz0).
* XXX: Extend the API to allow a string instead of just an int for path, this would
* allow us to have a path of 'acpitz0' for example.
* allow us to build an arbitrary path.
*/
if (strncmp(sensordev.xname, path, strlen(path)) == 0) {
mib[3] = SENSOR_TEMP;
for (numt = 0; numt < sensordev.maxnumt[SENSOR_TEMP]; numt++) {
mib[4] = numt;
if (sysctl(mib, 5, &sensor, &slen, NULL, 0) == -1) {
if (errno != ENOENT)
if (errno != ENOENT) {
warn("sysctl");
continue;
continue;
}
}
outwalk += sprintf(outwalk, "%.2f", (sensor.value - 273150000) / 1000000.0 );
}