Start   Impressum   Lizenz         online lesen   Download         Online-Shop   Jumping Blue Turtle

Debian für Unternehmer - Debian-Know-how

1207: Bildschirmschoner bändigen

Nichts nervt an einem Rechner mehr als irgendwelche Features, die man nicht braucht. Stellen Sie sich vor, Sie lesen einen Text und alle 5 Minuten geht der Bildschirm aus! Sie müssen dann erst eine Taste drücken und es dauert 5 (!) Sekunden, bis der Bildschirm wieder angeht. Erst dann können Sie weiterlesen, aber auch nur dann, wenn Sie die Stelle im Text gefunden haben, an der Sie waren, bevor der Bildschirm ausgegangen ist.

Es ist nicht zu fassen: Wenn es in der Linux-Welt um das Beseitigen von Bildschirmschonern geht, braucht es bei jeder neuen Linux-Version erneut einen ungerechtfertigt hohen Aufwand, um das Thema so zu erforschen, dass es unter Kontrolle gebracht werden kann!

Ich zeige Ihnen wieder einmal exklusiv, wie Sie ein Debian-System so einstellen können, dass Sie in den wichtigsten Situationen von hartnäckigen Bildschirmschonern verschont bleiben.

Dieses mal gehe ich besonders gründlich vor, denn es ist bereits das vierte mal, dass alle bisher erforschten Lösungsansätze bei einer neuen Linux-Version vollständig versagten. Ich hoffe, dass ich dieses mal wirklich alle relevanten Verstecke entdeckt habe, in denen entsprechende Einstellungen vorgenommen werden können!

1. X-Window-System – Bildschirmschoner und Energiesparmodus

Für das X-Window-System allgemein gibt es 2 Orte, an denen Sie Bildschirmschoneritis vorbeugen können.

1.1. Im Debian-Menü

Hier ist per Default noch etwas aktiviert, das Sie deaktivieren müssen. Betreten Sie den Ort des Geschehens:

  • K
  • Debian
  • Screen
  • Saving
  • ScreenSaver Preferences
  • Es erscheint ein Fenster mit dem Titel "XScreenSaver" und folgendem Inhalt:
    Warning:
    
    The XScreenSaver daemon doesn't seem to be running
    on display ":0.0". Launch it now?
    
                                         [Cancel] [OK]
    

    Wählen Sie bitte "Cancel".

  • Sie befinden sich im Reiter "Advanced":
    • Die Option "Power Management Enabled" ist per Default nicht angekreuzt. Sollte hier wider Erwarten ein Kreuz existieren, dann nehmen Sie es raus.
  • Wechseln Sie in den Reiter "Display Modes":
    • Die Option "Mode" steht auf "Random Screen Saver". Stellen Sie hier "Disable Screen Saver" ein.

Schließen Sie das Fenster. Hier sind Sie fertig.

1.2. In der Datei "/etc/X11/xorg.conf"

Unter Umständen (wenn Sie z.B. einen NVIDIA-Treiber installiert haben) kann DPMS aktiviert sein. Das kann zur Folge haben, dass während der Arbeit der Bildschirm ausgeht. Um das zu ändern, gehen Sie wie folgt vor:

  1. Öffnen Sie die Datei /etc/X11/xorg.conf mit einem Texteditor:
    nedit /etc/X11/xorg.conf
    
  2. Suchen Sie nach der Section "Monitor" und setzen Sie die Option "DPMS" auf "false".
    Vorher:
    Section "Monitor"
        Identifier     "Monitor0"
        .
        .
        Option         "DPMS"
    
    Nachher:
    Section "Monitor"
        Identifier     "Monitor0"
        .
        .
        Option         "DPMS"  "false"
    
  3. Speichern Sie und schließen Sie die Datei wieder.

2. KDE – Bildschirmschoner

Für die KDE gibt es einen weiteren Ort, der möglicherweise die Ursache einer Plage sein kann. Per Default müsste hier zwar alles deaktiviert sein, aber Nachsehen kann nicht schaden:

  • K
  • Control Center
  • Appearance & Themes
  • Screen Saver
  • Settings
  • Start automatically (sollte deaktiviert sein)

3. KDM – Bildschirmschoner

In der Datei "/etc/X11/xorg.conf" gibt es Einstellmöglichkeiten, die mit hoher Sicherheit dafür sorgen, dass, wenn die Login-Maske des KDM aktiv ist, nach 10 Minuten Nichtstun ein Bildschirmschoner aktiv wird.

