# Gentoo Bootsplash und Framebuffer

## equinox0r

[HOWTO] Gentoo Bootsplash und Framebuffer

 :Exclamation:  Nutzer von Kerneln ab der Version 2.6.9 bitte nach folgendem HOWTO http://de.gentoo-wiki.com/HOWTO_fbsplash vorgehen.  :Exclamation: 

 Fragen und Tipps bitte hier in den Thread

 Kritik bitte nur per PN, ICQ oder eMail

Das Howto hab ich übrigens gnadenlos aus diesem Thread kopiert, schöner gestaltet, übersetzt und an meinem Rechner selbst getestet (ja es funktioniert).

Vorwort:

Die Art und Weise wie man Gentoo den Framebuffer und den Bootsplash beibringt unterscheidet sich leider dahingehend etwas welchen Kernel man verwendet. Ich habe in dieses Howto folgende Kernel mit einbezogen: gentoo-dev-sources, gentoo-sources, gaming-sources und xfs-sources

 Kernel 2.6.x von kernel.org

 Kernel 2.4.x von kernel.orgIn den Kernelsources aus Portage ist der Kernel bereits gepatched, sodass Benutzer mit diesen Kernelpackages die Schritte 2 - 4 überspringen können.

 :Exclamation:  Ich gehe in diesem HowTo übrigens von meiner Konfiguration aus, z.B. habe ich keine spezielle Boot-Partition. Habt Ihr eine solche vergesst nicht diese mit 

```
mount /boot
```

 zu mounten.

Vorbereitungen:

Als erstes machen wir ein 

```
emerge sync
```

 um die aktuellste Version des Portage-Trees zu erhalten. Dann emergen wir bootsplash

```
emerge bootsplash
```

 und führen ein etc-update aus und überschreiben falls nötig die alte Bootsplash-Konfiguration. 

```
etc-update
```

Schliesslich fügen wir Bootsplash noch dem default-Runlevel hinzu 

```
rc-update add bootsplash default
```

 :Exclamation:  Achtet bitte darauf, dass /usr/src/linux auf die richtigen Kernelsourcen gesymlinkt ist. Sollte das nicht der Fall sein, erstellt einfach den Symlink:

```
ln -sf /usr/src/linux/kernel-2.x.x /usr/src/linux
```

Der Kernel-Bootsplash-Patch:

Abhängig von Eurer Kernelversion müsst Ihr Euren Kernel mit dem entsprechenden Bootsplash-Patch versehen.

2.4.20

2.4.21

2.4.22

2.6.0

2.6.3

2.6.5

2.6.6

2.6.7

2.6.8.1

Dann laden wir uns das entsprechende File nach /usr/src/linux herunter:

```
cd /usr/src/linux

wget http://www.bootsplash.de/files/bootsplash-3.1.4-2.6.7.diff
```

Und schliesslich patchen wir unseren Kernel:

```
bootsplash_patch
```

 So das wars schon  :Smile: 

Der Kernel in /usr/src/linux ist damit gepatched.

Die Kernelkonfiguration:

Wie bereits angesprochen ist die Konfiguration des Kernels je nach Version unterschiedlich:

```
cd /usr/src/linux

make menuconfig
```

Konfiguration 2.4er Kernel:

```
Code maturity level options  --->

    [*] Prompt for development and/or incomplete code/drivers

Processor type and features  --->

    [*] MTRR (Memory Type Range Register) support

Block Devices ->

    [*] Loopback device support

    [*] RAM disk support

    (4096)   Default RAM disk size

    [*] Initial RAM disk (initrd) support

Console Drivers ->

    [*] VGA text console

    [*] Video mode selection support

Console Drivers -> Frame-buffer support ->

    [*] Support for frame buffer devices

    [*] VESA VGA graphics console

    [*] Use splash screen instead of boot logo 
```

Konfiguration 2.6er Kernel:

