Punto informatico Network
Canali
20100302180314_1839844981_20100302180245_695993566_TerminalMLI_spotlight.png

Tecniche avanzate con Ubuntu: compilare un kernel "vanilla"

16/07/2010
- A cura di
Linux & Open Source - Compilare un kernel "vanilla" ci consente di adattarlo all'hardware del nostro PC, rendendo il sistema più veloce e stabile, nonché risolvere eventuali bug e problemi di compatibilità con alcune periferiche. Vediamo come.

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

tecniche avanzate (1) , ubuntu (1) , kernel (1) , compilare (1) .

Valutazione

  •  
Voto complessivo 4 calcolato su 23 voti

La compilazione del nuovo kernel

Se possediamo un sistema multiprocessore è possibile impostare la variabile CONCURRENCY_LEVEL affinché vengano eseguite più compilazioni in parallelo. Ad esempio, per un processore con 2 core, come nel mio caso, è possibile impostare tale valore a 2 con il comando export CONCURRENCY_LEVEL=2.

Export.png

Se in passato abbiamo già compilato i sorgenti, dobbiamo fare pulizia con il comando:

make-kpkg --rootcmd fakeroot clean

In caso contrario diamo finalmente inizio al lungo processo di compilazione con il comando:

make-kpkg --rootcmd fakeroot --initrd kernel_image

Nel terminale vedremo scorrere delle scritte, segno che la procedura è in corso.

Scorrimento.png

Alla fine, se tutto è andato per il verso giusto, dovremmo avere nel terminale il messaggio di avvenuta creazione del pacchetto del nuovo kernel.

Termine-compilazione.png

Installare il nuovo kernel

Per rendere disponibile il nuovo "fiammante" kernel nel sistema, spostiamoci in /usr/src ed installiamo il pacchetto appena compilato che avrà estensione .deb con il comando:

sudo dpkg -i linux-image-*.deb.

Install.png

L'installazione del nuovo kernel aggiornerà automaticamente anche il boot loader GRUB, ma dobbiamo ancora effettuare alcuni passaggi.

Initial RAM Disk

L'Initial RAM Disk è un file immagine di una partizione speciale, che all'avvio del sistema viene caricata nella RAM, montata temporaneamente come directory root e usata per caricare i moduli strettamente necessari per l'avvio del sistema, prima di venire sostituita dalla partizione contenente il sistema reale.

Per creare il file apriamo il terminale e digitiamo sudo update-initramfs -c -k 2.6.34.

Infine apriamo il file di configurazione di GRUB con sudo gedit /boot/grub/grub.cfg, scorriamo il file fino a trovare la configurazione che riguarda l'avvio di Ubuntu, ovvero ### BEGIN /etc/grub.d/10_linux ###, ed aggiungiamo al codice del nuovo kernel installato la riga initrd /boot/initrd.img-2.6.34.

Grub.png

Riavviamo finalmente il PC e scegliamo il nuovo kernel installato. Consiglio di non rimuovere il vecchio kernel così potremo utilizzarlo in caso di problemi.

Conclusioni

Come abbiamo potuto vedere la compilazione di un kernel, nonostante sia un procedimento piuttosto lungo, non è di per sé un'operazione difficilissima. La parte più complessa è, ovviamente, la sua configurazione, che richiede perlomeno tanta pazienza e buona conoscenza dell'hardware presente sulla propria macchina. Per tale motivo si è volontariamente scelto di utilizzare come base di partenza il file di configurazione del kernel di Ubuntu, e di personalizzarlo ulteriormente con modifiche essenziali.

Con il tempo, tante prove ed esperienza sarà possibile arrivare alla compilazione di un kernel totalmente personalizzato, facendolo Calzare perfettamente alla caratteristiche del proprio PC.

Iscriviti gratuitamente alla newsletter, e ti segnaleremo settimanalmente tutti i nuovi contenuti pubblicati su MegaLab.it!
Pagina precedente
Tecniche avanzate con Ubuntu: compilare un kernel "vanilla"
Pagine
  1. Tecniche avanzate con Ubuntu: compilare un kernel "vanilla"
  2. 2 
    La compilazione del nuovo kernel

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2020 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 0.21 sec.
    •  | Utenti conn.: 35
    •  | Revisione 2.0.1
    •  | Numero query: 43
    •  | Tempo totale query: 0.05