it-swarm.com.de

Ändern Sie das Löschverhalten der Linux-Konsole

Wie ändere ich das Verhalten der Bildschirmaustastung auf virtuellen Linux-Terminals?

Wenn ich beispielsweise von X zu einem VT wechsle, mich anmelde und das System ungefähr 5 Minuten lang in Ruhe lasse, wird der Bildschirm wie ein Bildschirmschoner leer. Es kommt mit jedem Tastendruck zurück, wie ein Bildschirmschoner.

Meistens möchte ich nur das Timeout ändern, aber ich interessiere mich auch für andere Einstellungen.

Wenn es hilft, läuft auf einem meiner Systeme Ubuntu 10.04 mit den Standardgrafiktreibern. fbset zeigt die Konsole mit dem Framebuffer-Gerät radeondrmfb an.

37
quack quixote

setterm von @ whitequarks Antwort ist ein vernünftiges User-Space-Tool, aber es ist nicht die ganze Geschichte.

Das Standardverhalten beim Löschen der Konsole wird beim Kompilieren in den Kernel eingebunden. Sie kann beim Booten mit dem Parameter consoleblank = oder im Benutzerbereich mit setterm konfiguriert werden. Aus der Kerneldokumentation ( kernel-parameters.txt ):

consoleblank=  [KNL] The console blank (screen saver) timeout in
               seconds. Defaults to 10*60 = 10mins. A value of 0
               disables the blank timer.

Hier sind die Optionen, ihre Standardeinstellungen auf meinem Ubuntu-System und ihre Einflussbereiche:

  • setterm -blank [0-60]; meldet bei Abfragen immer 0; effektiv, wenn auf einem realen VT ausgeführt; betrifft alle echten TTYs; Nicht wirksam bei der Ausführung in Bildschirmsitzungen auf einem VT.
  • setterm -powerdown [0-60]; meldet immer "3]" (??); scheint keine Wirkung zu haben. Ubuntu-Kernel aktivieren APM_DISPLAY_BLANK nicht, und dies könnte zusammenhängen.
  • consoleblank=N; Der Standardwert ist 600 (10 Minuten). betrifft alle realen VTs; wirkt sich auf Bildschirmsitzungen in einem VT aus; Keine Möglichkeit beim Laufen einzustellen.

Meine Optionen zum Ändern der Standardeinstellung sind folgende:

  1. Fügen Sie setterm -blank X (X in Minuten, 0 zum Deaktivieren) zu einer Shell-Init-Datei wie . Bashrc hinzu.
  2. Fügen Sie setterm -blank X zu /etc/rc.local hinzu.
  3. Fügen Sie consoleblank=Y (Y in Sekunden, 0 zum Deaktivieren) zur Kernel-Befehlszeile hinzu, indem Sie ihn entweder zu den Parameterlisten in /etc/default/grub hinzufügen GRUB_CMDLINE_LINUX oder GRUB_CMDLINE_LINUX_DEFAULT. (Vergessen Sie nicht, update-grub.)
40
quack quixote

Versuchen Sie es mit setterm -blank $minutes (oder übergeben Sie 0 zum Deaktivieren). Die Option -powersave kann auch verwandt sein. setterm bietet noch eine Reihe weiterer nützlicher Optionen.

Wenn Sie diese Attribute beim Systemstart festlegen möchten, sollten Sie ein Initskript schreiben. Dies ist nur ein Skript, das sich im Verzeichnis /etc/init.d befindet. Lass es setterm heißen:

#!/bin/sh
[ "$1" == "start" ] || exit 0 # only initialize everything when called as /etc/init.d/setterm start
for term in /dev/tty[0-9]*; do # select all ttyNN, but skip ttyS*
    setterm -blank 0 >$term <$term
    setterm -powersave off >$term <$term
done

Dann mach es ausführbar:

# chmod +x /etc/init.d/setterm

Und zum Schluss erstellen Sie die Symlinks /etc/rcX.d (nach Debian-Art):

# update-rc.d setterm defaults

(Wenn Sie dieses Verhalten satt haben, führen Sie # update-rc.d -f setterm remove aus. Beachten Sie, dass -f das erste Argument sein muss.).

9
whitequark

Wenn jemand nach einer anderen möglichen Lösung für Debian sucht (möglicherweise nicht Ubuntu):

Suchen Sie in /etc/kbd/config nach einer Einstellung mit dem Namen "BLANK_TIME":

# screen blanking timeout.  monitor remains on, but the screen is cleared to
# range: 0-60 min (0==never)  kernels I've looked at default to 10 minutes.
# (see linux/drivers/char/console.c)
BLANK_TIME=30

Ändern Sie es auf 0, dies wird es deaktivieren:

BLANK_TIME=0

Getestet unter Debian 6 und 7.

3
basic6

Wenn Sie ein neueres Ubuntu verwenden, das Upstart verwendet, können Sie Folgendes verwenden:

for file in /etc/init/tty*.conf; do tty="/dev/`basename $file .conf`"; echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty" | Sudo tee -a "$file"; done

Eine kleine Erklärung, was hier los ist:

Neuere Ubuntu-Versionen verwenden upstart für den Systemstart. Bei einem Neustart werden die Linux-Konsolen mit Konfigurationsdateien eingerichtet, die in/etc/init gespeichert sind. Der obige Befehl beginnt mit der Iteration über jede dieser Konfigurationsdateien:

for file in /etc/init/tty*.conf;

Der Name der Upstart-Konfigurationsdatei des tty in $ file wird verwendet, um den Namen des tty-Geräts zu erstellen:

tty="/dev/`basename $file .conf`";

Es wird ein Startbefehl "post-start" erstellt, der "setterm" ausführt, um die Bildschirmaustastung und das Energiesparen nach dem Start von tty zu deaktivieren:

echo "post-start exec setterm -blank 0 -powersave off >$tty <$tty"

Und zum Schluss wird dieser Befehl an die upstart-Konfigurationsdatei angehängt:

| Sudo tee -a "$file";
2
Chris Pick

Auf meinen Systemen (verschiedene Versionen von RedHat Enterprise Linux) habe ich festgestellt, dass unterschiedliche Ansätze erforderlich sind.

Für meine RHEL 5 und 6 Systeme kann ich die Linie hinzufügen

/bin/setterm -blank 0 -powerdown 0 -powersave off

zu /etc/rc.local. Dadurch wird die Bildschirmaustastung der Konsole beim Systemstart deaktiviert.

Ich habe festgestellt, dass dies auf RHEL 7-Systemen nicht funktioniert. Unter RHEL7 wird beim Ausführen von setterm von rc.local ein Fehler generiert:

setterm: $TERM is not defined.

Der Befehl funktioniert von einer interaktiven Shell aus, in der $ TERM definiert ist (als linux). Wenn ich setterm zwinge, es zu benutzen:

/bin/setterm -term linux -blank 0 -powerdown 0 -powersave off

Dann bekomme ich einen anderen Fehler:

setterm: cannot (un)set powersave mode: Inappropriate ioctl for device

Auch wenn derselbe Befehl in einer interaktiven Sitzung problemlos funktioniert. Das Setzen des Kernelparameters consoleblank hat funktioniert.

Bearbeiten Sie auf RHEL7 /etc/default/grub und hängen Sie consoleblank=0 an den Parameter GRUB_CMDLINE_LINUX an. Führen Sie dann grub2-mkconfig -o /boot/grub2/grub.cfg aus und starten Sie neu.

Ich habe nicht versucht, consoleblank auf RHEL5 oder 6 einzustellen.

2
David C.

Private CSI-Sequenzen für Linux Console

So stellen Sie die sleep mode/screensaver-Eingabezeit ein (wobei X eine Zeit in Minuten ist; 0 = nie):

(von der seriellen Konsole)

echo -e '\033[9;X]' > /dev/tty1    

oder (von der Framebuffer-Konsole)

echo -e '\033[9;X]'    

oder verwenden Sie /etc/inittab, um es bei jedem Start festzulegen:

tty1::sysinit:echo -e '\033[9;X]'

refs:

1
yurenchen

Das Hinzufügen von gnome-screensaver-command --exit zu meiner .profile-Datei hat dieses Problem für mich unter Debian Linux (Wheezy) behoben.

Ich dachte, ich würde dies hinzufügen, um anderen zu helfen, die sich die Haare ausreißen und versuchen, das Austasten des Bildschirms zu stoppen.

Ein Kontrollkästchen mit dem Titel "Bildschirm dimmen, um Strom zu sparen" funktioniert nicht richtig. Selbst wenn diese Option nicht markiert ist, wird der Bildschirm STILLSCHWEIGEND entsprechend der ausgewählten Inaktivitätszeit ausgeblendet.

UPDATE: Ich brauchte eigentlich sleep 30 && /usr/bin/gnome-screensaver-command --exit &, damit es richtig funktioniert. Der GNOME-Bildschirmschoner scheint lange nach der Verarbeitung von .profile zu starten.

0
mcchinsy