Fbsplash: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Zeile 20: Zeile 20:
Danach den v86d irgendwo nach udev und vor keymap in die /etc/mkinitcpio.conf eintragen:
Danach den v86d irgendwo nach udev und vor keymap in die /etc/mkinitcpio.conf eintragen:


   HOOKS="base udev v86d ..."  
   HOOKS="base udev v86d ..."
 
Dann die initramfs mit mkinitcpio neu generieren:
mkinitcpio -p /boot/kernel26.img


=== Die Kernel-Parameter ===
=== Die Kernel-Parameter ===

Version vom 10. August 2009, 18:53 Uhr

Warn 16x16.png 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.

Was ist der 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 /boot/kernel26.img

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, kannst 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>


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.