Das Perfide daran ist: Wenn dieser Bildschirmschoner einmal in der Login-Maske aktiv geworden ist, dann wird auch in sämtlichen KDE-Sitzungen nach 10 Minuten Nichtstun ein Bildschirmschoner aktiv werden. Erst nach einem Reboot des Rechners hört das auf.

Wer also meint, "in einer Login-Maske stört mich doch ein Bildschirmschoner nicht", dem kann ich nur raten: Schalten Sie das Ding aus!

3.1. In der "man"-Page nachlesen

Die erste große Aufgabe ist es, die relevanten Optionen der Datei "/etc/X11/xorg.conf" zu erforschen. Wenn Sie das selbst tun möchten, dann wäre der erste Schritt der folgende:

man xorg.conf

3.2. Hinweis zur Fehlersuche, falls etwas schief geht

Sie müssen die Datei "/etc/X11/xorg.conf" editieren. Wenn Sie dabei einen Fehler machen (und diesen Fehler unbemerkt abspeichern), dann startet das X-Window-System beim nächsten Rechner-Neustart nicht mehr. Stattdessen werden Sie mit der Text-Konsole arbeiten müssen. Sollte das der Fall sein, dann könnte folgendes Wissen bei der Ursachenfindung hilfreich sein:

  • Im Fall eines Fehlstarts enthält die Datei "/var/log/Xorg.0.log" den Grund, warum X11 nicht starten wollte.
  • Bei jedem X11-Start rotiert der Inhalt von "/var/log/Xorg.0.log" nach "/var/log/Xorg.0.log.old"

3.3. Datei "/etc/X11/xorg.conf" verstehen

  • Die Datei besteht aus "Sections".
  • Jede "Section" hat einen "Identifier".
  • Es muss eine "Section" vom Typ "Screen" existieren.
    • Wenn sie den Namen "Screen0" hat, dann gibt es in ihr einen Identifier mit dem Inhalt "Screen0".
  • Es muss eine Section vom Typ "ServerLayout" existieren.
    • Sie muss unbedingt einen "Identifier" und einen "Screen" haben.
    • Geben wir dem ServerLayout den Namen "Layout0", dann muss der "Identifier" den Inhalt "Layout0" haben.
    • Das ServerLayout muss sich auf einen "Screen" beziehen. Da wir einen "Screen" namens "Screen0" haben, sollte bei "Screen" der Inhalt "Screen0" stehen. Wer mehrere Bildschirme auf dem Schreibtisch stehen hat, kann optional noch ein paar Koordinaten angeben, um die Reihenfolge dieser Bildschirme zu bestimmen.
  • In der Section "ServerLayout" können wir nun das Bildschirmschonerverhalten konfigurieren.

3.4. Datei "/etc/X11/xorg.conf" editieren

Das Problem ist, dass in der Datei "/etc/X11/xorg.conf" so wenig wie möglich drin steht. Und wenn zu bestimmten Optionen keine Einträge existieren, dann werden irgendwelche Default-Werte verwendet.

3.4.1. Original-Debian – Wenn Sie keinen NVIDIA-Treiber installiert haben

In einer solchen Situation gibt es noch nicht einmal die Section "ServerLayout". Sie müssen diese Section per Hand programmieren. Aus diesem Grund habe ich in Kapitel 3.3 die Grundlagen der "xorg.conf" erläutert.

3.4.2. Situation mit NVIDIA-Treiber

Wenn Sie einen NVIDIA-Treiber installieren, dann krempelt der Treiber die Datei "/etc/X11/xorg.conf" komplett um. In dieser Version wird die Section "ServerLayout" bereits vorhanden sein. Alles, was Sie tun müssen, ist es, sie zu erweitern.

3.4.3. Wenn sehr schnell Bildschirmschoner und Energiesparmodi zuschlagen sollen

Um zu verstehen, wie die nun interessanten Optionen funktionieren, zeige ich Ihnen zunächst ein Beispiel, dessen Wirkung Sie innerhalb weniger Minuten testen können.

Kleine Warnung vorweg: Dieses Beispiel funktioniert nur in der Theorie. In der Praxis wird maximal "BlankTime" zuschlagen, und nicht mehr.

Starten wir das Experiment. Zunächst zitiere ich die Grundlagen aus der "man"-Page:

Option "BlankTime" "time"
  sets the inactivity timeout for the blank phase of
  the screensaver. time is in minutes. This is equivalent
  to the Xorg server's -s flag, and the value can be changed
  at run-time with xset(1). Default: 10 minutes.

