Fbsplash

Aus wiki.archlinux.de
Version vom 13. Januar 2021, 11:46 Uhr von Dirk (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


Fbsplash (vormals gensplash) ist eine Userspace-Implementierung eines Startbildschirms für Linux-Systeme. Mit der Linux-Framebuffer-Schicht ermöglicht sie eine grafische Umgebung während der Bootvorgangs. Fbsplash hat das Ziel einfach, leicht und schnell zu sein. Der Code ist auf minimale Boot-Zeit optimiert.

Framebuffer

Ab dem Linux-Kernel 2.2 ist der Framebuffer standardmäßig enthalten. Der Framebuffer ist eine Methode, unter Linux den Grafikspeicher der Grafikkarte anzusprechen. Das Besondere an dieser Methode ist, dass dabei kein speziel an die Grafikkarte angepasster X11-Treiber verwendet wird, sondern dass er selbst den Speicher der Grafikkarte im System repräsentiert und dabei die Koordination über Dateioperationen mit ihr übernimmt. Dazu muss im Linux-Kernel der Framebuffer-Treiber aktiviert sein, so dass die Funktionalität über das Device /dev/fb0 (ist das erste Framebuffer Device, das zweite verwendet /dev/fb1 usw.) zur Verfügung steht. Das ist standardmäßig im Linux-Kernel von Arch Linux der Fall.

Uvesafb

Uvesafb ist ab Version 2.6.24 im Kernel eingepflegt und ersetzt damit den vesafb-tng (ein Erweiterungs-Patch von Michał Januszewski alias spock für den normalen VESA-Framebuffer-Treiber). Mehr Infos dazu auf spocks offizieller Webseite.

Der virtualisierung Daemon

Im Gegensatz zu anderen Framebuffer-Treibern braucht uvesafb einen Userspace-Virtualisierungs-Daemon, genannt v86d. Dieser ist in der extra Repository verfügbar und kann einfach mit pacman installiert werden:

 pacman -S v86d

Danach den v86d irgendwo nach udev und vor keymap in die /etc/mkinitcpio.conf eintragen:

 HOOKS=(base udev v86d ...)

Dann die initramfs mit mkinitcpio neu generieren:

mkinitcpio -p kernel26

Wird ein anderer Kernel benutzt, zum Beispiel mit Fbcondecor, dann den Befehl entsprechend anpassen: mkinitcpio -p kernel26-fbcondecor

Die Kernel-Parameter

Zuerst alle eventuellen Framebuffer-Kernel-Boot-Parameter in der Grub/Lilo-Konfiguration, die sich auf den normalen VESA-Framebuffer-Treiber beziehen, entfernen.

(vga=792 ...)

Die Einstellungen werden stattdessen jetzt in der /etc/modprobe.d/uvesafb.conf (ist ein Teil des obengenannten V86d-Pakets) oder in der allgemeinen /etc/modprobe.d/modprobe.conf vorgenommen. Die uvesafb.conf vom V86d-Paket verrät auch, wo man weitere Infos zum uvesafb nachlesen kann.

# This file sets the parameters for uvesafb module.
# The following format should be used:
# options uvesafb mode=<xres>x<yres>[-<bpp>][@<refresh>] scroll=<ywrap|ypan|redraw> ...
#
# For more details see:
# http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt
#
options uvesafb mode=1280x800-32 scroll=ywrap

Ab Kernel .6.27 und höher sieht die Zeile so aus:

options uvesafb mode_option=1280x800-32 scroll=ywrap

Uvesafb als festen Bestandteil des Kernels

Wenn du einen selbst kompilierten Kernel benutzt, in dem du Uvesafb als festen Bestandteil des Kernels statt als Modul eingebunden hast, kann das V86d-Paket auch später gestartet werden (bspw. mittels etc/rc.local) und du musst den Boot-Parameter in der Grub/Lilo-Konfiguration wie folgt anpassen:

video=uvesafb:<options>

Installation

Das Programm ist als fbsplashAUR im AUR verfügbar, und kann von dort zum Beispiel mit einem der AUR Hilfsprogramme installiert werden.

# Das Programm an sich
pakku -S fbsplash

# Um fbsplash beim Starten und Runterfahren des Computers zu kontrollieren
pakku -S fbsplash-extras

Bei der Verwendung von AUR-Hilfsprogrammen ist zu beachten, dass Pakete niemals „blind“ installiert werden sollten. Vor dem Installieren sollten die Kommentare im AUR gelesen, und das PKGBUILD geprüft werden.

Ergänze fbsplash unter DAEMONS in der rc.conf:

DAEMONS=(... fbsplash gpm gdm)

Themes

Das Fbsplash-Paket selbst bringt kein Aussehen für den Bootvorgang mit, so dass zumindest ein Theme installiert werden muss.

Fertiges Theme

Im AUR findest du einige fertige Themes für Arch Linux. Suche in AUR nach Themes

Theme selber erstellen

Eine gute Anleitung dazu findet du im Artikel zum Fbsplash des Gentoo-Wikis.

Hintergrund für die Konsole

Mit dem Kernel-Patch Fbcondecor hat auch die Konsole ein schönes Hintergrundbild, sofern dein gewähltes Splash eins mitbringt. Du findest ihn hier im AUR

Fbsplash einrichten

Bootloader konfigurieren

Ergänze den Bootloader in der "Kernel-Zeile" wie folgt:

quiet console=tty1 splash=silent,theme:arch-banner-icons,fadein,fadeout

Fbsplash konfigurieren

In der /etc/conf.d/splash kannst du diverse Einstellungen vornehmen. Hier musst du auch mindestens ein installiertes Theme angeben:

SPLASH_THEMES="arch-black arch-banner-icons arch-banner-noicons"

Dieser Artikel (oder Teile davon) steht unter GNU FDL (GNU Freie Dokumentationslizenz). Grundlage für den Inhalt ist der der Artikel fbsplash im Gentoo-Wiki.