# Icone Gentoo nel bootlogo di linux-2.6.0

## DuDe

Come topic qualcuno sa' come aggiungere bootlogo al kernel 2.6.0?

----------

## shev

Intendi la stessa cosa chiesta in questo topic?   :Rolling Eyes: 

----------

## DuDe

Piu' o meno, allora vediamo di chiarire io sono riuscito a ficcare il gentoo-logo dentro al kernel 2.6.0  solo che le procedure non sono proprio a portata di tutti in quanto prevedono di usare un programmillo che si chiama pngtopnm che converte un png in un pnm che e' un formato ascii che e' il solo che il kernel 2.6.0 capisce.

Il primo passo e' convertire un logo gentoo.png in un logo_gentoo_clu224.ppm che e' il nome  del file che la parte logo del 2.6 cerca.

Fatto cio' bisogna smanazzare dentro la dir linux/drivers/video/logo ed aggiungere i pezzi dentro ai file logo.c Kconfig e Makefile 

se volete provo a scrivere un how-to

----------

## silian87

 :Shocked:  Io con il mio powerbook e con il 2.6 test 7 ho lasciato tutto come era (per il logo) e il pinguino funziona benissimo, colori compresi.

----------

## DuDe

Gia' il pinguino, ma se tu volessi metterci gentoo al posto del pinguino?

----------

## shev

 *DuDe wrote:*   

> 
> 
> se volete provo a scrivere un how-to

 

Scrivi scrivi  :Very Happy: 

----------

## silian87

di gentoo? 

Una volta, per curiosità, ho navigato nel kernel e mi sono imbattuto in una sfilza di valori in esadecimale. Credo che sia il logo. E' un po' rischioso, ma prova a sostituirli con quelli del logo che  vuoi mettere (se ce gli hai), ed in teoria (molto in teoria   :Wink:  ) dovrebbe andare, credo.   :Rolling Eyes: 

Oppure il metodo che mi hai descritto mi sembra più veloce, facile e sicuro.

----------

## DuDe

Guarda era piu' semplice cobn il kernel 2.4 , col 2.6 i file devono essere in formato ppm che puoi ottenere emergendoti netpbm ed usando il programma pngtopnm -plain nomefile.png >nomefile.ppm dopo do che devi passare lìottenuto col pnm2quant per ridurre i colori, poi devi aggiungere questo nome file ai file Kconfig Makefile e logo.c che stanno in /usr/src/linux/drivers/video/logo 

Ls difficolta' per me e' fare qualche scripts che sulla base del nome del file .png patcha  questi file per il kernel vedo di studiarmi il perl per fare cio'

----------

## cerri

Cmq non vorrei dire una stupidata ma su qualche kernel "fatto" da gentoo c'erano gia' dei loghi...

----------

## fedeliallalinea

 *cerri wrote:*   

> Cmq non vorrei dire una stupidata ma su qualche kernel "fatto" da gentoo c'erano gia' dei loghi...

 

Si infatti si dovrebbero trovare in "Console drivers ---> Frame-buffer support ---> Frame buffer boot logo"

----------

## DuDe

Si, nella serie 2.4 ci sono, nei 2.6 no, in quanto di test, io sono riuscito a farli apparire ma la procedura e' un po' macchinosa e prevede l'editing dei file Kconfig, Makefile e logo.c  nella cartella /usr/src/linux/drivers/video/logo e non e' proprio alla portata di tutti, stavo cercando il modo di inserire cio' che serve nei file in questione, attraverso script, ma aime' le mie conosce di scripting sono un po' scarsine, se qualcuno e' interessato a collaborare, ben venga! 

Altra cosa da fare e' cpnvertire il logo da .png a .ppm tramite l'apposita utility poi bisogna abbassare il numero di colri da quello che e' a 224 tramite il programma ppmquant tutti quasti programmi sstanno nel package netpbm 

se volete posso scrivere come ho fatto ma faro a manella e' nosioso

----------

## morellik

Se vuoi scrivere un howto, ben venga, lo pubblico volentieri su gentoo.it (cosi' oltre al

logo di gentoo possiamo mettere anche il logo dei gechi   :Very Happy:  ).

Per uno script possiamo vedere di farlo non appena c'e' l'howto.

Ciauz

morellik

----------

## DuDe

Ok butto giu' un'abbozzo poi magari te lo invio cosi'vedi se va' bene

apropos la tua maile?

----------

## shev

 *morellik wrote:*   

> (cosi' oltre al
> 
> logo di gentoo possiamo mettere anche il logo dei gechi   ).
> 
> 

 

Granderrimo, non ci avevo pensato! Al Linux/Gentoo Day di Venezia si potrebbero mettere tutte le macchine con il logo dei gechi!  :Very Happy: 