Option "StandbyTime" "time"
  sets the inactivity timeout for the standby phase of DPMS
  mode. time is in minutes, and the value can be changed at
  run-time with xset(1). Default: 20 minutes. This is only
  suitable for VESA DPMS compatible monitors, and may not
  be supported by all video drivers. It is only enabled for
  screens that have the "DPMS" option set (see the MONITOR
  section below).

Option "SuspendTime" "time"
  sets the inactivity timeout for the suspend phase of DPMS
  mode. time is in minutes, and the value can be changed at
  run-time with xset(1). Default: 30 minutes. This is only
  suitable for VESA DPMS compatible monitors, and may not
  be supported by all video drivers. It is only enabled for
  screens that have the "DPMS" option set (see the MONITOR
  section below).

Option "OffTime" "time"
  sets the inactivity timeout for the off phase of DPMS
  mode. time is in minutes, and the value can be changed at
  run-time with xset(1). Default: 40 minutes. This is only
  suitable for VESA DPMS compatible monitors, and may not
  be supported by all video drivers. It is only enabled for
  screens that have the "DPMS" option set (see the MONITOR
  section below).

Geben wir den Parametern also mal sinnvolle Werte:

  • Option "BlankTime" "1":
    → 1 Minute nach Nichtstun wird der Bildschirm schwarz.
  • Option "StandbyTime" "2":
    → 2 Minuten nach Nichtstun wird ein Standby erfolgen.
  • Option "SuspendTime" "3":
    → 3 Minuten nach Nichtstun wird ein Suspend erfolgen.
  • Option "OffTime" "4":
    → 4 Minuten nach Nichtstun wird irgendetwas (wahrscheinlich der Monitor) ausgeschaltet.

Diese Werte tragen wir in die Datei "/etc/X11/xorg.conf" ein und starten den Rechner neu:

Section "ServerLayout"
  Identifier "Layout0"
  Screen "Screen0"
  .
  .
  .
  Option "BlankTime" "1"
  Option "StandbyTime" "2"
  Option "SuspendTime" "3"
  Option "OffTime" "4"
EndSection

Und nun sehen wir, was passiert, wenn wir theoretische Konzepte in der Praxis testen:

  • Nach einer Minute Nichtstun in der Login-Maske des KDM wird der Bildschirm dunkel.
  • Mehr passiert auch nach 10, 20 oder 30 Minuten nicht.

Nun ja: Dass die Option "BlankTime" eine Wirkung hat, das konnten wir jetzt sehr eindrucksvoll mit eigenen Augen sehen. Der Rest interessiert nicht.

Wichtig ist es zu wissen, dass die Zahl, die hinter der Option steht, eine Angabe ist, die als Minuten interpretiert wird. Wenn die Zahl eine 0 ist, dann heißt das nicht etwa null Minuten, sondern die Option ist damit ausgeschaltet.

3.4.4. Wenn Bildschirmschoner und Energiesparmodi wirklich AUS (!) sein sollen

Sie haben jetzt das Handwerkszeug das Sie brauchen, um den Bildschirmschonerhorror zu beenden.

Die Datei "/etc/X11/xorg.conf" sollte ungefähr so aussehen:

Section "ServerLayout"
  Identifier "Layout0"
  Screen "Screen0"
  .
  .
  .
  Option "BlankTime" "0"
  Option "StandbyTime" "0"
  Option "SuspendTime" "0"
  Option "OffTime" "0"
EndSection

Beachten Sie, dass anstelle der drei Punkte noch weitere Inhalte stehen können, die ein Treiber für Sie eingetragen haben kann. Diese Inhalte lassen Sie besser stehen.

4. Bildschirmschoner auch dann ausschalten, wenn mehrere KDE-Sessions aktiv sind

Wenn Sie mehrere KDE-Sitzungen gleichzeitig betreiben wollen (<Ctrl>+<Alt>+<F7>, <Ctrl>+<Alt>+<F8>, ...), dann wird es mit Sicherheit passieren, dass trotzdem alle 10 Minuten ein Bildschirmschoner aktiv wird. Das ist erst seit Debian Lenny so.

4.1. Erklärungsversuch

Wenn Sie per

xset q|egrep -A2 "^Screen Saver"

nachsehen, dann werden Sie feststellen, dass "prefer blanking" auf "yes" gestellt ist (auf älteren Etch-Systemen steht es per Default auf "no").