```
Code maturity level options  --->

    [*] Prompt for development and/or incomplete code/drivers

Processor type and features  --->

    [*] MTRR (Memory Type Range Register) support

Device Drivers  --->

    Block devices  --->

        <*> Loopback device support

        <*> RAM disk support

        (4096) Default RAM disk size

        [*]   Initial RAM disk (initrd) support

Graphics support  --->

    [*] Support for frame buffer devices

    [*]   VESA VGA graphics support

    Console display driver support  --->

        [*]   Video mode selection support

        <*> Framebuffer Console support

    Bootsplash configuration  --->

        [*] Bootup splash screen 
```

 :Exclamation:  Beachtet auch dass folgende Optionen deaktiviert sind. Auf einigen Systemen kann das Aktivieren dieser Optionen dazu führen, dass Bootsplash nicht richtig geladen wird!

```
Processor type and features  --->

    [ ] Use register arguments (EXPERIMENTAL)

Device Drivers  --->

    Graphics support  --->

            < >   nVidia Riva support

        Logo configuration  --->

            [ ] Bootup logo
```

Jetzt muss nur noch der Kernel neu übersetzt werden. Je nach Version ist das auch hier unterschiedlich:

Kompilieren 2.4er Kernel:

```
make dep && make clean bzImage modules modules_install
```

Kompilieren 2.6er Kernel:

```
make all
```

Die Kernel"installation":

Das ist jetzt nichts Schweres mehr, ich habe folgendes gemacht:

```
mkdir /boot/kernel-test

cp /usr/src/linux/.config /boot/kernel-test/config-2.6.7

cp /usr/src/linux/System.map /boot/kernel-test/System.map-2.6.7

cp /usr/src/linux/arch/i386/boot/bzImage /boot/kernel-test/kernel-2.6.7
```

Damit haben wir schonmal einen funktionierenden Kernel. Ab hier geht es wieder normal weiter.

Die Initial RamDisk (initrd):

Da der Kernel zur Bootzeit keine Dateien aus dem Dateisystem lesen kann benötigen wir eine RamDisk (initrd) in der wir die Daten ablegen können (s. Kernelkonfiguration). Bootsplash lädt dann aus der initrd heraus.

Nun erstellen wir uns einfach die initrd. Diese beinhaltet wie bereits gesagt das Splashtheme, welche unter /etc/bootsplash zu finden sind:

```
/sbin/splash -s -f /etc/bootsplash/default/config/bootsplash-1024x768.cfg > /boot/kernel-test/initrd
```

Damit ist die initrd auch schon erstellt und der Kernelkram auch soweit fertig.

Die Framebuffer-Konfiguration:

Dem Kernel muss man im Bootloader noch zwei Optionen mitübergeben, damit der Framebuffer richtig geladen wird:

```
video=vesafb:ywrap,mtrr vga=0x317
```

video definiert die Bildschirmoptionen wie z.B. ywrap und mtrr. Leider habe ich nirgends so genau herausgefunden, was ywrap und mtrr bedeutet bzw. macht, wenn das jemand genauer weiss, her damit  :Smile: 

vga legt die Auflösung und die Farbtiefe des Framebuffers fest.

Hier eine Übersicht der verfügbaren Modi:

```
    | 640x480  800x600  1024x768 1280x1024

----+-------------------------------------

256 |  0x301    0x303    0x305    0x307   

32k |  0x310    0x313    0x316    0x319   

64k |  0x311    0x314    0x317    0x31A   

16M |  0x312    0x315    0x318    0x31B
```

Ich habe hier 0x317 gewählt, da ich mit dieser Auflösung auf meinem 17-Zöller gut le(b/s)en kann.

Der Bootloader:

Ich habe mich hier für Grub entschieden, im Prinzip funktioniert es mit Lilo genauso, die Syntax ist nur etwas anders.

Hier (m)eine Beispiel-grub.conf:

```
title   Gentoo Linux 2.6.7

root    (hd0,4)

kernel  /boot/kernel-test/kernel-2.6.7 root=/dev/hda5 hdc=ide-scsi hdd=ide-scsi video=vesafb:ywrap,mtrr vga=0x317

initrd  /boot/kernel-test/initrd
```

 :Exclamation:  Es wäre noch zu beachten, dass ich hier einen 2.6er Kernel verwende; beim 2.4er Kernel muss der video-Kernelparameter vesa:ywrap,mtrr heissen.

Reboot:

Habt Ihr alles richtig gemacht erwartet Euch nachdem Reboot

```
shutdown -r now
```

 Euer neues Bootsplash im Framebuffer.