----------

## DuDe

Come Aggiungere il logo gentoo all'interno dei kernel 2.6.0

Rev 1.0 11/11/2003 By Antonio Catani dude68@tiscali.it

Abstract:

Questo documento nasce con l'intento, spero, di spiegare come sotituire il bootlogo nei kernel della serie 2.6.x

Dai kernel 2.4 ai 2.6 e' totalmente cambiata le gestione del bootlogo, nel kernel 2.4 il logo altri non era che 

un file logo.h contenente i valori esadecimali del file png del logo stesso.

Nella serie 2.6 la gestione del bootlogo consiste nell'usare un file png convertito in un formato ppm ASCII 

che e' specificato in http://netpbm.sourceforge.net/ tale file deve avere massimo 224 colori per via di come 

il kernel gestira' il bootlogo.

Cosa ci occorre

Prima di tutto occorre emergere il pacchetto netpbm

fatto cio' abbiamo bisogno del file .png da piazzare come bootlogo 

ottenuto il file il primo passo e' convertirlo in ppm supponiamo che il logo si chiami 

gentoo_logo.png 

posizioniamoci nella directory ove abbiamo scaricato il logo e digitiamo

```

          netbackup temp # pngtopnm -plain gentoo_logo.png >logo_gentoo_clut.ppm

```

fatto cio' dobbiamo ridurne il numero di colori

```

          netbackup temp # 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...

          netbackup temp #

```

E' molto importante l'opzione -plain la quale dice al programma di conversione di usare solo caratteri ASCII stampabili.

Abbiamo cosi' ottenuto il file logo_gentoo_clut224.ppm e' molto importante che vi scriviate il nome del file ottenuto da qualche parte, 

in quanto andra' messo in alcuni file del kernel.

Copiamo ora il file ottenuto nella cartella /usr/src/linux/drivers/video/logo e posizioniamoci nella medesima cartella 

```

          netbackup temp # cp logo_gentoo_clut224.ppm /usr/src/linux/drivers/video/logo

          netbackup temp # cd /usr/src/linux/drivers/video/logo

          netbackup logo # 

```

a questo punto viene la parte piu' "delicata" della cosa

Per prima cosa copiamo il file su cui andremo ad agire cosi' da poter tornare indietro in caso di errori

```

          netbackup logo # cp Kconfig Kconfig.orig

          netbackup logo # cp Makefile makefile.orig

          netbackup logo # cp logo.c logo.c.orig 

```

non c'e' un'ordine preciso nell'editare i tre file quindi per comodita' inizieremo dal Kconfig che e' il piu' semplice

NOTA: normalmente uso come editor THE che altri non e' che un port dell'xedit del CMS IBM su linux per comodita' vostra

le schermate si riferiscono al nano che e' presente in qualunque distro gentoo 

```

# 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

```

nel file preso in esame, e' gia presente la entry realativa al bootlogo gentoo, 

tale entry se notate bene e' uguale a quella che la precede differendo solo nel nome.

la entry e' struttutrata cosi'

config NOME_OPZIONE

       bool "testo libero"

       depends on ALTRA_OPZIONE_KERNEL

       default y|n ossia se nel menuconfig deve apparire di default a y oppure a n  

accertiamoci che tutto e' apposto e salviamo.

Ora editiamo il 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   <<<<<< eccho dove va' inserita 

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

```

Anche qui si tratta di ripetere una riga cambiandone il nome 

la riga e' strutturata cosi'

obj-$(CONFIG_OPZIONE_KERNEL)	         += nome_file_logo.o

cio' dice al makefile che se e' presente nel .config una riga CONFIG_NOME_OPZIONE_KERNEL=y di generare l'object corrispondente	

nel nostro caso la riga obj-$(CONFIG_LOGO_GENTOO_CLUT224)       += logo_gentoo_clut224.o   

dice che se e' presente nel.config una riga CONFIG_GENTOO_LOGO_CLUT224=y di generare un file obj dal nome logo_gentoo_clut224.o 

se tutto e' apposto come mostratovi, salviamo anche il Makefile 

Ed ora l'ultimo file il 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; <<<<<<va inserito qui 

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 */               <<<<<e qui

                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;

}

```

Come potete vedere bisogna inserire 2 entry, la prima tra le definizioni extern const struct linux_logo 

e la seconda come #ifdef   #endif

Qui le mie capacita' di spiegazioni si fermano in quanto essendo C non ne capisco molto 

ed onde evitare di dire castronerie mi limito a far vedere dove vanno messi i vari pezzi 

Salviamo anche lui 

Siamo arrivati alla fine posizioniamoci nela cartella usr/src/linux 

diamo un make menuconfig e nelle opzioni del bootlogo c'e' anche gentoo, chiudiamo compiliamo installiamo il nuovo kernel. 

