Linux Bootup Logo Hack
Aus Gentoo Linux Wiki
| Installationsmethoden • LiveCDs • Kernel & Hardware • Laptops & Notebooks • Portage • System • Netzwerke & Services • X • Software • Anderes • alphabetischer HOWTO Index |
BENUTZUNG AUF EIGENER GEFAHR!
Letztes Update: 14.03.2006
Für Kernel: 2.6.x
Dieses HowTo ist für solche die das Linux Bootup Logo verändern wollen.
Inhaltsverzeichnis |
[Bearbeiten] Kernel konfigurieren
Jetzt ist es an der Zeit den Kernel richtig einzustellen für unseren kleinen Hack
Device Drivers ->
Graphics Support ->
[*] Support for frame buffer devices
[*] VESA VGA graphics support
Console display driver support ->
[*] Video mode selection support
<*> Framebuffer Console support
[*]Select compiled-in fonts
[*]VGA 8x16 font
Logo configuration->
[*]Bootup logo
[ ] Standard 224-color Linux logo
Achtung: Den Kernel noch nicht kompilieren - am Ende des HowTo's muss nochmals die .config des Kernels geändert werden! Mehr dazu unter Kernel kompilieren
[Bearbeiten] Logo erstellen
Wie am Anfang des HowTos schon geschrieben, kommen wir nun dazu, uns ein Logo mittels des Programmes netpbm zu erstellen:
| netpbm | |
| A set of utilities for converting to/from the netpbm (and related) formats
| |
| Entwickler | Bryan Henderson |
| Kategorie | media-libs |
| Lizenz | GPL 2 |
| Webseite | http://netpbm.sourceforge.net/ |
Um es zu installieren müsst ihr einfach nur folgenden Befehl ausführen:
emerge -av netpbm
Als nächstes müssen wir nun das Logo in das richtige Format bringen, damit der Kernel damit auch was anfangen kann.
pngtopnm -plain gentoo_logo.png >logo_gentoo_clut.ppm
ppmquant -plain 224 logo_gentoo_clut.ppm >logo_gentoo_clut224.ppm
ppmquant: making histogram...
ppmquant: 10153 colors found
ppmquant: choosing 224 colors...
ppmquant: mapping image to new colors...
Wenn alles richtig funktioniert hat, was es auch sollte, muss nur noch die modifizierte Datei an ihren richtigen Platz kopiert werden:
cp logo_gentoo_clut224.ppm /usr/src/linux/drivers/video/logo
Bevor wir weiter machen ist es am besten, die bestehenden Dateien zu sichern:
cd /usr/src/linux/drivers/video/logo cp Kconfig Kconfig.old cp Makefile makefile.old cp logo.c logo.c.old
Nun müssen nur noch folgende 3 Dateien mit unseren Erweiterungen editiert werden...
[Bearbeiten] Kconfig
nano -w Kconfig
# Logo configuration # menu "Logo configuration" config LOGO bool "Bootup logo" depends on FB || SGI_NEWPORT_CONSOLE config LOGO_LINUX_MONO bool "Standard black and white Linux logo" depends on LOGO default y config LOGO_LINUX_VGA16 bool "Standard 16-color Linux logo" depends on LOGO default y config LOGO_LINUX_CLUT224 bool "Standard 224-color Linux logo" depends on LOGO default y config LOGO_GENTOO_CLUT224 bool "Gentoo 224-color Linux logo" depends on LOGO default y config LOGO_DEC_CLUT224 bool "224-color Digital Equipment Corporation Linux logo" depends on LOGO && DECSTATION default y config LOGO_MAC_CLUT224 bool "224-color Macintosh Linux logo" depends on LOGO && MAC default y config LOGO_PARISC_CLUT224 bool "224-color PA-RISC Linux logo" depends on LOGO && PARISC default y config LOGO_SGI_CLUT224 bool "224-color SGI Linux logo" depends on LOGO && (SGI_IP22 || SGI_IP27 || SGI_IP32 || X86_VISWS) default y config LOGO_SUN_CLUT224 bool "224-color Sun Linux logo" depends on LOGO && (SPARC || SPARC64) default y config LOGO_SUPERH_MONO bool "Black and white SuperH Linux logo" depends on LOGO && SUPERH default y config LOGO_SUPERH_VGA16 bool "16-color SuperH Linux logo" depends on LOGO && SUPERH default y config LOGO_SUPERH_CLUT224 bool "224-color SuperH Linux logo" depends on LOGO && SUPERH default y endmenu
[Bearbeiten] Makefile
nano -w Makefile
# Makefile for the Linux logos obj-$(CONFIG_LOGO) += logo.o obj-$(CONFIG_LOGO_LINUX_MONO) += logo_linux_mono.o obj-$(CONFIG_LOGO_LINUX_VGA16) += logo_linux_vga16.o obj-$(CONFIG_LOGO_LINUX_CLUT224) += logo_linux_clut224.o obj-$(CONFIG_LOGO_GENTOO_CLUT224) += logo_gentoo_clut224.o obj-$(CONFIG_LOGO_DEC_CLUT224) += logo_dec_clut224.o obj-$(CONFIG_LOGO_MAC_CLUT224) += logo_mac_clut224.o obj-$(CONFIG_LOGO_PARISC_CLUT224) += logo_parisc_clut224.o obj-$(CONFIG_LOGO_SGI_CLUT224) += logo_sgi_clut224.o obj-$(CONFIG_LOGO_SUN_CLUT224) += logo_sun_clut224.o obj-$(CONFIG_LOGO_SUPERH_MONO) += logo_superh_mono.o obj-$(CONFIG_LOGO_SUPERH_VGA16) += logo_superh_vga16.o obj-$(CONFIG_LOGO_SUPERH_CLUT224) += logo_superh_clut224.o obj-$(CONFIG_LOGO_SUPERH_CLUT224) += logo_superh_clut224.o # Dependencies on generated files need to be listed explicitly $(obj)/%_mono.o: $(src)/%_mono.c $(obj)/%_vga16.o: $(src)/%_vga16.c $(obj)/%_clut224.o: $(src)/%_clut224.c $(obj)/%_gray256.o: $(src)/%_gray256.c # How to generate them $(obj)/%_mono.c: $(src)/%_mono.pbm $(objtree)/scripts/pnmtologo -t mono -n $*_mono -o $@ $< $(obj)/%_vga16.c: $(src)/%_vga16.ppm $(objtree)/scripts/pnmtologo -t vga16 -n $*_vga16 -o $@ $< $(obj)/%_clut224.c: $(src)/%_clut224.ppm $(objtree)/scripts/pnmtologo -t clut224 -n $*_clut224 -o $@ $< $(obj)/%_gray256.c: $(src)/%_gray256.pgm $(objtree)/scripts/pnmtologo -t gray256 -n $*_gray256 -o $@ $< # Files generated that shall be removed upon make clean clean-files := *_mono.c *_vga16.c *_clut224.c *_gray256.c
Die Syntax lautet immer : obj-$(CONFIG_OPZIONE_KERNEL) += nome_file_logo.o
[Bearbeiten] logo.c
nano -w logo.c
/*
* Linux logo to be displayed on boot
*
* Copyright (C) 1996 Larry Ewing (lewing@isc.tamu.edu)
* Copyright (C) 1996,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
* Copyright (C) 2001 Greg Banks <gnb@alphalink.com.au>
* Copyright (C) 2001 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* Copyright (C) 2003 Geert Uytterhoeven <geert@linux-m68k.org>
*/
#include <linux/config.h>
#include <linux/linux_logo.h>
#ifdef CONFIG_M68K
#include <asm/setup.h>
#endif
#if defined(CONFIG_MIPS) || defined(CONFIG_MIPS64)
#include <asm/bootinfo.h>
#endif
extern const struct linux_logo logo_linux_mono;
extern const struct linux_logo logo_linux_vga16;
extern const struct linux_logo logo_linux_clut224;
extern const struct linux_logo logo_gentoo_clut224;
extern const struct linux_logo logo_dec_clut224;
extern const struct linux_logo logo_mac_clut224;
extern const struct linux_logo logo_parisc_clut224;
extern const struct linux_logo logo_sgi_clut224;
extern const struct linux_logo logo_sun_clut224;
extern const struct linux_logo logo_superh_mono;
extern const struct linux_logo logo_superh_vga16;
extern const struct linux_logo logo_superh_clut224;
const struct linux_logo *fb_find_logo(int depth)
{
const struct linux_logo *logo = 0;
if (depth >= 1) {
#ifdef CONFIG_LOGO_LINUX_MONO
/* Generic Linux logo */
logo = &logo_linux_mono;
#endif
#ifdef CONFIG_LOGO_SUPERH_MONO
/* SuperH Linux logo */
logo = &logo_superh_mono;
#endif
}
if (depth >= 4) {
#ifdef CONFIG_LOGO_LINUX_VGA16
/* Generic Linux logo */
logo = &logo_linux_vga16;
#endif
#ifdef CONFIG_LOGO_SUPERH_VGA16
/* SuperH Linux logo */
logo = &logo_superh_vga16;
#endif
}
if (depth >= 8) {
#ifdef CONFIG_LOGO_LINUX_CLUT224
/* Generic Linux logo */
logo = &logo_linux_clut224;
#endif
#ifdef CONFIG_LOGO_GENTOO_CLUT224
/* Gentoo Linux logo */
logo = &logo_gentoo_clut224;
#endif
#ifdef CONFIG_LOGO_DEC_CLUT224
/* DEC Linux logo on MIPS/MIPS64 */
if (mips_machgroup == MACH_GROUP_DEC)
logo = &logo_dec_clut224;
#endif
#ifdef CONFIG_LOGO_MAC_CLUT224
/* Macintosh Linux logo on m68k */
if (MACH_IS_MAC)
logo = &logo_mac_clut224;
#endif
#ifdef CONFIG_LOGO_PARISC_CLUT224
/* PA-RISC Linux logo */
logo = &logo_parisc_clut224;
#endif
#ifdef CONFIG_LOGO_SGI_CLUT224
/* SGI Linux logo on MIPS/MIPS64 and VISWS */
#ifndef CONFIG_X86_VISWS
if (mips_machgroup == MACH_GROUP_SGI)
#endif
logo = &logo_sgi_clut224;
#endif
#ifdef CONFIG_LOGO_SUN_CLUT224
/* Sun Linux logo */
logo = &logo_sun_clut224;
#endif
#ifdef CONFIG_LOGO_SUPERH_CLUT224
/* SuperH Linux logo */
logo = &logo_superh_clut224;
#endif
}
return logo;
}
[Bearbeiten] Abschluss
Nun können sie zurück in die Kernel-Konfiguration gehen und das neue Logo auswählen!
Logo configuration->
[*]Bootup logo
[ ] Standard black and white
[ ] Standard 16-color Linux logo
[ ] Standard 224-color Linux logo
[*] Gentoo 224-color Linux logo
Nun kann endlich unser Kernel mit dem modifizierten Bootup Logo kompiliert und anschließend gebootet werden.
[Bearbeiten] Quellen & Links
- Geschrieben von --MyD 21:38, 19. Mär 2006 (GMT)
- wikigerecht bearbeitet und eingepflegt --Misterjack 21:38, 19. Mär 2006 (GMT)
- Howto im Gentooforum.de