Have phun  :Smile: 

EDIT: kernelpatch für kernel 2.6.8 hinzugefügt

----------

## Kroni

Danke  :Smile: ,

Ich probiers mal aus wennich zuhause bin. Hatte bisher noch nie Zeit dazu  :Wink: 

Aber is nett das mal auf Deutsch zu haben. Hau es doch mal in Gentoo-Wiki rein.

----------

## bloodcount

Hi,

bootsplash läuft nun schon ne ganze Zeit bei mir. Was mich aber noch interessiert ist, wie ich so ne schöne progress bar zum laufen bringe  :Wink: 

Hab mal gelesen das die themes das unterstüzen müssen, gibts irgendwo ne Seite mit bootsplash themes?

Mfg,

Ronny

----------

## Lenz

Was mich mal interessieren würde bei diesen Bootsplashs: Ist es möglich beim Systemstart das Gentoologo der Live-CD zu bekommen aber beim F2-Druck dann eine normale schwarze Konsole?

----------

## equinox0r

auf bootsplash.org gibbet imho welche ...

ansonsten google  :Wink: 

ausserdem kann man sich son theme auch zusammenbasteln, ich hab mir die config-dateien zwar nicht so genau angeschaut sah aber recht einfach aus ...

----------

## boris64

 *Quote:*   

>   Beachtet auch dass folgende Optionen deaktiviert sind. Auf einigen Systemen kann das Aktivieren dieser Optionen dazu führen, dass Bootsplash nicht richtig geladen wird!
> 
> 

 

```
Processor type and features  --->

     [ ] Use register arguments (EXPERIMENTAL)
```

auch "Use register arguments" muss disabled sein.

----------

## equinox0r

merci boris, habs eben abgeändert

----------

## RockHound

 *bloodcount wrote:*   

> Was mich aber noch interessiert ist, wie ich so ne schöne progress bar zum laufen bringe 

 

Hi,

 AFAIK musst du nur splash=silent and als bootparam anhängen.

Gruß,

Martin

----------

## primat

 *Quote:*   

> 
> 
>  AFAIK musst du nur splash=silent and als bootparam anhängen. 
> 
> 

 

Und ein Theme haben welches Silent mode unterstützt!

Gruss

----------

## psyqil

 *Lenz wrote:*   

> Was mich mal interessieren würde bei diesen Bootsplashs: Ist es möglich beim Systemstart das Gentoologo der Live-CD zu bekommen aber beim F2-Druck dann eine normale schwarze Konsole?

 Hm. F2 weiß ich nichts von, aber wenn Deine initrd das Logo läd, könntest Du das vielleicht über /etc/init.d/bootsplash mit einem schwarzen "Bild" ersetzen...oder, wenn diese "silent"-Geschichte fusioniert, was ich nie probiert hab, lautet die Antwort wahrscheinlich "ja"...  :Wink: 

----------

## sirro

 *equinox0r wrote:*   

> Ich habe hier 0x317 gewählt, da ich mit dieser Auflösung auf meinem 17-Zöller gut le(b/s)en kann.

 

Kleiner Tipp für alle, die nicht genug Platz auf ihrer Konsole haben können:  :Wink: 

vga=838 bringt bei mir (hardened-dev-sources-2.6.7-r3) eine 1600x12000 Konsole...

----------

## biN_basH

Ist zwar ein nettes Tutorial, für mich aber dennoch unnütz. Denn diese 30 Sekunden, die mein Rechner benötigt um X zu starten, komme ich auch gut ohne Bootsplash aus  :Smile: 

----------

## Linuxpeter

Ich verzichte ebenfalls aus Zeit- und Performancegründen auf einen Bootsplash, aber für die, die nicht genug bekommen können, hier noch ein Link:

http://www.bootsplash.de

 :Wink: 

----------

## Marlo

hi @ll,

Ein Link auf das  Original wäre übrigens zu empfehlen.

 *Lenz wrote:*   

> Was mich mal interessieren würde bei diesen Bootsplashs: Ist es möglich beim Systemstart das Gentoologo der Live-CD zu bekommen ...

 

Ja, mit 

