Old:Compilazione Kernel 2.6.11 con Bootsplash

Da Guide@Debianizzati.Org.
Versione del 31 mar 2006 alle 15:10 di TheNoise (discussione | contributi) (categorie)
Vai alla navigazione Vai alla ricerca

Introduzione

Questo how-to spiegherà il procedimento da seguire per compilare (alla debian-way) un kernel 2.6.11 con la patch bootsplash.


Software richiesto

In ambiente Debian, ci viene in aiuto il tool APT (Advanced Package Tool), che ci fornirà tutto (o quasi) ciò di cui abbiamo bisogno. Anzitutto, editiamo il nostro /etc/apt/sources.list aggiungendo il repository bootsplash:

deb http://www.bootsplash.de unstable main

Abbiamo poi bisogno delle librerie e/o programmi che utilizzeremo per la compilazione vera e propria:

PACCHETTO           VERSIONE        COMANDO
binutils            2.12            ld -v
e2fsprogs           1.29            tune2fs
gcc                 2.95.3          gcc --version
make                3.78            make --version
module-init-tools   0.9.10          depmod -V
procps              3.1.13          ps --version
util-linux          2.10o           fdformat --version
kernel-package
initrd-tools
libncurses-dev

Ora possiamo procedere al download dei sorgenti del kernel:

# apt-get install kernel-source-2.6.11

Con questo comando, APT scaricherà un archivio .tar.bz2 in /usr/src/, contenente proprio il sorgente del kernel.

È inoltre necessario scaricare una patch apposita da applicare al kernel:

Patch per Kernel 2.6.11

In caso si tenti questa procedura con altri kernel, è possibile scaricare la patch relativa, basta cercare in http://www.bootsplash.de/files/.

Compilazione

Scompattazione e Patch del Sorgente

Bene, prima di procedere con la compilazione, è necessario applicare la patch bootsplash (vedi sopra) al nostro kernel.

Prima di tutto, scompattiamo l'archivio contenente i sorgenti.

Per fare ciò, spostiamoci in /usr/src/, e procediamo con la scompattazione':

# cd /usr/src/
# tar -jxvf kernel-source-2.6.11.tar.bz2

A questo punto verrà creata una nuova directory, /usr/src/kernel-source-2.6.11/.

Spostiamoci dunque nella nuova directory e applichiamo la patch che abbiamo scaricato:

# cd /usr/src/kernel-source-2.6.11
# patch -p1 < /usr/src/bootsplash-3.1.4-2.6.11.diff

Non dovrebbe essere segnalato alcun errore nella patch a questo punto. In caso contrario, rimuoviamo la directory dei sorgenti e ripetiamo la procedura dall'inizio. È importante applicare la patch bootsplash prima di qualunque altra patch, cioè sul kernel debian originale preso da APT.

A questo punto, possiamo procedere con la compilazione del kernel.

Configurazione del Kernel

Anzitutto, configuriamo il kernel stesso:

# make menuconfig

Vediamo cosa selezionare, brevemente.

Selezioniamo il nostro modello di processore:

| Processor type and features
|--- Processor family (Athlon/Duron/K7)


Attiviamo qualche altra opzione per il boot:

| Device Drivers
|--- Block devices
|------ <*> Loopback device support
|------ <*> RAM disk support
|------ (8192) Default RAM disk size (kbytes)
|------ [*]   Initial RAM disk (initrd) support


Attiviamo le opzioni necessarie a mostrare la schermata di boot:

| Device Drivers
|--- Graphics support
|------ <M>   VGA 16-color graphics support
|------ <*>   VESA VGA graphics support
|------ Console display driver support
|--------- [*] VGA text console
|--------- [*]   Video mode selection support
|--------- <*> Framebuffer Console support
|------ Bootsplash configuration
|--------- [*] Bootup splash screen

Ricordiamoci ovviamente di indicare, tra i Filesystem, quelli che utilizziamo sulla nostra macchina in aggiunta a quello ROM, che viene utilizzato per le immagini initrd, le schede che abbiamo, etc...

Se stiamo ricompilando un kernel ovviamente sono cose che non si dovrebbero dimenticare!!!

Compilazione con make-kpkg (debian-way)

Ora che il kernel è compilato, possiamo procedere alla compilazione (debian-way):

# make-kpkg clean
# make-kpkg --initrd --append-to-version -splash binary

