DPMS unter Raspbian

Problem: bislang ist es mir nicht gelungen, das DPMS-Stromsparen des Bildschirms hinzukriegen. Er hängt mittels HDMI-DVI-Adapter am Rasp.

Lösung:
1) Minimal-Screensaver einstellen, der aber eigenen Prozess aufruft.
2) Skript per crontab prüfen lassen, ob der Screensaver an ist und dann den Schirm abschalten.
3) Skript zum Anschalten des Schirms auf globale Tastenkombination legen.

Daraus resultieren bei langen Screensaver-Wartezeiten (START) und wenigen Cron-Aufrufen (DIFFERENZ) Vor- und Nachteile:
Vorteile großer DIFFERENZ: man hat länger Zeit, nach START noch das Powersaving zu verhindern, zudem geht mit etwas Glück der Schirm nicht nach einem versehentlichen Tastendruck wieder an, falls START verstreicht, bevor das nächste Cronereignis eintritt. (Vorteil, weil es dauerndes An/Aus verhindert.)
Nachteile großer DIFFERENZ: dümmstenfalls addieren sich START und DIFFERENZ, bis der Schirm ausgeht, zudem geht er nach einem Tastendruck dümmstenfalls erst nach DIFFERENZ wieder an (deswegen ist die Tastenkombi notwendig).

Details zur Lösung:

Screensaver-Einstellungen allgemein:
nur 1 Screensaver
Screensaver: Deco
Schwärzen nach: START
Wechsel nach: 0 = nie
Sperren nach: 0 und nicht aktiviert!
WICHTIG: Aktiviert man die Sperre, klappt die Tastenkombination nicht. Je nach START und DIFFERENZ wartet man die Zeit halt ab, oder gibt sein Passwort blind ein. Das klappt, weil der Sperrdialog exklusiv den Fokus hat und der Cursor im Passwortfeld sitzt. Danach geht die Tastenkombination wieder. Wer seine Himbeere aber daheim betreibt, wird das Passwort nicht brauchen, dafür aber Strom sparen wollen.

Einstellungen des Screensavers deco:
Dauer: 1 min
Farben: 2
min width: 100
min heigth: 100
max depth: 1
kein Häkchen gesetzt

Datei schirm-an.sh im BENUTZER-Verzeichnis:
#! /bin/bash
nummer=`/usr/bin/sudo /bin/fgconsole`
/usr/bin/sudo /usr/bin/tvservice -p
/usr/bin/sudo /bin/chvt 6
/usr/bin/sudo /bin/chvt $nummer

Datei /home/BENUTZER/.config/openbox/lxde-rc.xml bearbeiten:
vor < !-- Keybindings for window switching --> wurde eingefügt:
    < !-- DPMS Screen ON -->
    < keybind key="W-F12">
      < action name="execute">
        < command>/home/BENUTZER/schirm-an.sh
      < /action>
    < /keybind>

Hier muss man Pfad und Dateinamen der Schirm-an-Datei anpassen!
Die gewünschte Tastenkombination muss man auch anpassen. W-F12 bedeutet Winkey+F12. C steht für Control, A für Alt und S für Shift.
Und aufpassen: da ich nicht wusste, wie man WordPress dazu bringt, die HTML-Tags, beginnend mit „< BEFEHL" als Text anzuzeigen, habe ich da immer ein Leerzeichen zwischen. Wenn man's rauskopiert, diese Leerzeichen löschen!

Datei dpms-sparen.sh im BENUTZER-Verzeichnis:
#! /bin/bash
aktiv=`/bin/ps xa | /bin/grep 'de[c]o -root -delay'`
status=`/usr/bin/sudo /usr/bin/tvservice -s | /bin/grep 'TV is off'`
if [ "$aktiv" != "" ]; then
  if [ "$status" == "" ]; then
    /usr/bin/sudo /usr/bin/tvservice -o;
  fi
else
if [ "$status" != "" ]; then
  nummer=`/usr/bin/sudo /bin/fgconsole`;
  /usr/bin/sudo /usr/bin/tvservice -p;
  /usr/bin/sudo /bin/chvt 6;
  /usr/bin/sudo /bin/chvt $nummer;
  fi
fi

Hier muss man den Dateinamen des Screensavers anpassen, wenn man nicht Deco benutzt.

Die Crontabelle editieren:
crontab -e
Dann eine dieser Zeilen einfügen, ggf. abgewandelt:
für Ausführung einmal pro Minute:
* * * * * /home/BENUTZER/dpms-sparen.sh
für Ausführung alle 5 Minuten:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/BENUTZER/dpms-sparen.sh

Hinweis:
Wer sich wundert, warum in den Skripten für wirklich jeden Befehl der absolute Pfad angegeben wurde: wird das Skript nicht von einem selbst aufgerufen, also bspw. vom Cron-Daemon, kennt der meine PATH-Variablen nicht, und scheitert.

Quellen:
http://raspberrycenter.de/forum/grrr-monitor-bleibt-trotz-dpms
http://ubuntuforums.org/showthread.php?t=1422861