Old:Kernel2.6.10 - Framebuffer - Gensplash Patch: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (categorie)
 
(10 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
Come tutte le modifiche al cuore di un programma, va affrontata con calma e cautela, e i risultati possono variare a seconda della potenza del computer e della connessione a Internet, ma i miei test personali indicano un netto miglioramento della velocit� di caricamento delle pagine Web complesse e ricche di immagini, perlomeno in termini di velocit� percepita.
{{Old}}
== Introduzione ==
Chi di voi non ha mai visto un boot di Linux con lo splash screen attivo, magari su una rivista o da un amico, e si è chiesto quanto fosse difficile metterlo in pratica?. Bene, dopo questa guida scoprirete il contrario.<br/>
Mi raccomando, occhio a quello che fate; molti comandi descritti in questa guida vanno impartiti con i permessi di root.


Se volete sperimentare queste modifiche, procedete come segue:
== Passi preliminari alla compilazione del kernel ==
Innanzitutto, se già non li abbiamo, ci servono i sorgenti del kernel:
<pre>
$ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
# cd /usr/src
# tar xvfj /path/linux-2.6.10.bz2
# rm linux (in caso avessimo già ricompilato questo link è da eliminare , e da ricreare)
# ln -s linux-2.6.10 linux
</pre>


# In Firefox, digitate '''about:config''' nella casella dell'indirizzo, senza digitare spazi dopo il simbolo "due punti". Questo fa comparire un lunghissimo elenco di parametri di configurazione.
poi ci occorre la patch per lo splash:
# Nei prossimi passi cercherete alcuni di questi parametri: se digitate l'inizio del nome del parametro nella casella Filter (Filtro), l'elenco mostrer� soltanto i parametri che iniziano con quella sequenza di lettere, semplificando la ricerca.
# Cercate la voce '''network.http.pipelining''', cliccatevi sopra con il pulsante destro (o fate Ctrl-clic se usate un Mac) e scegliete Toggle (Imposta), in modo che il parametro assuma il valore '''true''' (il valore di default, se volete tornare indietro, � false).
# Cercate la voce '''network.http.proxy.pipelining''', cliccatevi sopra con il pulsante destro, come nel passo precedente, e scegliete ancora Toggle (Imposta), in modo che il parametro assuma il valore '''true''' (anche qui il valore di default, se volete tornare indietro, � false).
# Cercate la voce '''network.http.pipelining.maxrequests''', cliccatevi sopra col pulsante destro come nei passi precedenti, scegliete Modify (Modifica) e impostate questo parametro a un valore non superiore a 30 (16 sembra essere un buon compromesso; il default � 4).
# L'ultimo passo � un po' pi� complicato. Cliccate con il pulsante destro in qualsiasi punto dell'elenco dei parametri di Firefox e scegliete New (Nuovo) e poi Integer (Intero). Nella finestra di dialogo che compare, immettete '''nglayout.initialpaint.delay'''; nella finestra di dialogo successiva, immettete zero.


A questo punto, senza dover riavviare Firefox, provate a caricare qualche pagina. Dovreste notare una netta riduzione dei tempi di caricamento e visualizzazione di testo e immagini.
<pre>
# wget http://dev.gentoo.org/~spock/projects/gensplash/archive/fbsplash-0.9.1-2.6.10-rc3-bk6.patch
</pre>


Ricordate che queste modifiche sono utilizzabili efficacemente soltanto su connessioni veloci (ADSL e simili) e possono causare un carico aggiuntivo sul vostro processore: su un computer poco vivace possono addirittura rallentare la visualizzazione. Alcuni siti, inoltre, potrebbero dare problemi di presentazione delle pagine. Se notate intoppi, ripristinate il tutto alla situazione originale cliccando con il pulsante destro sui singoli parametri modificati e scegliendo Reset (Azzera).
Immagino che qualcuno stia dicendo: "ti sei sbagliato". Ma non mi sono sbagliato, so che la patch è per il 2.6.10-rc, ma questa è la ultima versione disponibile e con una minima modifica andrà benone per il nostro scopo.


Buona ipernavigazione!
<pre>
# mv fbsplash-0.9.1-2.6.10-rc3-bk6.patch linux
# cd linux
# patch -p1 < fbsplash-0.9.1-2.6.10-rc3-bk6.patch linux
</pre>


Autore: debian
Se il comando ''patch'' restituisce un errore, dobbiamo editare il file che genera l'errore:
 
<pre>
# vi include/linux/sysctl.h
</pre>
(usate il vostro editor preferito)
 
Andate alla riga 138 e subito dopo la riga:
 
<pre>
KERN_COMPUTE=68, /* adjust timeslices for a compute server */
</pre>
 
aggiungete questa riga:
<pre>
KERN_FBSPLASH=69, /* string: path to fbsplash helper */
</pre>
 
salvate il file. È giunta ora di configurare le impostazioni per la compilazione del nostro kernel.
 
<pre>
# make menuconfig
</pre>
(usate pure il metodo che più vi aggrada)
 
Scegliamo le opzioni che ci servono per il nostro kernel, non scendo nei particolari perché esula dall'argomento trattato da questa guida.<br/>
Nella sezione ''Device Driver/Graphic Support'' controlliamo che la voce '''Support for frame buffer devices''' sia impostata come statica,
ovvero contrassegnata con l'asterisco (*) e che anche le voci '''VGA 16-color graphics support''' e '''VESA VGA graphics support''' siano sempre settate statiche.<br/>
Mi raccomando, non attiviamo la voce '''Logo configuration''' ma attiviamo quella successiva, ovvero: '''Support for the framebuffer splash'''<br/>
Ora finite di settare la vostra configurazione.
 
== Compilazione del kernel ==
Partiamo con la compilazione: diamo, sempre da root, il comando:
 
<pre>
# make -j4
</pre>
(il -j4 serve per avviare 4 processi di compilazione paralleli, in pratica si ottimizza la compilazione)<br/>
Se non riceviamo errori di sorta procediamo all'installazione delle ''splashutils'' quindi:
*aggiungiamo nel nostro <code>/etc/apt/sources.list</code> il repository
 
<pre>
deb http://ftp.nluug.nl/ftp/pub/os/Linux/distr/esware/kenny/i386/ ./
</pre>
 
*aggiorniamo il nostro database dei pacchetti:
 
<pre>
#apt-get update
</pre>
 
*installiamo i nostri tools
 
<pre>
#a apt-get install splashutils
</pre>
 
dopodiché dobbiamo creare il file che conterrà la nostra immagine di splash. Prima, però, è meglio creare un backup di questo file:
 
<pre>
# cp usr/initramfs_data.cpio.gz usr/initramfs_data.cpio-old.gz
</pre>
 
Ora procediamo. Dobbiamo avere il nostro tema estratto in <code>/etc/splash</code>. Ad esempio:
 
<pre>
matrix:~# ls /etc/splash/
linux
 
matrix:~# ls /etc/splash/linux/
bootsplash-debblue-1280x1024.jpg
1280x1024.cfg vt-debblue-1280x1024.jpg
</pre>
 
Diamo il comando:
<pre>
# splash_geninitramfs -g usr/initramfs_data.cpio.gz -r 1280x1024 NOME_TEMA
</pre>
 
sostituite 1280x1024 con la risoluzione che usate al boot e NOME_TEMA con il nome del tema che avete scelto e precedentemente estratto in <code>/etc/splash</code><br/>
Prima di procedere controllate il file di configurazione del tema per verificare che punti all'immagine giusta. Nel mio caso il file contiene:
<pre>
# name of the picture file (full path recommended)
jpeg=/etc/splash/linux/vt-debblue-1280x1024.jpg
silentjpeg=/etc/splash/linux/bootsplash-debblue-1280x1024.jpg
</pre>
 
verificate anche l'esistenza dei file che contengono le immagini di splash:
 
<pre>
matrix:/etc/splash/linux# ls | grep jpg
bootsplash-debblue-1280x1024.jpg
vt-debblue-1280x1024.jpg
</pre>
 
controlliamo per scrupolo anche che il file '''initramfs_data.cpio.gz''' contenga davvero l'immagine:
 
<pre>
# ls -l usr/initramfs_data.cpio.gz
-rw-r--r-- 1 root root 125245 2005-01-10 20:53 usr/initramfs_data.cpio.gz
</pre>
 
cosa che si può ricavare dall'aumento della dimensione del file.<br/>
Ricreiamo l'iimmagine del kernel:
 
<pre>
# make -j4 bzImage
</pre>
 
in seguito creiamo e installiamo i moduli del kernel:
 
<pre>
# make modules && make modules_install
</pre>
 
se avete già un altra versione del kernel 2.6.10, raccomando di eliminare i vecchi moduli.<br/>
Bene, dopo che sarà terminata la compilazione del kernel, dobbiamo copiarlo nella directory <code>/boot</code>:
 
<pre>
# cp System.map /boot/System.map-2.6.10-gensplash
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.10-rc3-ck1
</pre>
 
Il kernel adesso è installato correttamente. Non rimane che creare la nostra immagine initrd e siamo quasi al termine:
 
<pre>
# mkinitrd -o /boot/initrd-2.6.10-gensplash.img -r /dev/hdax 2.6.10
</pre>
 
sostituite hdx con la vostra partizione di boot.
Per finire non resta che modificare il file di configurazione di LILO oppure quello di GRUB:
 
<pre>
# vi /etc/lilo.conf
image=/boot/vmlinuz-2.6.10-gensplash
label=2.6.10-gensplash
read-only
append="video=vesafb:1280x1024x256 splash=silent,theme:TEMA_LINUX"
initrd=/boot/initrd-2.6.10-gensplash.img
</pre>
 
nella seconda riga occorre sostituire 1280x1024 con la vostra risoluzione e TEMA_LINUX con il nome del tema scelto.<br/>
Potrebbe essere interessante modificare l'opzione <code>splash=silent</code> con <code>splash=verbose</code>, in questo modo potrete vedere i messaggi di boot. Ricordo che se utilizzate l'opzione ''silent'' potete cambiare la modalità di visualizzazione in ''verbose'' premendo F2.<br/>
Adesso non resta altro che far rileggere a LILO le nuove impostazioni:
 
<pre>
#lilo -v
</pre>
 
se non ci mostra errori possiamo riavviare e goderci il nostro splash.
 
== Ringraziamenti ==
Volevo ringraziare ldonesty e debianizzati.org per il supporto nella stesura di questa guida, in caso di problemi postate pure.
 
{{Autori
|Autore = [[Utente:Noise|Noise]]
}}

Versione attuale delle 10:57, 12 giu 2016

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Introduzione

Chi di voi non ha mai visto un boot di Linux con lo splash screen attivo, magari su una rivista o da un amico, e si è chiesto quanto fosse difficile metterlo in pratica?. Bene, dopo questa guida scoprirete il contrario.
Mi raccomando, occhio a quello che fate; molti comandi descritti in questa guida vanno impartiti con i permessi di root.

Passi preliminari alla compilazione del kernel

Innanzitutto, se già non li abbiamo, ci servono i sorgenti del kernel:

$ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
# cd /usr/src
# tar xvfj /path/linux-2.6.10.bz2
# rm linux (in caso avessimo già ricompilato questo link è da eliminare , e da ricreare)
# ln -s linux-2.6.10 linux

poi ci occorre la patch per lo splash:

# wget http://dev.gentoo.org/~spock/projects/gensplash/archive/fbsplash-0.9.1-2.6.10-rc3-bk6.patch

Immagino che qualcuno stia dicendo: "ti sei sbagliato". Ma non mi sono sbagliato, so che la patch è per il 2.6.10-rc, ma questa è la ultima versione disponibile e con una minima modifica andrà benone per il nostro scopo.

# mv fbsplash-0.9.1-2.6.10-rc3-bk6.patch linux
# cd linux
# patch -p1 < fbsplash-0.9.1-2.6.10-rc3-bk6.patch linux

Se il comando patch restituisce un errore, dobbiamo editare il file che genera l'errore:

# vi include/linux/sysctl.h

(usate il vostro editor preferito)

Andate alla riga 138 e subito dopo la riga:

KERN_COMPUTE=68, /* adjust timeslices for a compute server */

aggiungete questa riga:

KERN_FBSPLASH=69, /* string: path to fbsplash helper */

salvate il file. È giunta ora di configurare le impostazioni per la compilazione del nostro kernel.

# make menuconfig

(usate pure il metodo che più vi aggrada)

Scegliamo le opzioni che ci servono per il nostro kernel, non scendo nei particolari perché esula dall'argomento trattato da questa guida.
Nella sezione Device Driver/Graphic Support controlliamo che la voce Support for frame buffer devices sia impostata come statica, ovvero contrassegnata con l'asterisco (*) e che anche le voci VGA 16-color graphics support e VESA VGA graphics support siano sempre settate statiche.
Mi raccomando, non attiviamo la voce Logo configuration ma attiviamo quella successiva, ovvero: Support for the framebuffer splash
Ora finite di settare la vostra configurazione.

Compilazione del kernel

Partiamo con la compilazione: diamo, sempre da root, il comando:

# make -j4

(il -j4 serve per avviare 4 processi di compilazione paralleli, in pratica si ottimizza la compilazione)
Se non riceviamo errori di sorta procediamo all'installazione delle splashutils quindi:

  • aggiungiamo nel nostro /etc/apt/sources.list il repository
deb http://ftp.nluug.nl/ftp/pub/os/Linux/distr/esware/kenny/i386/ ./
  • aggiorniamo il nostro database dei pacchetti:
#apt-get update
  • installiamo i nostri tools
#a apt-get install splashutils

dopodiché dobbiamo creare il file che conterrà la nostra immagine di splash. Prima, però, è meglio creare un backup di questo file:

# cp usr/initramfs_data.cpio.gz usr/initramfs_data.cpio-old.gz

Ora procediamo. Dobbiamo avere il nostro tema estratto in /etc/splash. Ad esempio:

matrix:~# ls /etc/splash/
linux

matrix:~# ls /etc/splash/linux/
bootsplash-debblue-1280x1024.jpg
1280x1024.cfg vt-debblue-1280x1024.jpg

Diamo il comando:

# splash_geninitramfs -g usr/initramfs_data.cpio.gz -r 1280x1024 NOME_TEMA

sostituite 1280x1024 con la risoluzione che usate al boot e NOME_TEMA con il nome del tema che avete scelto e precedentemente estratto in /etc/splash
Prima di procedere controllate il file di configurazione del tema per verificare che punti all'immagine giusta. Nel mio caso il file contiene:

# name of the picture file (full path recommended)
jpeg=/etc/splash/linux/vt-debblue-1280x1024.jpg
silentjpeg=/etc/splash/linux/bootsplash-debblue-1280x1024.jpg

verificate anche l'esistenza dei file che contengono le immagini di splash:

matrix:/etc/splash/linux# ls | grep jpg
bootsplash-debblue-1280x1024.jpg
vt-debblue-1280x1024.jpg

controlliamo per scrupolo anche che il file initramfs_data.cpio.gz contenga davvero l'immagine:

# ls -l usr/initramfs_data.cpio.gz
-rw-r--r-- 1 root root 125245 2005-01-10 20:53 usr/initramfs_data.cpio.gz

cosa che si può ricavare dall'aumento della dimensione del file.
Ricreiamo l'iimmagine del kernel:

# make -j4 bzImage

in seguito creiamo e installiamo i moduli del kernel:

# make modules && make modules_install

se avete già un altra versione del kernel 2.6.10, raccomando di eliminare i vecchi moduli.
Bene, dopo che sarà terminata la compilazione del kernel, dobbiamo copiarlo nella directory /boot:

# cp System.map /boot/System.map-2.6.10-gensplash
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.10-rc3-ck1

Il kernel adesso è installato correttamente. Non rimane che creare la nostra immagine initrd e siamo quasi al termine:

# mkinitrd -o /boot/initrd-2.6.10-gensplash.img -r /dev/hdax 2.6.10

sostituite hdx con la vostra partizione di boot. Per finire non resta che modificare il file di configurazione di LILO oppure quello di GRUB:

# vi /etc/lilo.conf
image=/boot/vmlinuz-2.6.10-gensplash
label=2.6.10-gensplash
read-only
append="video=vesafb:1280x1024x256 splash=silent,theme:TEMA_LINUX"
initrd=/boot/initrd-2.6.10-gensplash.img

nella seconda riga occorre sostituire 1280x1024 con la vostra risoluzione e TEMA_LINUX con il nome del tema scelto.
Potrebbe essere interessante modificare l'opzione splash=silent con splash=verbose, in questo modo potrete vedere i messaggi di boot. Ricordo che se utilizzate l'opzione silent potete cambiare la modalità di visualizzazione in verbose premendo F2.
Adesso non resta altro che far rileggere a LILO le nuove impostazioni:

#lilo -v

se non ci mostra errori possiamo riavviare e goderci il nostro splash.

Ringraziamenti

Volevo ringraziare ldonesty e debianizzati.org per il supporto nella stesura di questa guida, in caso di problemi postate pure.




Guida scritta da: Noise Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized