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 radeondrmfb
Framebuffer-Gerät.
linux
console
screensaver
framebuffer
virtual-terminal
Quacksalber
quelle
quelle
Antworten:
setterm
from @ 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. Es kann beim Booten mit dem Parameter consoleblank = oder im Userspace mit konfiguriert werden
setterm
. Aus der Kerneldokumentation ( kernel-parameters.txt ):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 zum einstellen beim laufen.Meine Optionen zum Ändern der Standardeinstellung sind folgende:
setterm -blank X
einer Shell-Init-Datei wie .bashrc (X in Minuten, 0 zum Deaktivieren) hinzu .setterm -blank X
zu /etc/rc.local .consoleblank=Y
der Kernel-Befehlszeile (Y in Sekunden, 0 zum Deaktivieren) hinzu, indem Sie sie zu den Parameterlisten in / etc / default / grub hinzufügen , entweder GRUB_CMDLINE_LINUX oder GRUB_CMDLINE_LINUX_DEFAULT . (Vergiss das nichtupdate-grub
.)quelle
setterm -blank X
dies in tmux nicht funktioniert hat , aber perfekt funktioniert hat , als ich tmux vor dem Ausführen des Befehls beendet habe.GRUB_CMDLINE_LINUX_DEFAULT="consoleblank=0"
und dann Ihre grub-Konfiguration mit aktualisierengrub[2]-mkconfig -o /boot/grub/grub.cfg
.3]
denn essetterm -powerdown
ist nur die halbe Wahrheit:setterm -powerdown 3 | hexdump -c
kehrt zurück033 [ 1 4 ; 3 ]
. Unsicher, was diese Fluchtsequenz interpretieren soll ...Versuchen Sie es
setterm -blank $minutes
(oder übergeben Sie 0, um es zu deaktivieren);-powersave
Option kann auch verwandt sein.setterm
hat auch viele andere nützliche Optionen.Wenn Sie diese Attribute beim Systemstart festlegen möchten, sollten Sie ein Initskript schreiben. Dies ist nur ein Skript, das im
/etc/init.d
Verzeichnis abgelegt wird . Lass es heißensetterm
:Dann mach es ausführbar:
Und zum Schluss erstellen Sie die Symlinks /etc/rcX.d (nach Debian-Art):
(Wenn Sie dieses Verhalten satt haben, tun
# update-rc.d -f setterm remove
Sie das. Beachten Sie, dass-f
dies das erste Argument sein muss.)quelle
-powerdown
Einstellung ist, die in Kraft ist. Was ist mit dem Festlegen eines systemweiten On-Boot-Standards? läuftsetterm -blank X
odersetterm -powerdown Y
in /etc/rc.local (oder ~ / .bashrc ) sinnvoll ?rc.local
tatsächlich funktioniert. (Letzteupstart
Migration hat einiges vermasselt, da es anscheinend existiert und auf meinem System funktioniert.) Ansonsten sollten Sie ein Initscript erstellen. Das ist ganz einfach: In unserem Fall muss es alles initialisieren, wenn esstart
als erstes Argument übergeben wird, und nichts anderes tun. Ich werde das in meiner Antwort beschreiben.setterm -blank X >/dev/ttyN
scheint nicht zu funktionieren, daher glaube ich nicht, dass das Initscript-Konzept funktioniert. Ich bin auf einen Boottime-Parameter gestoßen und habe weitere Nachforschungen angestellt. ich scheine mich zu irren-powerdown
und-powersave
; habe nicht vollständig getestet, aber diese funktionieren nicht auf meinem System.setterm -blank X
Funktioniert nur von einem echten VT aus und betrifft alle VTs. Daher ist es sinnvoll , einmal über /etc/rc.local zu arbeiten . (Upstart entfernt nicht rc.local , sondern nur das /etc/rcX.d-Zeug .)setterm
Escape-Sequenzen aufstdout
, aber überprüft TTY-Typ mitstdin
: Ich habe gerade überprüft, undsetterm ... >/dev/ttyN </dev/ttyN
funktioniert wie vorgesehen.Wenn jemand nach einer anderen möglichen Lösung für Debian sucht (möglicherweise nicht Ubuntu):
In
/etc/kbd/config
, für eine Einstellung namens „BLANK_TIME“:Ändern Sie es auf 0, dies wird es deaktivieren:
Getestet unter Debian 6 und 7.
quelle
Wenn Sie ein neueres Ubuntu verwenden, das Upstart verwendet, können Sie Folgendes verwenden:
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:
Der Name der Upstart-Konfigurationsdatei des tty in $ file wird verwendet, um den Namen des tty-Geräts zu erstellen:
Es wird ein Startbefehl "post-start" erstellt, der "setterm" ausführt, um die Bildschirmaustastung und das Energiesparen nach dem Start von tty zu deaktivieren:
Und zum Schluss wird dieser Befehl an die upstart-Konfigurationsdatei angehängt:
quelle
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 aus rc.local ein Fehler generiert:
setterm: $TERM is not defined.
Der Befehl funktioniert über eine interaktive Shell, 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
consoleblank
Kernel-Parameters hat funktioniert.Bearbeiten Sie auf RHEL7 den Parameter
/etc/default/grub
und hängen Sie ihnconsoleblank=0
anGRUB_CMDLINE_LINUX
. Dann startengrub2-mkconfig -o /boot/grub2/grub.cfg
und neu starten .Ich habe nicht versucht,
consoleblank
RHEL5 oder 6 einzustellen.quelle
</dev/tty1 >/dev/tty1
oder etwas, damit es funktioniertPrivate 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)
oder (von der Framebuffer-Konsole)
oder verwenden Sie zum Einstellen bei jedem Start
/etc/inittab
:refs:
quelle
Das Hinzufügen
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 STILLSTANDS entsprechend der ausgewählten Inaktivitätszeit ausgeblendet.
UPDATE: Eigentlich musste ich
sleep 30 && /usr/bin/gnome-screensaver-command --exit &
dafür sorgen, dass es richtig funktioniert. Der GNOME-Bildschirmschoner scheint lange nach der Verarbeitung von .profile zu starten.quelle