```

[*] Bootup logo                                                                      

       [ ]   Standard black and white 

       [ ]   Standard 16-color Linux logo                                                    

       [ ]   Standard 224-color Linux logo                                                

       [*]  Gentoo 224-color Linux logo

```

e godiamoci il gentoo logo sul kernel 2.6.0

P.S. 

Non so' per quale motivo ma nel mio kernel di bootlogo al boot ne vedo 2 

quindi se capita anche a voi non e' un mio errore ne un vostro errore

----------

## DuDe

Come Aggiungere il logo gentoo all'interno dei kernel 2.6.0

Rev 1.0 11/11/2003 By Antonio Catani dude68@tiscali.it

Abstract:

Questo documento nasce con l'intento, spero, di spiegare come sotituire il bootlogo nei kernel della serie 2.6.x

Dai kernel 2.4 ai 2.6 e' totalmente cambiata le gestione del bootlogo, nel kernel 2.4 il logo altri non era che 

un file logo.h contenente i valori esadecimali del file png del logo stesso.

Nella serie 2.6 la gestione del bootlogo consiste nell'usare un file png convertito in un formato ppm ASCII 

che e' specificato in http://netpbm.sourceforge.net/ tale file deve avere massimo 224 colori per via di come 

il kernel gestira' il bootlogo.

Cosa ci occorre

Prima di tutto occorre emergere il pacchetto netpbm

fatto cio' abbiamo bisogno del file .png da piazzare come bootlogo 

ottenuto il file il primo passo e' convertirlo in ppm supponiamo che il logo si chiami 

gentoo_logo.png 

posizioniamoci nella directory ove abbiamo scaricato il logo e digitiamo

```

          netbackup temp # pngtopnm -plain gentoo_logo.png >logo_gentoo_clut.ppm

```

fatto cio' dobbiamo ridurne il numero di colori

```

          netbackup temp # 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...

          netbackup temp #

```

E' molto importante l'opzione -plain la quale dice al programma di conversione di usare solo caratteri ASCII stampabili.

Abbiamo cosi' ottenuto il file logo_gentoo_clut224.ppm e' molto importante che vi scriviate il nome del file ottenuto da qualche parte, 

in quanto andra' messo in alcuni file del kernel.

Copiamo ora il file ottenuto nella cartella /usr/src/linux/drivers/video/logo e posizioniamoci nella medesima cartella 

```

          netbackup temp # cp logo_gentoo_clut224.ppm /usr/src/linux/drivers/video/logo

          netbackup temp # cd /usr/src/linux/drivers/video/logo

          netbackup logo # 

```

a questo punto viene la parte piu' "delicata" della cosa

Per prima cosa copiamo il file su cui andremo ad agire cosi' da poter tornare indietro in caso di errori

```

          netbackup logo # cp Kconfig Kconfig.orig

          netbackup logo # cp Makefile makefile.orig

          netbackup logo # cp logo.c logo.c.orig 

```

non c'e' un'ordine preciso nell'editare i tre file quindi per comodita' inizieremo dal Kconfig che e' il piu' semplice

NOTA: normalmente uso come editor THE che altri non e' che un port dell'xedit del CMS IBM su linux per comodita' vostra

le schermate si riferiscono al nano che e' presente in qualunque distro gentoo 

```

# 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

```

nel file preso in esame, e' gia presente la entry realativa al bootlogo gentoo, 

tale entry se notate bene e' uguale a quella che la precede differendo solo nel nome.

la entry e' struttutrata cosi'

config NOME_OPZIONE

       bool "testo libero"

       depends on ALTRA_OPZIONE_KERNEL

       default y|n ossia se nel menuconfig deve apparire di default a y oppure a n  

accertiamoci che tutto e' apposto e salviamo.

Ora editiamo il 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   <<<<<< eccho dove va' inserita 

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

```

Anche qui si tratta di ripetere una riga cambiandone il nome 

la riga e' strutturata cosi'

obj-$(CONFIG_OPZIONE_KERNEL)	         += nome_file_logo.o

cio' dice al makefile che se e' presente nel .config una riga CONFIG_NOME_OPZIONE_KERNEL=y di generare l'object corrispondente	

nel nostro caso la riga obj-$(CONFIG_LOGO_GENTOO_CLUT224)       += logo_gentoo_clut224.o   

dice che se e' presente nel.config una riga CONFIG_GENTOO_LOGO_CLUT224=y di generare un file obj dal nome logo_gentoo_clut224.o 

se tutto e' apposto come mostratovi, salviamo anche il Makefile 

Ed ora l'ultimo file il 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; <<<<<<va inserito qui 

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 */               <<<<<e qui

                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;

}

```