```
emerge bootsplash bootsplash-themes-livecd -s
```

 ist die Auswahl da. Von gentoo default bis z.Z. livecd-2004.0 bis livecd-2004.2.

 *psyqil wrote:*   

> Hm. F2 weiß ich nichts von, aber wenn Deine initrd das Logo läd, könntest Du das vielleicht über /etc/init.d/bootsplash mit einem schwarzen "Bild" ersetzen...

 

igitt, ne ne, interessant im Original wird es ab:

```
Personalising your bootsplash theme! 
```

Schöne  Sachen gibts   überall . Für mich etwas zu  perfektionistisch .   :Rolling Eyes: 

Habe mir was zusammenpersonalisiert, das garantiert nach "Marke Eigenbau" aussieht. 

 :Very Happy:   :Laughing:  Ihr wisst ja, der erste Eindruck entscheidet.  :Very Happy:   :Laughing: 

----------

## bienchen

Hallo,

habe den 2.6.8-gentoo-r3 Kernel und nach diesem Tutorial versucht Bootsplash aufzusetzen (mit dem Patch für 2.6.8.1). Allerdings bekomme ich nach dem Auswählen eines Grub-Eintrags beim booten immer so ne Meldung von wegen, ich hätte irgendeinen Mode nicht gesetzt. Danach kann ich dann noch einen Mode auswählen, scheint die ZeilenxSpalten der Console zu sein.

mfg,

Bienchen

----------

## mrsteven

 *sirro wrote:*   

> vga=838 bringt bei mir (hardened-dev-sources-2.6.7-r3) eine 1600x12000 Konsole...

 

Wow, was für nen Monitor braucht man, um das vernünftig darzustellen?  :Shocked: 

----------

## Jtb

Info: dieses HOWTO funktioniert bei 2.6.8. nicht mehr!

