Früher habe ich Vollbild-Konsolen (die mit Ctrl+ Alt+ F1... geöffnet wurden F6) aktiv verwendet und bin auf die Idee gekommen, sie mit einer Art "Tapete" zu dekorieren (eine ziemlich dunkle und eintönige natürlich) damit die Lesbarkeit nicht beeinträchtigt wird), könnte dies vielleicht gut aussehen und sich gut anfühlen (oder auch nicht, aber ich muss es versuchen). Es wäre sogar besser, wenn ich verschiedene Bilder als Hintergrund für die Konsole festlegen könnte (eines für Ctrl+ Alt+ F1, ein anderes für Ctrl+ Alt+ F2usw.).
Die Tatsache, dass die Konsolen eine viel höhere Auflösung haben als der reine Textmodus, legt nahe, dass der vollwertige Grafikmodus für sie verwendet wird und alles möglich ist. Aber wie?
tty
virtual-console
Ivan
quelle
quelle
framebuffer
Gerät bekannt ist, aber mit diesem Bildschirm ist die Ausgabe eines Programms beschäftigt, wie zfbi
. TTY an und für sich ist immer noch ein Nur-Text-GerätAntworten:
Ich bin mir ziemlich sicher, dass im Linux-Konsolentreiber diese Funktion nicht integriert ist, es gibt jedoch eine Anwendung namens,
fbterm
die dies ausführen kann. Um Hintergrundbilder Arbeit zu machen, werden Sie auch ein Dienstprogramm benötigen , die ein Bild auf dem Bildpuffer anzeigen kann wiefbi
:fbterm
liest oder zeigt Hintergrundbilder selbst nicht an, sondern erwartet, dass ein anderes Programm das Hintergrundbild vor dem Start auf dem Bildschirm einrichtet. In derfbterm
Manpage finden Sie Anweisungen, wie Sie dies mitfbv
einem absolut veralteten und nicht unterstützten Dienstprogramm tun können , das ich auf einem modernen Ubuntu-System nicht einmal kompilieren konnte.fbi
ist ein viel saubererer und schönerer Bildbetrachter für den Framebuffer, hat aber leider nicht die "set it and exit" -Funktion des Einfacherenfbv
und stört somit,fbterm
wenn Sie versuchen, ihn direkt zu verwenden. Ich konnte jedoch eine Alternative finden, die funktioniert:Zuerst müssen Sie das gewünschte Bild verwenden
fbi
undcat
anzeigen und es dann in eine Bilddatei im "Framebuffer-Rohformat" sichern. Führen Sie als Root in einer Framebuffer-Konsole Folgendes aus:(Dadurch wird das Bild einige Sekunden lang angezeigt und dann beendet, nachdem das Ergebnis in der Datei gespeichert wurde
nifty-background.fbimg
. Ersetzen Sie esnifty-background.fbimg
und gebennifty-background.png
Sie natürlich die gewünschten Dateinamen ein.)Der erste Teil des Befehls wartet eine Sekunde, bevor der Inhalt des Framebuffers in eine Datei konvertiert wird. Gleichzeitig wird der zweite Teil (nach dem &) gestartet
fbi
, um das Bild im Framebuffer anzuzeigen. Wenn der cat-Befehl ausgeführt wird (1 Sekunde später), muss dort ein Bild gespeichert werden. Der Grund, warum sie in dieser Reihenfolge sind, ist, dass ich festgestellt habe, dassfbi
Probleme aufgetreten sind, wenn sie nicht im Vordergrund ausgeführt wurden. Dies bedeutet, dass dies der letzte Befehl in der Liste sein muss.Von da an
fbterm
können Sie es jederzeit wie folgt starten (möglicherweise möchten Sie ein kleines Wrapper-Skript erstellen):quelle
… Das ist eine der Möglichkeiten, mit denen der Beobachter ein echtes BSOD unter Windows von den Aktionen des witzigen BSOD-Bildschirmschoners unterscheiden kann, der vor etwa zehn Jahren die Runde gemacht hat. Die Anzeige von Blockgrafikzeichen unter Verwendung der Grafikadapterhardware im Grafikmodus unterschied sich geringfügig von den Zeichen, die von der Grafikadapterhardware im Textmodus generiert wurden.
Ja, der Grafikadapter befindet sich im Grafikmodus. Das ist jetzt schon eine ganze Weile so. Auf Systemen ohne PC-Grafikkarte war das immer so. In den Anfangsjahren von Linux verfügte die Konsole auf PC-kompatiblen Geräten über die Display-Adapter-Hardware im Textmodus. Aber diese Nutzung hat sich leise auf so ziemlich nichts ausgewirkt. Für die Unicode-Unterstützung der meisten Benutzer ist heutzutage ein größerer Glyphensatz erforderlich als für die Hardware im Textmodus. Die Maschinenfirmware verwendet (natürlich) den Grafikmodus für Begrüßungsbildschirme (mit hübschen Bildern und Firmenlogos), ebenso wie der Linux-Loader und die Systeminitialisierung.
Es gibt ein Terminal-Emulator-Programm, das in den Linux-Kernel integriert ist. Es ist auf den Framebuffer und das Eingabeereignis-Subsystem gelegt, auf das es über interne Kernel-Schnittstellen zugreift. Er präsentiert sich auf anwendungs Modus - Systeme als eine Reihe von Kernel virtuellen Terminal - Geräte,
/dev/tty1
und so weiter.Dieses Programm ist im Vergleich zu Terminalemulatoren, die nicht mit dem Linux-Kernel kompatibel sind , wie normale Anwendungsprogramme, ziemlich eingeschränkt . Es emuliert nur eine begrenzte Teilmenge der Funktionalität eines realen Terminals und es fehlen die zusätzlichen Funktionen der letzteren Terminalemulatoren.
Darauf müssen Sie achten. Möglicherweise sind Sie mit den Terminalemulatoren vertraut, die X für ihre Ein- / Ausgabe verwenden, z. B. xterm, lxterminal, gnome-console, konsole, eterm, wterm und der Rest. Weniger bekannt sind diejenigen, die die Framebuffer-Geräte und die Eingabeereignisgeräte für ihre Eingabe / Ausgabe verwenden. Bereitstellung virtueller Terminals für Benutzer :
console-terminal-emulator
undconsole-fb-realizer
, undEinige dieser letzteren können tun, was Sie wollen.
fbterm kann so konfiguriert werden, dass z. B. alles, was sich beim Start im Framebuffer befindet, als Hintergrundbild verwendet wird. Sie müssen also nur eines der anderen Hilfsprogramme zum direkten Anzeigen von Bildern auf einem Linux-Framebuffer verwenden, um vor dem Ausführen von fbterm ein Hintergrundbild einzurichten. Es gibt mehrere solcher Tools, darunter:
fbvis und fbi löschen den Bildschirm beim Beenden und erfordern die Windungen, die in Foogods Antwort näher erläutert werden. dfbg räumt jedoch nicht von selbst auf, sodass es für diese bestimmte Aufgabe besser geeignet ist.
Weitere Lektüre
quelle
Obwohl Foogods Antwort bei mir nicht funktioniert hat, hat sie mich in die richtige Richtung geführt, indem sie die Hälfte der Lösung bereitgestellt hat (nämlich Framebuffer-Daten zu lesen, während
fbi
ein Bild auf dem TTY-Bildschirm angezeigt wird). Deshalb habe ich seiner Antwort das Kopfgeld zugesprochen.Bellow ist ein Skript, das das Starten erleichtert
fbterm
mit einem Teilpfad zum Image als einzelnes BefehlszeilenargumentVerwendung
Das Skript muss in einem Verzeichnis gespeichert werden, das in Ihrer
$PATH
Variablen aufgeführt ist. Vorzugsweise muss es in Ihrem persönlichen$HOME/bin
Ordner sein. Siehe Wie füge ich ein Verzeichnis zum PATH hinzu? auf Erklärung , wie Sie Ihre persönlichen hinzufügenbin
zu$PATH
, sondern ein Verzeichnis mit dem Namen Erzeugen derbin
in Ihrem Home - Verzeichnis ist ausreichend , um es hinzuzufügen ,PATH
auf Wieder Login.Das Skript muss außerdem über eine ausführbare Berechtigung verfügen. Sie können es mit einstellen
chmod +x /path/to/script.sh
.Schließlich muss es mit ausgeführt werden
sudo
, um den Root-Zugriff zum Lesen und Schreiben zu ermöglichen/dev/fb0
.Skriptquelle
Auch in meinem Github-Repository verfügbar .
zusätzliche Information
Es stellt sich heraus, dass Benutzer nicht unbedingt verwenden müssen
sudo
;/dev/fb0
gehört zurvideo
Gruppe, so dass die Nutzer könnten nur sich selbst zu dieser Gruppe hinzufügen , indemDaher sind die Überprüfungen für root im obigen Skript nicht mehr aktuell, insbesondere nur
[ "$(whoami)" != "root" ] ||
teilweise.quelle