• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst Boot-Splash-Screen

Hallo zusammen,

ich bräuchte mal Hilfe beim Boot-Splash-Screen.

Das grundsätzliche Problem ist, dass ich in Systemeinstellungen --> Erscheinungsbild --> Startbildschirm einen Splash-Screen ausgesucht habe, aber nicht weiß, wie ich diesen beim Booten sehen kann. Und wenn das dann funktioniert, wie ich ihn notfalls deaktivieren kann, um die Meldungen wärend des bootens sehen zu können.

Vor langer Zeit hatte ich in /etc/default/grub die Zeile
Code:
GRUB_CMDLINE_LINUX_DEFAULT=
bearbeitet, aber ich komme jetzt mit den Infos aus dem Netz nicht mehr weiter.

Derzeit sieht /etc/default/grub so aus:
Code:
beastxxl@linux-5099:/etc/default> cat grub
# If you change this file, run 'grub2-mkconfig -o /boot/grub2/grub.cfg' afterwards to update
# /boot/grub2/grub.cfg.

# Uncomment to set your own custom distributor. If you leave it unset or empty, the default
# policy is to determine the value from /etc/os-release
GRUB_DISTRIBUTOR=
GRUB_DEFAULT=saved
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=5
GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/disk/by-id/nvme-Samsung_SSD_970_EVO_Plus_500GB_S4EVNF0M451582V-part6 quite noplymouth showopts mitigations=auto"
GRUB_CMDLINE_LINUX=""

# Uncomment to automatically save last booted menu entry in GRUB2 environment

# variable `saved_entry'
# GRUB_SAVEDEFAULT="true"
#Uncomment to enable BadRAM filtering, modify to suit your needs

# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
# GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
#Uncomment to disable graphical terminal (grub-pc only)

GRUB_TERMINAL="gfxterm"
# The resolution used on graphical terminal
#note that you can use only modes which your graphic card supports via VBE

# you can see them in real GRUB with the command `vbeinfo'
GRUB_GFXMODE="auto"
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
# GRUB_DISABLE_LINUX_UUID=true
#Uncomment to disable generation of recovery mode menu entries

# GRUB_DISABLE_LINUX_RECOVERY="true"
#Uncomment to get a beep at grub start

# GRUB_INIT_TUNE="480 440 1"
GRUB_BACKGROUND=
GRUB_THEME=/boot/grub2/themes/openSUSE/theme.txt
SUSE_BTRFS_SNAPSHOT_BOOTING="false"
GRUB_USE_LINUXEFI="true"
GRUB_DISABLE_OS_PROBER="false"
GRUB_ENABLE_CRYPTODISK="n"
GRUB_CMDLINE_XEN_DEFAULT="vga=gfx-1024x768x16 vga=gfx-1024x768x16"
beastxxl@linux-5099:/etc/default>

Da ich die Zeile
Code:
GRUB_CMDLINE_LINUX_DEFAULT=
gern auch noch von unnötigem Ballast befreien möchte, würde ich den Teil mit
Code:
resume=
ersatzlos streichen oder durch
Code:
noresume
ersetzen. Soweit ich es verstanden habe, ist das nur für den Ruhezustand nötig. Und da ich den nicht benutze, halte ich es für überflüssig, auf meiner Swap-Partition nach Dateien vom Ruhezustand sehen zu lassen. Zumal ich denke, dass der Swap bei jedem Shut-Down geleert wird...

Code:
mitigations=auto
würde ich drin behalten wollen. Weiß nicht genau, wozu es gut ist, da es für mich recht neu ist. Hat aber nichts mit dem Splash zu tun.

Bleiben noch die drei Optionen
Code:
quite noplymouth showopts
, an denen ich verzweifle.
Bei showopts habe ich keine Ahnung, wozu es gut ist und ob und wann ich es brauche.
Bei quiet werden wohl irgendwelche Meldungen unterdrückt, allerdings merke ich keinen Unterschied, wenn ich es rausnehme.

noplymouth habe ich seinerzeit in die Zeile eingefügt, um den Splash-Screen zu deaktivieren. Hauptsächlich, um den Bootvorgang zu beschleunigen. Ob das immer noch so ist, weiß ich nicht.