Come potete vedere bisogna inserire 2 entry, la prima tra le definizioni extern const struct linux_logo 

e la seconda come #ifdef   #endif

Qui le mie capacita' di spiegazioni si fermano in quanto essendo C non ne capisco molto 

ed onde evitare di dire castronerie mi limito a far vedere dove vanno messi i vari pezzi 

Salviamo anche lui 

Siamo arrivati alla fine posizioniamoci nela cartella usr/src/linux 

diamo un make menuconfig e nelle opzioni del bootlogo c'e' anche gentoo, chiudiamo compiliamo installiamo il nuovo kernel. 

```

[*] Bootup logo                                                                      

       [ ]   Standard black and white 

       [ ]   Standard 16-color Linux logo                                                    

       [ ]   Standard 224-color Linux logo                                                

       [*]  Gentoo 224-color Linux logo

```

e godiamoci il gentoo logo sul kernel 2.6.0

P.S. 

Non so' per quale motivo ma nel mio kernel di bootlogo al boot ne vedo 2 

quindi se capita anche a voi non e' un mio errore ne un vostro errore

----------

## ares

Provate anche linux_logo.....funziona benissimo...oppure date un'occhiata al kernel wolk che ha diversi loghi.....

----------

## ares

Ops....fblogo......scusate.....mi sono confuso

----------

## DuDe

Ares, se hai letto il thread dall'inizio, noterai che si parlava di mettere il logo gentoo dentro ai kernel della serie 2.6.0 come gia' esistono nei kernel 2.4 gentoo-patched siccome ci sono notevoli differenze, ho scritto quel mini howto che vale solo per i kernel 2.6.x

----------

## ares

Ops chiedo venia...mi ero scordato delle differenze tra le 2 v. del kernel

----------

## morellik

Dude, ho pubblicato il doc e ti ho inviato via mail il file xml che ho generato dai tuoi suggerimenti in caso di prossime release.

Ciauz

morellik

----------

## DuDe

Grazie Morellik  questo e' il mio primo HOWTO spero sia scritto in maniera comprensibile

----------

## MoRPh3uSz

Ho fatto una stupidissima patch che va a modificare il kernel aggiungendo la voce nel menu, esattamente come è stato scritto sopra e anche un semplice script che fa esattamente quello che bisogna fare per creare il logo vero e proprio.

Patch:

```

--- linux/drivers/video/logo/Kconfig.orig       2003-11-11 18:26:01.000000000 +0100

+++ linux/drivers/video/logo/Kconfig    2003-11-11 19:02:06.000000000 +0100

@@ -23,6 +23,11 @@

        depends on LOGO

        default y

+config LOGO_GENTOO_CLUT224

+        bool "Modified 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

--- linux/drivers/video/logo/Makefile.orig      2003-11-11 18:26:10.000000000 +0100

+++ linux/drivers/video/logo/Makefile   2003-11-11 19:05:58.000000000 +0100

@@ -4,6 +4,7 @@

 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

--- linux/drivers/video/logo/logo.c.orig        2003-11-11 18:26:18.000000000 +0100

+++ linux/drivers/video/logo/logo.c     2003-11-11 19:03:12.000000000 +0100

@@ -23,6 +23,7 @@

 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;

@@ -64,6 +65,10 @@

                /* 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)

```

Scriptino Bash:

```

#!/bin/bash

pngtopnm -plain $1 > logo_gentoo_clut.ppm

ppmquant -plain 224 logo_gentoo_clut.ppm > logo_gentoo_clut224.ppm

cp logo_gentoo_clut224.ppm /usr/src/linux/drivers/video/logo

```

Appena ho un attimo di tempo, ti targizippo e lo uploado da qualche parte.

----------

## cerri

Post interessante direi....

----------

## DuDe

Morpheus, ciao, e grazie per la patch, quello che pero' volevo fare e' fare uno script un po' piu' furbo, ossia che inserizze il logo nei file direttamente e non usando una patch, anche perche' uno potrebbe volere diversi loghi gentoo insomma volevo rendere la cosa un po' piu' automagica! 

Alla patch avevo pensato, ma non avendo spazio web per pubblicarla, voglio intraprendere la strada dello script furbo!

----------

## xoen

 *DuDe wrote:*   

> Dai kernel 2.4 ai 2.6 e' totalmente cambiata le gestione del bootlogo, nel kernel 2.4 il logo altri non era che 
> 
> un file logo.h contenente i valori esadecimali del file png del logo stesso.
> 
> 

 

Quindi se voglio metterci un logo mio...copio il file foo.png dove c'e' logo.h e lo rinomino in logo.h?

Funzionera'?Se non funziona si incasinano tutte cose?...vabe' al massimo mi chrutto e rimetto il file apposto  :Wink: [/quote]

----------