Seit dieser Version gibt es Gensplash statt Bootsplash (siehe auch https://forums.gentoo.org/viewtopic.php?t=206778&start=0)

Weiterhin: kein lästiges vga=xy mehr, jetzt einfach die Auflösung angeben..

----------

## mrsteven

 *Jtb wrote:*   

> Weiterhin: kein lästiges vga=xy mehr, jetzt einfach die Auflösung angeben..

 

Ist das dieses vesafb-tng Ding?

----------

## Jtb

 *mrsteven wrote:*   

>  *Jtb wrote:*   Weiterhin: kein lästiges vga=xy mehr, jetzt einfach die Auflösung angeben.. 
> 
> Ist das dieses vesafb-tng Ding?

 

genau  :Smile: 

Vorher sah meine Grub-Config so aus:

```

kernel (hd0,2)/boot/bzImage root=/dev/hda6 video=mtrr,ywrap,vesa:1400x1050 vga=0x342 splash=silent 

initrd=/boot/initrd-1400x1050
```

und jetzt sieht sie so aus:

```

kernel (hd0,2)/boot/bzImage root=/dev/hda3 video=vesafb-tng:1400x1050-32@60,mtrr,ywrap splash=silent,theme:emergence 

initrd=/boot/initrd-1400x1050

```

siehe auch http://dev.gentoo.org/~spock/projects/gensplash/archive/gensplash-in-5-easy-steps.txt zum Umstieg von Bootsplash auf Gensplash..

----------

## equinox0r

kernelpatch für kernel 2.6.8.1 hinzugefügt

----------

## zouk

 *Jtb wrote:*   

> 
> 
> und jetzt sieht sie so aus:
> 
> ```
> ...

 

Meine grub.conf sieht genauso aus wie in dem Link "gensplash in 5 easy steps". Funktioniert auch alles prima, bis auf die Tatsache dass ich die Ausgaben des Kernels sehe (in dieser riesigen Konsolenschrift) bis er die initrd läd. Erst dann kommt das Gensplash.

Weiß jemand wie ich diese ersten Ausgaben auch noch unterdrücken kann? Ich nehme ja mal an dass das ein Parameter im Grub sein dürfte, hab aber nichts gefunden.

gruß,

zouk

p.s. ist es normal dass nach dem booten nur die erste Konsole (also auf <strg><F1>) ein Hintergrundbild hat?

----------

## Inte

 *Spock wrote:*   

> Tasks such as decompressing images are best handled by userspace libraries. The thing is, we want splashutils to display the silent picture right after the framebuffer subsystem is initialized (and not after the kernel is fully loaded) ...

 In der alten FAQ wurde noch präziser darauf eingegangen. Diese Option (laden des Treibers im Kernel-Space) wird es mit vesafb-tng definitiv nie geben.

Alle Konsolen schmücken:

```
# grep TTYS /etc/conf.d/splash 

SPLASH_TTYS="0 1 2 3 4 5"
```

Gruß, Inte.

----------

## zouk

 *Inte wrote:*   

>  *Spock wrote:*   Tasks such as decompressing images are best handled by userspace libraries. The thing is, we want splashutils to display the silent picture right after the framebuffer subsystem is initialized (and not after the kernel is fully loaded) ... In der alten FAQ wurde noch präziser darauf eingegangen. Diese Option (laden des Treibers im Kernel-Space) wird es mit vesafb-tng definitiv nie geben.

 

Okay, hab ich nicht gesehen  :Embarassed: 

 *Inte wrote:*   

> 
> 
> Alle Konsolen schmücken:
> 
> ```
> ...

 

Merci!

zouk

----------

## py-ro

ich hab mit gensplash das Problem, dass mein Rechner bei silent hängenbleibt, kurz nach start des fb.

Jemand hier eine Idee?

MfG

Py

----------

## trashcity

also jetz kenn ich mich bald nicht mehr aus 

ich hab den gentoo-dev-sources kernel und was brauch ich jetzt alles um 

den bootsplash verwenden zu können?

was brauch ich ales im kernel und was muss ich ales mergen?

----------

## ltiefland

Vor allem interressiert mich folgendes: Wie mache ich das ganze mit Hilfe von genkernel? Der legt ja eine initrd an. Zu Bootsplash gibt es ja auch eine initrd. Wenn ich jetzt die vom Kernel entpacke, mit der von Bootsplash verschmelze und das ganze dann wieder packe, bekomme ich nur die Meldung (beim nächsten Boot), daß es keine gültige initrd sei?!?

----------

## trashcity

also habs gefunden 

seit kernel version 2.6.8 giebts keinen bootsplash mehr (zumindest habs ich so verstanden)

jetzt heist das ganze framebuffer splash

es giebt einen anleitung http://gentoo-wiki.com/HOWTO_fbsplash

bei mir gehts nicht und ich werde jetzt einen neuen trade starten

----------

## misterjack

zur Vollständigkeit halber:

http://de.gentoo-wiki.com/HOWTO_fbsplash

Steht drin wie man sich Fbsplash/Gensplash mit jedem Kernel einrichten kann

----------

## NightDragon

Weil das Thema gerade mal ganz obene ist.

Hat jemand eine Idee wieso ich keine Progressbar habe? Und wieso nur manche Themes angezeigt werden?

Es gibt keinerlei Fehlermeldungen usw... Manche gehn, manche nicht.

Ich verwende zwar nicht bootsplash sondern fbsplash.

Aber da dürfte ja nicht viel um sein.

Alles andere funktioniert eigentlich.

Nur eben das paradoxe, da manche gehn und manche nicht und das keine Progressbar angezeigt wird.

Ideen?

Auszug aus grub.conf:

```

title=Gentoo Linux 2.6.10-r6 den-dev Org.

root (hd0,0)

kernel (hd0,0)/gendevk-2.6.10-r6 root=/dev/hda3 video=vesafb-tng:ywrap,mtrr,1024x768-32@60 splash=silent,theme:gechi

initrd (hd0,0)/boot/splash/gechi

```

[EDIT]

Fehler gefunden.

```

Alt: video=vesafb-tng:ywrap,mtrr,1024x768-32@60

Neu: video=vesafb:mtrr,1024x768-32@60
```

Und damit gehts wieder.

----------

## hTm

Moin,

kann es sein das es den fbsplash auch nicht mehr gibt? Jedenfalls sagt mir das mein Portage. Ich hab auch schon einen sync gemacht aber hat nichts geholfen.

Gruß

----------

## jkoerner

Moin,

heißt jetzt fbcondecor und ist in splashutils enthalten.

----------

## caseystinson

thnk u

----------