Wenn ich noplymouth durch splash ersetze, kommt ein Splash-Screen, der nichts mit dem Startbildschirm zu tun hat, den ich in den Systemeinstellungen ausgesucht habe.

Cool wäre also, dass der ausgesuchte Startbildschirm in den Systemeinstellungen angezeigt wird. Natürlich auch, wenn ich ihn wechsel. Und wenn ich weiß, wie ich den Startbildschirm deaktivieren kann, um wieder die Bootmeldungen sehen zu können.

Danke für Hilfe und Hinweise.
 
Tatsächlich :eek:
Krass, wie mir das nicht aufgefallen ist. Mit der richtigen Schreibweise sind die Bootmeldungen merkbar weniger geworden. Danke.

Wie steht`s mit dem Rest?
 
Also, zu
Code:
mitigations=auto
kann ich was sagen: Es gab/gibt da einige Viren (mit Namen wie "Spectre" und "Meltdown"), die bestimmte Funktionen der CPU ausnutzen. Die Option oben schaltet diese Funktionen der CPU ggf. ab. Dadurch kann der Rechner möglicherweise etwas Performance einbüßen, ist dann aber vor diesen Viren sicherer. Alles ein bißchen seltsam. Wenn die Performance Deines Rechners ganz ok zu sein scheint, würde ich die Option so lassen.

"plymouth" scheint für das Splash-Thema verantwortlich zu sein, ich würde mal "noplymouth" rausnehmen, wenn Du das Splash-Thema haben und es in den Systemeinstellungen einstellen willst.

Grundsätzlich geht es aber um mehrere Dinge, die angezeigt werden und konfiguriert werden können: Da ist der Screen des Bootloaders (Grub2), dann ist da das Splash-Thema (plymouth), "KMS" kann während des Bootprozesses noch die Auflösung ändern, und schließlich ist da der Screen des Login-Managers (kdm, gdm oder lightdm - je nach verwendeter Desktop-Umgebung. Bei mir ist es lightdm, dessen Aussehen mit dem Programm "lightdm-gtk-greeter-settings" konfiguriert wird).
In diese Dinge einzugreifen, setzt schon etwas Erfahrung voraus, und es kommt halt darauf an, was genau Du ändern willst.
 
Zur Nebensache: Wenn Du suspend to disk nicht verwendest, kannst Du noresume verwenden (weglassen würde ich den Parameter nicht, denn bei manchen Distributionen steckt resume=... in der initrd. showopts ist eine Anweisung an manche Boot-Manager, alles davorstehende nicht im grafischen Menü anzuzeigen. mitigations=auto kannst Du weglassen, da das ohnehin die Standardannahme des Kernel ist (siehe https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt).

Zur Hauptsache (falls es immer noch so funktioniert): Ersetze noplymouth durch splash=silent (das Drücken der Esc-Taste sollte den
veranlassen, die Meldungen anzuzeigen).
 
So, ich habe etwas rumprobiert. Bisheriges Ergebnis: keines der (zwei ausprobierten) Startbildschirme in den Systemeinstellungen wurde bei irgendeiner Konfiguration angezeigt.

Ich habe erst mal eine Sicherung von /etc/default/grub gemacht. Sicher ist sicher.

Die Option noresume habe ich jetzt dauerhaft übernommen, da ich beim Bootvorgang keine Verschlechterung festgestellt habe.

Temporär ("e" im Bootmenü gedrückt) habe ich mit splash bzw. splash=silent experimentiert. Die Optionen hatten nur zur Folge, dass ein grauer Splash-Screen mit drei kleinen grünen Rechtecken angezeigt wurde. Irgendwo habe ich gelesen, dass das ein Fallback-Splash-Screen ist. Beim Shutdown/Reboot hatte ich dann einen schwarzen Bildschirm mit einem weißen "Leap" und einem drehenden Kreis am unteren Rand.

Bei showopts habe ich mal die Position in der Zeile verändert (d.h. statt am Ende gleich nach noresume gestellt). Konnte keine Veränderun feststellen und lasse es an alter Stelle.

mitigations=auto lasse ich erst mal an Ort und Stelle. Ich würde es gerne über die Maske bei Yast --> Bootloader entfernen, sehe dort aber keine Option dafür. Ich habe die Befürchtung, dass, wenn ich dort "off" einstelle, die Standard-Einstellung im Kernel deaktiviert ist (ich nehme an, dass es ein Unterschied ist, ob diese Option überhaupt nicht in der GRUB_CMDLINE_LINUX_DEFAULT-Zeile steht oder ob dort mitigations=off steht). Daher müsste ich diesen Teil direkt in /etc/default/grub ändern und danach
Code:
grub2-mkconfig -o /boot/grub2/grub.cfg
ausführen, richtig?

Leider habe ich noch immer keine Idee, wie die Startbildschirme angezeigt werden können. Ich vermute plymouth hat ein (Konfigurations-)Problem, aber keine Ahnung, was ich machen muss.
 
So, ich habe etwas rumprobiert. Bisheriges Ergebnis: keines der (zwei ausprobierten) Startbildschirme in den Systemeinstellungen wurde bei irgendeiner Konfiguration angezeigt.
Du meinst im/nach der Anmeldung als User zum KDE/Gnome/XFCE?
Wenn ja, welcher displaymanager werkelt?
Als root:
Code:
update-alternatives --config default-displaymanager
Denn der Editor für /etc/sysconfig ist ein Relikt und arbeitet mit einigen Sachen gar nicht mehr zusammen.

Wenn du den Prozess nach dem grub bis zur Anmeldung meinst, das wird über plymouth gesteuert.

Und grub selbst wird über installierte grub2-Themen in Yast----Bootloader gesteuert.
 

susejunky

Moderator
Teammitglied
Soweit mir bekannt werden die Grafiken, die während des Systemstarts zu sehen sind, von verschiedenen Komponenten erzeugt (in zeitlicher Reihenfolge):

1.) BIOS/UEFI
Abhängig von der verwendeten Hardware, zeigen manche Systeme direkt nach dem Einschalten grafische Darstellungen. Ob und wie man diese beeinflussen kann ist mir nicht bekannt.

2.) GRUB2
In der Datei /etc/default/grub kann entweder mit GRUB_BACKGROUND=/Pfad/zu/einem/Bild angegeben werden, dass das textuelle Startmenü von GRUB2 mit einer Grafik hinterlegt werden soll (siehe: GNU GRUB Manual 2.12) oder es kann mit GRUB_THEME=/boot/grub2/themes/THEME.txt ein Thema gewählt werden, welches das Startmenü grafisch ausgestaltet (siehe: GNU GRUB Manual 2.12).

3.) Plymouth
Ich selbst habe Plymouth auf meinem System deinstalliert und kann somit nichts dazu sagen. Aber soweit mir bekannt, dienen GRUB_CMDLINE_LINUX_DEFAULT=" splash=silent " oder GRUB_CMDLINE_LINUX_DEFAULT=" plymouth.enable=0 " oder GRUB_CMDLINE_LINUX_DEFAULT=" nosplash " in /etc/default/grub dazu, ein installiertes Plymouth abzuschalten.

Informationen zu Plymouth siehe:
Wird Plymouth nicht genutzt, dann verschwinden die GRUB2-Grafiken, sobald der Kernel startet und die Kernel-Meldungen werden angezeigt. Der Umfang dieser Anzeige kann mit GRUB_CMDLINE_LINUX_DEFAULT="quiet" oder GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3" in /etc/default/grub gesteuert werden (siehe: The kernel’s command-line parameters — The Linux Kernel documentation).

quiet [KNL,EARLY] Disable most log messages

loglevel= [KNL,EARLY]
All Kernel Messages with a loglevel smaller than the
console loglevel will be printed to the console. It can
also be changed with klogd or other programs.

(Wenn /etc/default/grub verändert wird, muss grub2-mkconfig -o /boot/grub2/grub.cfg ausgeführt werden, damit die Änderungen beim nächsten Startvorgang berücksichtigt werden.)

4.) Displaymanager
Am Ende des Startvorgangs, wenn graphical.target (aka runlevel 5) erreicht ist, übernimmt der Displaymanager die Anzeige des Login-Bildschirms. Dessen Grafik kann bei meinem System - ich nutze sddm mit der Desktopumgebung Plasma6 - mit Hilfe von systemsettings -> Farben & Designs -> Anmeldebildschirm eingestellt werden.

5.) Desktopumgebung (hier Plasma6)
Wenn der Login erfolgreich war, startet der Displaymanager die Desktopumgebung (Plasma6). Während deren Start kann eine Grafik angezeigt werden, die mit systemsettings -> Farben & Designs -> Startbildschirm ausgewählt werden kann.
 
Zuletzt bearbeitet:
Nach vielem lesen und rumprobieren bin ich auf diese Seite gestoßen und einen kleinen Schritt weiter gekommen.

EIN Problem war/ist, dass anscheinend der amdgpu-Treiber zu groß ist, um ihn beim Booten schnell (!) zu laden.
Daher hat das Einfügen von rd.driver.pre=amdgpu in die GRUB_CMDLINE_LINUX-Zeile und der Austausch von noplymouth gegen splash einen Boot-Splash-Screen gezeigt. Ich vermute es ist das Plymouth-Theme "Spinner", ergänzt durch ein weißes "Leap" unter dem Spinner.

Vorher hatte ich nach dieser Anleitung plymouth.use-simpledrm ausprobiert, hat aber nichts gebracht.

So weit, so gut. Aber wie sage ich nun meinem PC, dass er die Plasma-Splash-Screens, die unter /home/beastxxl/.local/share/plasma/look-and-feel bzw. /usr/share/plasma/look-and-feel liegen, anzeigen soll? Schließlich sind das die Startbildschirme, die man sich bei den Systemeinstellungen haufenweise runterladen kann. Da könnte man eigentlich erwarten, dass der gewünschte Startbildschirm beim Booten angezeigt wird, wenn man ihn dort einstellt, oder? Oder funkt wieder ein Kernel- oder Plasma-Update dazwischen, so dass das nicht (mehr) out-of-the-box funktioniert?

Ach so, um Verwirrungen vorzubeugen: es geht hierbei nicht um das Grub2-Bootmenü-Theme oder um den Anmeldebildschirm. Das Grub2-Bootmenü sieht einwandfrei aus und will ich auch nicht ändern. Und den Anmeldebildschirm habe ich erfolgreich und einfach gewechselt (über Systemeinstellungen). Sieht super aus und funktioniert einwandfrei.
 
So weit, so gut. Aber wie sage ich nun meinem PC, dass er die Plasma-Splash-Screens, die unter /home/beastxxl/.local/share/plasma/look-and-feel bzw. /usr/share/plasma/look-and-feel liegen, anzeigen soll?
Die kann man auch dort dann auswählen.

Ob es klappt, sei aber dahingestellt.

Ansonsten wenn z.B. sddm läuft:
Code:
.
.
.
.
.
[Theme]
Current=openSUSE-Eleganter
CursorTheme=Oxygen_Yellow
Font=Noto Sans,10,-1,5,50,0,0,0,0,0,SemiCondensed
.
.
.
.
.
.
.
 
Ok, allmählich wird klarer, was Du eigentlich willst. ;)
1. Statt
Code:
grub2-mkconfig -o /boot/grub2/grub.cfg
kann man übrigens jetzt auch einfacher - als root - schreiben:
Code:
update-bootloader
Ist sicher leichter zu merken.
2. Als root finde ich einen Befehl in "/usr/sbin" namens
Code:
plymouth-set-default-theme
Kommt aus dem Paket "plymouth-scripts...rpm". Könnte vielleicht helfen.
Code:
man plymouth-set-default-theme
ist auch aufschlußreich.
Ich hab' mit dem Skript aber noch keine Erfahrungen, ich hoffe, es macht nichts kaputt.
Auf der "man"-Seite steht, es ändere "initrd":
man-page schrieb:
performs the necessary regeneration of the initial ramdisk (initrd) since plymouth is loaded from the boot loader from the initrd prior to the mounting of the root filesystem.
Klingt nicht so ungefährlich. Und würde auch erklären, warum das Ändern des Plymouth-Themas nicht so schnell und einfach ist.
Also, ich glaube, ich möchte damit im Moment lieber nicht experimentieren. Mein System läuft gerade so schön, das Risiko, daß das System nicht mehr startet, wenn man so einen Befehl ausführt und der unkontrolliert irgendwas im Boot-Prozeß umschreibt, das Risiko ist es mir nicht wert.
 
Zuletzt bearbeitet:

susejunky

Moderator
Teammitglied
Aber wie sage ich nun meinem PC, dass er die Plasma-Splash-Screens, die unter /home/beastxxl/.local/share/plasma/look-and-feel bzw. /usr/share/plasma/look-and-feel liegen, anzeigen soll? Schließlich sind das die Startbildschirme, die man sich bei den Systemeinstellungen haufenweise runterladen kann. Da könnte man eigentlich erwarten, dass der gewünschte Startbildschirm beim Booten angezeigt wird, wenn man ihn dort einstellt, oder?
Wo/wie hast Du ihn denn eingestellt?

In den von Dir genannten Verzeichnissen liegen die Grafiken, die Plasma6 anzeigt, wenn es (vom Displaymanager nach erfolgreichem Login) gestartet wurde (ich habe Beitrag #8 noch einmal dahingehend präzisiert, dass ich die Konfiguration der Plasma6-Startgrafik vom Punk 4.) Displaymanager abgetrennt und in einen eigenen Punkt 5.) Desktopumgebung übernommen habe).
 
@susejunky
Aaaah, jetzt wird ein Schuh draus. Neben einem "zu schnellen" Desktopaufbau (zu schnell, um den Startbildschirm anzeigen zu können), saß ich einem Missverständnis auf.
Der Startbildschirm (in den Systemeinstellungen) soll "nur" die Zeit zwischen dem Login und der vollständigen Darstellung des Desktops überbrücken, richtig? Eben weil er auf Plasma beruht.
Den Splash-Screen, den ich meinte, stellt Plymouth dar und kann nicht über die Systemeinstellungen ausgesucht werden. Sowohl die Aktivierung als auch der Wechsel findet über Konsole statt. Die Anzahl der möglichen Screens ist nicht so groß und in der Art (so vermute ich) eher einfach gehalten. Man könnte es sicher individualisieren, was aber einen größeren Aufwand bedeutet.
Und wegen dem großen amdgpu-Treiber müsste ich, wie oben gezeigt, die grub-Datei ändern, was unterm Strich eine weitere kleine Verzögerung im Bootvorgang nach sich zieht, nur damit die Bootmeldungen verdeckt werden. Mit einem Screen, der mir evtl. nicht mal sonderlich gut gefällt.:(

OK, damit hat sich meine Anfrage geklärt. Plymouth lasse ich mit noplymouth abgeschaltet und in den Systemeinstellungen lassen ich keinen Startbildschirm anzeigen. Da ich eh' keinen sehe, ändert sich für mich nichts. Im Prinzip könnte ich sogar die bereits heruntergeladenen Startbildschirme wieder löschen...

Danke an alle. (y)

EDIT: Ich habe gerade alle installierten Startbildschirme ausprobiert (mit Abmelden und neu Anmelden). Im Prinzip werden alle Startbildschirme für ca. 1 Sekunde angezeigt. Jetzt muss ich nur herausfinden, ob ich für diese Zeit kurz ein Bild oder einen schwarzen Bildschirm haben will...
 
Zuletzt bearbeitet:

susejunky

Moderator
Teammitglied
Der Startbildschirm (in den Systemeinstellungen) soll "nur" die Zeit zwischen dem Login und der vollständigen Darstellung des Desktops überbrücken, richtig?
Korrekt.

Den Splash-Screen, den ich meinte, stellt Plymouth dar und kann nicht über die Systemeinstellungen ausgesucht werden. Sowohl die Aktivierung als auch der Wechsel findet über Konsole statt.
Änderungen an der Plymouth-Konfiguration können (als Benutzer "root") mit plymouth-set-default-theme oder durch bearbeiten der Datei /etc/plymouth/plymouthd.conf vorgenommen werden. Anschließend muss eine neue initrd erstellt werden, um die Änderungen aktiv werden zu lassen.
 
Oben