PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Temperaturen in Torsmo ab Kernel 2.6.10



Dellerium
04.06.05, 18:57
Wie wohl einige gemerkt haben, schein Torsmo unter Kernel 2.6.10 und grösser Probleme zu haben die Temperaturen auszulesen.
Nun, jetzt wo es Sommer wird ist das natürlich eher unpraktisch :D

Ich hab mir daher ein Quick&Dirty Perl Script geschrieben das sensors ( lm_sensors ) abfragt und nur den Temperaturwert zurückliefert ( Benutze ich auch, um die Temperaturen für MRTG aufzubereiten ;) :



#!/usr/bin/perl

## Daten aus sensors einlesen
open (DATA,"/usr/bin/sensors |");
@data = <DATA>;
close (DATA);

## nur die CPU Temperatur ist interessant
foreach $element (@data) {

if ($element =~ m/^temp2/ ) {
## den Zahlenwert extrahieren...
($schrott, $interesting) = split (/\+/, $element);
($interesting, $schrott) = split (/\°C\ \ \(/, $interesting);

## Temperatur ausgeben
print "$interesting\n";
}
}


Das einzige was im Script angepasst werden muss ist der String temp2 - der muss natürlich auf die CPU zeigen. Bei mir ist das halt temp2 - kann auch z.B. temp1 sein. Ausserdem klappt das natürlich nur, wenn sensors bei euch dasselbe liefert wie bei mir. Ansonsten müssen die regulären Ausdrücke angepasst werden.

Wenn man das jetzt in eine Datei kompiert, die per "chmod 755" ausführbar macht kann man in seiner .torsmo.conf folgendes eintragen:


${color #667795}CPU:$color ${execi 0.5 -PfadZumScript-} C${color #667795}

Jetzt ruft Torsmo das kleine Script alle 0,5 Sekunden auf und holt sich die aktuelle CPU Temperatur.

Vielleicht hilft das ja dem Einen oder Anderen :)

Shutdown
04.06.05, 21:07
Wo wir sowas hier grade haben, ich hab das Problem bei mir selber seit ca 2 Monaten auch selber gelöst und dazu noch Scripts für Spannungen und HDD-Temperaturen gemacht...

Edit: Danke an kratz00 für eine kleine Vereinfachung der Temperatur- und Spannungs-Scripte!


Temperaturen: (Pfad zum i2C-Sensor aus /sys/... als Argument übergeben)

#! /bin/sh

VAL_I2C=`cat $1`
echo "${VAL_I2C:0:2}.${VAL_I2C:2:1} °C"

Spannungen: (Pfad zum i2C-Sensor aus /sys/... als Argument übergeben)

#! /bin/sh

VAL_I2C=`cat $1`"
echo "${VAL_I2C:0:1}.${VAL_I2C:1:2} V"

Festplattentemperaturen: (Festplattentyp [IDE/SATA] und Device angeben)

#! /bin/sh

if [ -z "$1" -o -z "$2" ]
then
echo "Usage: hddtscript [IDE/SATA] [/dev/...]"
exit 0
fi

if [ $1 = "IDE" ]; then
TEMPVAL=`/usr/local/sbin/hddtemp -n $2`
echo $TEMPVAL".0 °C"
fi

if [ $1 = "SATA" ]; then
TEMPVAL=`/usr/local/sbin/smartctl -a -d ata $2 | grep Temperature | cut -c 88-`
echo $TEMPVAL".0 °C"
fi

Für SATA-Platten muss der libata-Treiber im Kernel mit ATA-Pass-Throu gepatcht sein!

Hier ein paar kleine Anwendungsbeispiele in der .torsmorc:


${exec ~/tempscript /sys/bus/i2c/devices/3-0290/temp2_input}
${exec ~/voltscript /sys/bus/i2c/devices/3-0290/in0_input}
${execi 10 ~/hddtscript IDE /dev/hdb}

Hoffe das kann auch irgendwer gebrauchen ;)

Shutdown

PS: In den aktuellen CVS-Versionen von torsmo ist das Problem behoben, da funktioniert jetzt wieder alles wie früher.