Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmministrazioneSistema/CompilazioneKernel"
Differenze tra le versioni 20 e 24 (in 4 versioni)
Versione 20 del 18/12/2006 20.55.49
Dimensione: 7068
Autore: LeoIannacone
Commento: Iniziata la revisione.
Versione 24 del 18/12/2006 23.04.57
Dimensione: 7020
Autore: LeoIannacone
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 6: Linea 6:
attachment:Icone/Piccole/warning.png Documento in fase di aggiornamento

----
Linea 12: Linea 9:
Compilare il codice sorgente del '''kernel''' anziché installare uno dei pacchetti pre-compilati assicura certamente alcuni vantaggi, tra cui: Compilare il codice sorgente del '''kernel''', anziché installare uno dei pacchetti pre-compilati, assicura certamente alcuni vantaggi, tra cui:
Linea 16: Linea 13:
 * La possibilità di attivare opzioni che sono inattive nei kernel pre-compilati.
 * La possibilità di attivare opzioni che non sono presenti nei kernel pre-compilati.
Linea 23: Linea 19:
Il processo di compilazione richiede l'installazione di alcuni pacchetti specifici, da synaptic in installare: ''build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev gcc libncurses5 wget libncurses5-dev '', o più semplicemente digitare da terminale:
{{{
sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev gcc libncurses5 wget libncurses5-dev
Il processo di compilazione richiede l'installazione di alcuni pacchetti specifici, da synaptic in installare: ''build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev gcc libncurses5 wget libncurses5-dev '', o più semplicemente digitare da terminale: {{{
sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev gcc libncurses5 libncurses5-dev
Linea 29: Linea 24:
Linea 30: Linea 26:
 * scaricare il pacchetto da questo indirizzo: [http://www.kernel.org].
 In questo modo si avrà la possibilità di installare l'ultima versione stabile del ''kernel Vanilla''.

Una volta scaricato il pacchetto, sarà necessario decomprimerlo e copiarlo nella cartella `/usr/src/`:
{{{
 * scaricare il pacchetto da questo indirizzo: [http://www.kernel.org].[[BR]]
 In questo modo si avrà la possibilità di installare l'ultima versione stabile del kernel, la cosiddetta versione '''Vanilla'''. Una volta scaricato il pacchetto, sarà necessario decomprimerlo e copiarlo nella cartella `/usr/src/`: {{{
Linea 38: Linea 31:
 * scaricare il pacchetto dai repository di Ubuntu (kernel ufficiale del Team Ubuntu), da terminale dare il seguente comando:
{{{
 * scaricare il pacchetto dai repository di Ubuntu (kernel ufficiale di Ubuntu), da terminale dare il seguente comando: {{{
Linea 45: Linea 37:

Linea 49: Linea 39:
Entrare nella dir creata dei sorgenti del kernel appena scaricati:
{{{
Entrare nella directory dei sorgenti del kernel appena scaricati: {{{
Linea 54: Linea 43:
== Eventuali Patch ==
A questo punto sarà possibile ''patchare'' il nostro kernel con eventuali '''patch''' prese sul web.
== Eventuali patch ==
Linea 57: Linea 45:
La più diffusa, o almeno una delle più utili (a mio parere), sembrerebbe la Con Kolivas, scaricabile a questo indirizzo: [http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/ ck patches] (scegliere ovviamente la patch per la propria versione del kernel). A questo punto, se necessario, sarà possibile applicare una o più '''patch''' al kernel.
Linea 59: Linea 47:
Di solito il '''kernel''' viene ''patchato'' utilizzando l'insieme di due comandi '''patch''' e '''cat''' (o anche '''bzcat''' se il file ha estensione ''.bz2''), inutile rammentare che è necessario copiare il file della '''patch''' nella cartella dei sorgenti del kernel. A questo punto dare il comando:
{{{
bzcat patch-[VERSIONE_DEL_KERNEL]-ck1.bz2 < patch -p1
Tra le più diffuse si possono trovare quelle di:

 * [http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/ Con Kolivas]
 * [ftp://ftp.kernel.org/pub/linux/kernel/people/alan/ Alan Cox]
 * [ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/ Andrew Morton]

Di solito le patch vengono applicate utilizzando l'insieme di due comandi: '''patch''' e '''cat''' (o anche '''bzcat''' se il file ha estensione ''.bz2'').

Copiare la patch nella directory dei sorgenti del kernel e digitare: {{{
bzcat [NOME_DELLA_PATCH].bz2 < patch -p1
Linea 64: Linea 59:
Se il procedimento non andrà a buon fine, sarà necessario cancellare tutto e ricominciare dall'inizio. Se il procedimento non andrà a buon fine, sarà necessario cancellare tutto quanto e ricominciare dall'inizio.
Linea 67: Linea 62:
Importare la configurazione del vecchio kernel già presente sulla nostra Ubuntu, da terminale digitare:
{{{
sudo cp /boot/config-`uname -r` .config && sudo make oldconfig

È possibile importare una vecchia configurazione di un altro kernel. Se si dispone del file `.config` è sufficiente copiarlo all'interno della directory dei sorgenti.

Se si vuole utilizzare la configurazione del kernel attualmente in uso, è sufficiente digitare, all'interno della directory dei sorgenti: {{{
sudo make oldconfig
Linea 71: Linea 68:
E ora personalizzare il kernel eliminando eventuali moduli, ci sono tre diversi metodi per eseguire questo procedimento:
 * Grafico:
{{{

Pe
r personalizzare la configurazione eliminando eventuali moduli, o per crearne una di nuova, ci sono diversi modalità:
 * Grafica: {{{
Linea 76: Linea 73:
 * Pseudo-grafico:
{{{
 * Pseudo-grafica: {{{
Linea 79: Linea 75:
}}}
 * Non grafico:
 {{{
sudo make config
Linea 89: Linea 81:
'''Attenzione a come vi muovete, la cancellazione di un semplice modulo può compromettere l'intero sistema. ''' '''Attenzione a come vi muovete: la cancellazione di un semplice modulo può compromettere l'intero sistema!'''
Linea 91: Linea 83:
Alla fine la configurazione sarà all'interno del file `.config` presente nella cartella del kernel che avete scaricato. Consiglio di salvarne una copia in altro luogo, se si è soddisfatti del lavoro fatto. Alla fine la configurazione sarà all'interno del file `.config` presente nella cartella del kernel. È consigliato farne una copia, se si è soddisfatti del lavoro svolto.
Linea 93: Linea 85:
=== Configurazione Standard === === Configurazione standard ===
Linea 96: Linea 89:
 1. In "'''General Setup'''" attivare:[[BR]]  1. In «'''General Setup'''» attivare:
  * -Support for paging of anonymous memory (swap)
   * --Support for prefetching swapped memory
Linea 98: Linea 93:
 -Support for paging of anonymous memory (swap)  1. In «'''Processor type and features'''»:
  * In «'''Processor family'''» scegliere il modello del processore.
  * Attivare '''Preemption Model-> Voluntary Kernel Preemption''' (Desktop)
  * In «'''High Memory Support'''» scegliere:
   * '''off''' se si possiede meno di 1 GB di RAM
   * '''1GB Low Memory Support''' se si possiede 1GB di RAM
   * '''4GB''' se si possiede più di 1GB di RAM
  * In «'''Timer frequency'''» abilitare: '''1000 Hz'''
Linea 100: Linea 102:
  --Support for prefetching swapped memory  1. In «'''Graphics Support'''»
  * Disabilitare '''NVIDIA RIVA''' se si usano driver Nvidia proprietari.
Linea 102: Linea 105:
 1. In "'''Processor type and features'''":  1. In «'''Device drivers -> Block devices -> IO Schedulers lascisare'''» scegliere solo «'''CFQ I/O scheduler'''», otterrete una migliore performance.
Linea 104: Linea 107:
 - In "'''Processor family'''" scegliere il modello del vostro processore.

 - Attivare '''Preemption Model-> Voluntary Kernel Preemption''' (Desktop)

 -In '''High Memory Support''' scegliere:
  --'''off''' - se si possiede meno di 1 GB di RAM

  --'''1GB Low Memory Support''' - se si possiede 1GB di RAM

  --'''4GB''' - se si possiede più di 1GB di RAM

 - In '''Timer frequency''' abilitare '''1000 Hz'''

 1. In '''Graphics Support'''
 - Disabilitare '''NVIDIA RIVA''' se si usa NVIDIA DRIVERS proprietari.

 1. In "'''Device drivers -> Block devices -> IO Schedulers lascisare'''" solo the "'''CFQ I/O scheduler'''" attivato, otterrete una migliore performance.

 1. In "'''Kernel hacking'''" deselezionare "'''Kernel debugging'''".
 1. In «'''Kernel hacking'''» deselezionare «'''Kernel debugging'''».
Linea 125: Linea 110:
Quindi, dopo aver finito la personalizzazione, iniziare il processo di compilazione, da terminale digitare:
{{{

F
inita la fase di personalizzazione, per compilare, digitare: {{{
Linea 130: Linea 115:
E successivamente:
{{{
E successivamente: {{{
Linea 135: Linea 119:
Il flag di revisione è opzionale ed è solamente utile per editare il nome del kernel mostrato attraverso

{{{
Il flag di revisione è opzionale ed è solamente utile per visualizzare il nome del kernel attraverso il comando: {{{
Linea 141: Linea 123:
C'è la possibilita di scrivere tutto ciò che si vuole al posto di "'''-CUSTOM'''" (esempio: dopo il trattino "-10.k7" in base al tipo di processore che disponibile sulla propria macchina). C'è la possibilità di scrivere tutto ciò che si vuole al posto di «'''-CUSTOM'''» (esempio: dopo il trattino "-10.k7" in base al tipo di processore disponibile sulla propria macchina).
Linea 143: Linea 125:
Generalmente i kernel ubuntu usano un initrd, per crearlo e' sufficiente aggiungere l'opzione "'''--initrd'''" al comando "'''make-kpkg'''".
Generalmente i kernel Ubuntu usano un '''initrd''', per crearlo è sufficiente aggiungere l'opzione «'''--initrd'''» al comando precedente.
Linea 147: Linea 128:
Entrare nella cartella madre:
{{{

Entrare nella cartella superiore: {{{
Linea 151: Linea 132:
E installare i pacchetti appena creati (dovrebbero essere due). '''Grub verrà aggiornato automaticamente''', da terminale digitare:
{{{

E installare i pacchetti appena creati (dovrebbero essere due). Da terminale digitare: {{{
Linea 157: Linea 138:
Riavviare e al '''boot''' scegliere il nuovo kernel installato. '''Grub verrà aggiornato automaticamente.'''
Linea 159: Linea 140:
Se ci sono problemi, riavviare la macchina e ''loggarsi'' con il vecchio '''kernel'''.
----
Riavviare e all'avvio scegliere il nuovo kernel installato.
Linea 162: Linea 142:
CategoryDaRevisionare CategoryDaRevisionare Se ci sono problemi, riavviare la macchina e utilizzare il vecchio kernel.


= Ulteriori risorse =
 * [http://massimo.solira.org/pcikl/index.html Progetto Configurazione Italiana del Kernel Linux]

BR

Introduzione

In informatica, il kernel costituisce il nucleo di un sistema operativo. Si tratta di un software avente il compito di fornire ai processi in esecuzione sull'elaboratore un accesso sicuro e controllato all'hardware. Dato che possono esserne eseguiti simultaneamente più di uno, il kernel ha anche la responsabilità di assegnare una porzione di tempo-macchina e di accesso all'hardware a ciascun programma ([http://it.wikipedia.org/wiki/Multitasking multitasking]).

Compilare il codice sorgente del kernel, anziché installare uno dei pacchetti pre-compilati, assicura certamente alcuni vantaggi, tra cui:

  • Un avvio più veloce perché i moduli da caricare sono solo quelli della vostra macchina e non ce ne sono di inutili.
  • Un sistema operativo più veloce perché potete ottimizzare il codice sul vostro processore.
  • La possibilità di attivare opzioni che non sono presenti nei kernel pre-compilati.

Preparativi

Installare le varie dipendenze

Il processo di compilazione richiede l'installazione di alcuni pacchetti specifici, da synaptic in installare: build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev gcc libncurses5 wget libncurses5-dev , o più semplicemente digitare da terminale:

sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev gcc libncurses5 libncurses5-dev

Scaricare i sorgenti del kernel

Sarà necessario scaricare i sorgenti del kernel. Ci sono due possibili strade:

  • scaricare il pacchetto da questo indirizzo: [http://www.kernel.org].[[BR]] In questo modo si avrà la possibilità di installare l'ultima versione stabile del kernel, la cosiddetta versione Vanilla. Una volta scaricato il pacchetto, sarà necessario decomprimerlo e copiarlo nella cartella /usr/src/:

    sudo tar -xvjf linux-[VERSIONE_CHE_AVETE_SCARICATO].tar.bz2 && sudo cp -r linux-[VERSIONE_CHE_AVETE_SCARICATO] /usr/src/
  • scaricare il pacchetto dai repository di Ubuntu (kernel ufficiale di Ubuntu), da terminale dare il seguente comando:

    sudo apt-get install linux-source
    Ubuntu, purtroppo, non fornisce tutte le versioni dei kernel più aggiornate, scegliendo infatti questa opzione si correrà il rischio di non avere l'ultimo kernel stabile.

Compilazione e installazione

Entrare nella directory dei sorgenti del kernel appena scaricati:

cd /usr/src/linux-[VERSIONE_CHE_AVETE_SCARICATO]

Eventuali patch

A questo punto, se necessario, sarà possibile applicare una o più patch al kernel.

Tra le più diffuse si possono trovare quelle di:

Di solito le patch vengono applicate utilizzando l'insieme di due comandi: patch e cat (o anche bzcat se il file ha estensione .bz2).

Copiare la patch nella directory dei sorgenti del kernel e digitare:

bzcat [NOME_DELLA_PATCH].bz2 < patch -p1

Se il procedimento non andrà a buon fine, sarà necessario cancellare tutto quanto e ricominciare dall'inizio.

Configurazione

È possibile importare una vecchia configurazione di un altro kernel. Se si dispone del file .config è sufficiente copiarlo all'interno della directory dei sorgenti.

Se si vuole utilizzare la configurazione del kernel attualmente in uso, è sufficiente digitare, all'interno della directory dei sorgenti:

sudo make oldconfig

Per personalizzare la configurazione eliminando eventuali moduli, o per crearne una di nuova, ci sono diversi modalità:

  • Grafica:

    sudo make xconfig
  • Pseudo-grafica:

    sudo make menuconfig

Per l'utente più inesperto è consigliabile effettuare la configurazione con il metodo grafico.

Potrete cercare le varie opzioni di configurazione di ogni versione del kernel a questo utilissimo sito: [http://kernel.xc.net/Linux Kernel Configuration Archive]

Attenzione a come vi muovete: la cancellazione di un semplice modulo può compromettere l'intero sistema!

Alla fine la configurazione sarà all'interno del file .config presente nella cartella del kernel. È consigliato farne una copia, se si è soddisfatti del lavoro svolto.

Configurazione standard

Seguire quanto descritto per evitare spiacevoli inconvenienti in fase di compilazione:

  1. In «General Setup» attivare:

    • -Support for paging of anonymous memory (swap)
      • --Support for prefetching swapped memory
  2. In «Processor type and features»:

    • In «Processor family» scegliere il modello del processore.

    • Attivare Preemption Model-> Voluntary Kernel Preemption (Desktop)

    • In «High Memory Support» scegliere:

      • off se si possiede meno di 1 GB di RAM

      • 1GB Low Memory Support se si possiede 1GB di RAM

      • 4GB se si possiede più di 1GB di RAM

    • In «Timer frequency» abilitare: 1000 Hz

  3. In «Graphics Support»

    • Disabilitare NVIDIA RIVA se si usano driver Nvidia proprietari.

  4. In «Device drivers -> Block devices -> IO Schedulers lascisare» scegliere solo «CFQ I/O scheduler», otterrete una migliore performance.

  5. In «Kernel hacking» deselezionare «Kernel debugging».

Compilare

Finita la fase di personalizzazione, per compilare, digitare:

sudo make-kpkg clean

E successivamente:

sudo make-kpkg --append-to-version=-CUSTOM --initrd kernel_image kernel_headers modules_image

Il flag di revisione è opzionale ed è solamente utile per visualizzare il nome del kernel attraverso il comando:

uname -r

C'è la possibilità di scrivere tutto ciò che si vuole al posto di «-CUSTOM» (esempio: dopo il trattino "-10.k7" in base al tipo di processore disponibile sulla propria macchina).

Generalmente i kernel Ubuntu usano un initrd, per crearlo è sufficiente aggiungere l'opzione «--initrd» al comando precedente.

Installare

Entrare nella cartella superiore:

cd ..

E installare i pacchetti appena creati (dovrebbero essere due). Da terminale digitare:

sudo dpkg -i kernel-image-[VERSIONE_DEL_KERNEL].deb
sudo dpkg -i linux-headers-[VERSIONE_DEL_KERNEL].deb

Grub verrà aggiornato automaticamente.

Riavviare e all'avvio scegliere il nuovo kernel installato.

Se ci sono problemi, riavviare la macchina e utilizzare il vecchio kernel.

Ulteriori risorse