Prendiamo in considerazione l'ultimo comando:

make-kpkg è uno strumento che ci aiuta a creare kernel pacchettizzati in file binari, con estensione *.deb.

--initrd - Crea il RAMDisk iniziale per mostrare l'immagine al boot;
--append-to-version -splash - Aggiunge la stringa '-splash' alla versione del kernel che stiamo creando. In questo modo, se stiamo già utilizzando un kernel 2.6.11, il nostro nuovo kernel sarà il '2.6.11-splash', così in caso di problemi al boot potremo sempre tornare al kernel funzionante.
binary - Questo argomento specifica il target della nostra compilazione:
binary           specifica che vogliamo compilare kernel_image, kernel_doc, kernel_headers
                 e kernel_source

kernel_source    questo target produce un pacchetto .deb contenente i sorgenti del nuovo
                 kernel che stiamo compilando

kernel_headers   questo target produce un pacchetto .deb contenente gli header inclusi nel
                 nuovo kernel

kernel_doc       questo target produce un pacchetto .deb contenente la documentazione
                 relativa al nuovo kernel

kernel_image     questo target produce un pacchetto .deb contenente il kernel in formato
                 binario, con tutti i moduli specificati nella configurazione 

Una volta terminata la compilazione, troveremo in /usr/src un pacchetto il cui nome sarà qualcosa di molto simile a kernel-image-2.6.11-splash_10.00.Custom_i386.deb.

A questo punto possiamo installare il nostro nuovo kernel!

# dpkg -i /usr/src/kernel-image-2.6.11-splash_10.00.Custom_i386.deb

Controlliamo la presenza del RAMDisk iniziale. Per fare ciò eseguiamo questo comando:

# ls /boot/initrd.img-2.6.11*

Se il comando restituisce un errore, creiamo il nostro RAMDisk:

# cd /boot/
# mkinitrd -o /boot/initrd.img-2.6.11-splash 2.6.11-splash

Installazione di Bootsplash

In questa fase ci viene in aiuto quel repository che abbiamo aggiunto all'inizio al nostro /etc/apt/sources.list.

Aggiorniamo i nostri archivi APT ed installiamo Bootsplash:

# apt-get update
# apt-get install bootsplash sysv-rc-bootsplash bootsplash-theme-tuxinfo-debian

Attenzione! L'ultimo pacchetto (bootsplash-theme-tuxinfo-debian) è il tema che vedremo al boot. Per vedere quali temi sono disponibili, diamo il seguente comando:

# apt-cache search bootsplash-theme

(Suggerimento: conviene inviare l'output in pipe a more o less, dato che esistono numerosi temi!)

Scegliamo in questo caso il tema "tuxinfo-debian".

Durante l'installazione comparirà una finestra per la configurazione, che ci chiederà quale immagine utilizzare per il nostro boot.

Selezioniamo l'immagine creata in precedenza, cioè initrd.img-2.6.11-splash.

Configurazione del Bootloader

A questo punto siamo pronti per modificare il nostro bootloader. Facciamo un esempio per i due bootloader più comuni: GRUB e LiLO:

Configurazione per GRUB (/boot/grub/menu.lst)

title           Debian GNU/Linux, kernel 2.6.11-splash
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.11-splash root=/dev/hda1 ro bootkbd=it
initrd          /boot/initrd.img-2.6.11-splash
savedefault
boot

Configurazione per LiLO (/etc/lilo.conf)

image=/boot/vmlinuz-2.6.11-splash
        label="2.6.11-splash"
        initrd=/boot/initrd.img-2.6.11-splash
        append="splash=silent"

Attenzione! Se usate LiLO come bootloader, è necessario aggiornare la sua configurazione con il seguente comando (dopo la modifica di /etc/lilo.conf):

# lilo


Conclusioni

Bene, adesso siamo in grado di riavviare la nostra macchina e gustarci un bel bootsplash! Nel caso vogliate cambiare tema, dopo aver installato il relativo pacchetto bootsplash-theme-*, basta fare:

# dpkg-reconfigure bootsplash

Bisogna poi selezionare il nuovo tema che abbiamo installato, di nuovo initrd.img-2.6.11-splash come initrd, ricontrolliamo LiLO / GRUB e riavviamo...

Happy Debian!


Hanska 20:32, 14 May 2005 (CEST)