Wenn KDE eine Sitzung für einen User lädt, dann wird offenbar am Ende des Ladevorgangs "prefer blanking" auf "yes" gesetzt.

4.2. Lösungsansatz

Um das Problem zu beheben, müssen Sie für jeden aktiven KDE-User dafür sorgen, dass "prefer blanking" auf "no" gesetzt wird, nachdem KDE das Laden der Sitzung für den User fertiggestellt hat.

Pro User sollten Sie daher eine Autostart-Datei für KDE hinterlegen und ihr Ausführungs-Rechte geben:

cd ~/.kde/Autostart
>disable_screensaver.sh
chmod 755 disable_screensaver.sh
nedit disable_screensaver.sh

Nachdem Sie die frisch angelegte und mit Ausführungsrechten versehene Datei mit einem Editor geöffnet haben, versehen Sie sie mit folgenden Inhalt:

#!/bin/bash

sleep 10
xset s noblank

Der "sleep"-Befehl sorgt dafür, dass KDE genügend Zeit hat, die Sitzung zu laden und "prefer blanking" auf "yes" zu setzen. Der xset-Befehl setzt "prefer blanking" dann auf "no". Damit wäre das Problem für diesen User gelöst.

 

4.3. Meine Recherchen

Auf die Idee, das Problem bei mehreren KDE-Sitzungen mit Hilfe von "xset" zu lösen, kam ich, während ich im Debian-Forum und gleichzeitig auf der X.Org-Mailing-Liste aktiv war:

Sie können dort viele Details meiner Recherchen inklusive der Sackgassen, die ich gegangen bin, nachlesen.

4.4. Die wahre Lösung

Am Ende ist alles einfacher als man denkt.

Rechts unten in der Statusleiste gibt es ein blaues Symbol (einen blauen Stecker) links neben der Uhr. Es handelt sich hierbei um KPowersave. Per Rechtsklick können Sie KPowersave beenden. Es fragt, ob es beim nächsten Sitzungsstart automatisch neu starten soll. Antworten Sie mit "Nein". Fertig!

Ich werde in der nächsten Iteration (wenn ich erneut ein KDE aufsetze) das Thema etwas ordentlicher dokumentieren.

5. Konsole – Bildschirmschoner

Auch in der Konsole kann ein Bildschirmschoner zum Beispiel nach 30 Minuten Nichtstun den Bildschirm verdunkeln.

Um das abzustellen, editieren Sie die Datei "/etc/console-tools/config":

nedit /etc/console-tools/config

Hier gibt es mindestens zwei Einstellungen, die Sie ändern müssen:

Vorher
BLANK_TIME=30
.
.
.
POWERDOWN_TIME=30
Nachher
BLANK_TIME=0
.
.
.
POWERDOWN_TIME=0
Erklärung

Wenn "BLANK_TIME"=0 ist, dann kommt "POWERDOWN_TIME" nie in Frage,
weil immer gilt:
→ echtes "POWERDOWN" des Screens = BLANK_TIME+POWERDOWN_TIME

Und weil "BLANK_TIME" aufgrund der 0 nie in Aktion tritt, wird auch "POWERDOWN_TIME" nie in Aktion treten.

Trotzdem empfehle ich, bei "POWERDOWN_TIME" eine 0 einzutragen, denn man kann ja nie wissen, was sich da in ein paar Jahren ändern wird...

6. Weitere mögliche Ursachen

Vor einigen Jahren beobachtete ich Interferenzen zwischen verschiedenen KDE-Usern bei mehreren X-Window-Sessions.

Wenn ein KDE-User (auf <Ctrl>+<Alt>+<F7>) definitiv alle Bildschirmschoner deaktiviert hatte, bei einem anderen User (auf <Ctrl>+<Alt>+<F8>) jedoch ein Bildschirmschoner aktiv wurde, dann wurde bis zum nächsten Reboot des Rechners auch für den ersten KDE-User (auf <Ctrl>+<Alt>+<F7>) der Bildschirmschoner aktiv.

Was genau da schief gelaufen ist, das kann ich nicht mehr herausfinden, da dieses SuSE-System längst nicht mehr auf aktueller Hardware läuft.

Sollten Sie jedoch nach allen hier beschriebenen Maßnahmen immer noch von einem hartnäckigen Bildschirmschoner betroffen sein, dann wäre diese alte Beobachtung noch ein Forschungsansatz, der näher untersucht werden könnte.

Mögliche Abhilfe dann: Bei wirklich jedem KDE-User sämtliche Bildschirmschoner und Energiesparmodi deaktivieren.