Sysinfo-plugin
Aus VDR Wiki
Version vom 4. Mai 2006, 19:07 Uhr von 84.186.19.227 (Diskussion)
Inhaltsverzeichnis |
Beschreibung
Autor: Alberto Pachera
Plugin zeigt Systeminformationen:
- kernel version
- cpu type
- cpu frequenc
- cpu usage
- cpu free
- total memory
- memory free
- memory usage
- video disk space
Bilder
Softwareanforderungen
- sensors (optional)
Installation
Source
Arch-Linux
pacman -S lm_sensors
Crux
prt-get depinst lm_sensors
Debian
apt-get install lm-sensors
Gentoo
emerge lm_sensors
SuSE
yast -i sensors
Konfiguration
Link setzen.
ln -s $SOURCEDIR/VDR/PLUGINS/src/sysinfo/script/sysinfo.sh /usr/local/bin
Laut README ist die sysinfo.sh anzupassen, nur notwendig wenn keine Daten im zweiten Block der OSD Ausgabe zu sehen sein sollten.
Cpu Temp: xxxxxx Fan1: xxxxxx M/B Temp: xxxxxx Fan2: xxxxxx
bash> sysinfo.sh Usage: sysinfo.sh {cputemp|cpufan|mbtemp|mbfan}
Bsp:
bash> sysinfo.sh cputemp
Bekommt man hier keine Ausgabe, ist sensors aufzurufen.
bash> sensors as99127f-i2c-0-2d Adapter: SMBus Via Pro adapter at e800 Algorithm: Non-I2C SMBus adapter VCore 1: +1.72 V (min = +1.53 V, max = +1.87 V) VCore 2: +0.08 V (min = +1.53 V, max = +1.87 V) +3.3V: +3.37 V (min = +2.97 V, max = +3.63 V) +5V: +4.99 V (min = +4.50 V, max = +5.48 V) +12V: +11.86 V (min = +10.79 V, max = +13.11 V) -12V: -12.08 V (min = -15.06 V, max = -12.32 V) ALARM -5V: -5.06 V (min = -5.48 V, max = -4.50 V) fan1: 3792 RPM (min = 3000 RPM, div = 2) fan2: 0 RPM (min = 3000 RPM, div = 2) ALARM fan3: 0 RPM (min = 3000 RPM, div = 2) ALARM temp1: +33°C (limit = +60°C) temp2: +224.0°C (limit = +120°C, hysteresis = +100°C) (beep) temp3: +224.4°C (limit = +120°C, hysteresis = +100°C) vid: +1.700 V alarms: beep_enable: Sound alarm enabled
Wir nehmen das mal auseinander.
sensors | grep -i 'CPU TEMP' | cut -c 10-18 | tr -d ' ' ^ ^ ^ ^ ^ Löschen der Leerzeichen ^ ^ ^ Gibt 'characters' aus, zeichen 10 bis 18 ^ Suchphrase lautet 'CPU TEMP', '-i' steht für 'ignore case distinctions' GROß/klein Schreibung
Folgende Änderung:
- sensors | grep -i 'CPU TEMP' | cut -c 10-18 | tr -d ' ' + sensors | grep -i '^temp1:' | cut -c 10-18 | tr -d ' '
Nun sollte sensors den gewünschten Wert ausgeben:
bash> sysinfo.sh cputemp +33°C
Bei den anderen Daten ist ähnlich zu verfahren.
Probleme
- Bei älteren Versionen von "ps" (welches genutzt wird um "cpu free" anzuzeigen), kann es Probleme mit der Syntax geben sysinfoosd.c:
// Calculate cpu free ExecShellCmd("CPU=0; for I in `ps -eo ""%C"" | grep ""\\.""`; do CPU=`echo $CPU $I | awk '{ print $1 + $2 }'`; done; echo $CPU", cTemp); ^^^^^^^^^^^^^
- Sieht man am besten auf der Konsole, anstatt einzelne WERTE... wird (not found) ausgegeben:
~# ps e%C spec value %C not found
- Änderung:
// Calculate cpu free - ExecShellCmd("CPU=0; for I in `ps -eo ""%C"" | grep ""\\.""`; do CPU=`echo $CPU $I | awk '{ print $1 + $2 }'`; done; echo $CPU", cTemp); + ExecShellCmd("CPU=0; for I in `ps xu | awk '{ print $3 }' | grep ""\\.""`; do CPU=`echo $CPU $I | awk '{ print $1 + $2 }'`; done; echo $CPU", cTemp);