Grub anpassen, spacefun loswerden

Monday, October 24. 2011

Hier läuft Grub 2, Paket grub-pc, und anlässlich einer recht boot-freudigen Phase von Installationen nervten ein paar Eigenheiten des Boot genug, um mich zur Änderung zu treiben. Ärgernisse:
- mit usb-Tastatur ist das Boot-Menü des Grub nicht bedienbar
- nach dem grafischen Boot-Menü fällt Grub für die folgenden Meldungen in einen Textmodus zurück (gewünscht), und verwendet zur Ausgabe eine absurd grosse Schrift, so dass die Ausgaben mehrfach umgebrochen über den Schirm huschend kaum lesbar sind
- eigentlich mag ich die vorgegebene Grafik nicht und möchte das komplette spacefun theme des Debian Squeeze gerne verbannen.

Punkt eins ist wohl ein Timing-Problem, probehalber im Bios den schnellen Boot disabled und seither geht's.
Die Formatierung der Bootmeldungen und eine eigene Hintergrundgrafik kann man in /etc/default/grub und /etc/grub.d/00_header beeinflussen.

 

/etc/default/grub:
GRUB_GFXMODE=1280x1024x24
GRUB_BACKGROUND="/pfad/zu/beliebigem/Verzeichnis/und/Bild.png"

Der Eintrag in GRUB_GFXMODE muss natuerlich zu den Fähigkeiten der Grafik passen, eine Liste möglicher Modi gibt's nach: 
apt-get install hwinfo
hwinfo --framebuffer

In /etc/grub.d/00_header ergänzt man (bei mir auf Zeile #127) nach 
  set gfxmode=${GRUB_GFXMODE} die Zeile
  set gfxpayload=keep

Anschliessend update-grub. Es ist übrigens ratsam, zuvor ein Backup der Einträge in /etc/grub.d zu machen, denn wenn man versehentlich einen Fehler in die editierte Datei bringt (keine Ahnung, was da passiert war) dann moniert grub-mkconfig den Fehler in wenig hilfreicher Art. (fehlerhafte Dateien werden wie nicht vorhanden behandelt und man kratzt sich am Kopf, weshalb eine offenbar anwesende Datei NOT FOUND sei.)

Dann gibt es noch /usr/share/desktop-base/grub_background.sh

Wenn man den Ort des grub ändern will (zB grub in eine Partition installiert hatte, ihn jetzt aber lieber im MBR hätte) dann hilft (als root) grub-setup /dev/sdX  (X mit eigener Konfig. ersetzen).

Wenn man space-fun auch vom Login-Screen verbannen will, hilft  /etc/default/kdm.d/10_desktop-base
Für den Login kann man da ein eigenes Bild einsetzen, aber danach folgt eine Ladeanimation (ksplash) und der den spacefun abzugewöhnen war nicht ganz leicht.
Eine Suche auf "debian kde spacefun" liefert in vielen Varianten einen Thread "KDE4 , Squeeze: Space fun background keeps appearing under kde login splash" mit vielen Ansätzen, was man versuchen könnte. Aber keiner wirkte. Weder liess sich ein anderer Splash einstellen, ein neuer installieren oder sonst irgendwas bewegen, die erste irgendwie wirksame Massnahme war, testweise in  /usr/share/kde4/apps/ksplash/Themes spacefun in spacefun-weg umzunennen: nun bekam ich statt des Splash ein weisses Rechteck auf Schwarz. Und so richtig elegant ist solche Wurschtelei ja auch nicht gerade...

Endlich fand ich die nirgends erwähnte entscheidende Referenz auf den spacefun in
~/.kde/share/config/startupconfig (das wirkte mit KDE 4.4)

Dort ein anderes Theme setzen, dass in  /usr/share/kde4/apps/ksplash/Themes vorhanden ist, und dann geht's doch.

In KDE 4.6 war es dann wieder anders, hier liess sich alles aus den System Settings einstellen, wenn man sich System settings als Root eingerichtet hat. Das geht fix mit dem KDE MEnue editor, man kopiert den Eintrag der System settings, gibt ihm einen etwas anderen Namen und stellt unter Advanced / Run with a different user root ein. Das theme fuer den LoginScreen steht unter /usr/share/kde4/apps/kdm/themes, kann man sich leicht selbst erstellen aus der Kopie eines schon vorhandenen.

Update:
als ich später die Textfarbe auf dem Boot-Menü ändern wollte, habe ich einen Eintrag in /etc/grub.d/05_debian_theme vorgenommen, ab ca Zeile 95 steht da jetzt:

        if [ -n "${2}" ]; then
                echo "  set color_normal=${2}"
        fi
        if [ -n "${3}" ]; then
                echo "  set color_highlight=${3}"
        fi
        if [ -z "${2}" ] && [ -z "${3}" ]; then
                # auskommentiert und stattdessen konkrete Farben gesetzt
                # echo "  true"
                echo "  set color_normal=blue/black"   
                echo "  set color_highlight=cyan/black"

Farbnamen und mehr Infos findet man zB hier.



Trackbacks


Trackback specific URI for this entry
    No Trackbacks

Comments


    No comments

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA