Dimensione: 7068
Commento: Iniziata la revisione.
|
Dimensione: 7020
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: {{{ |
Per 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: {{{ |
Finita 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] |
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:
[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
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:
In «General Setup» attivare:
- -Support for paging of anonymous memory (swap)
- --Support for prefetching swapped memory
- -Support for paging of anonymous memory (swap)
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
In «Graphics Support»
Disabilitare NVIDIA RIVA se si usano driver Nvidia proprietari.
In «Device drivers -> Block devices -> IO Schedulers lascisare» scegliere solo «CFQ I/O scheduler», otterrete una migliore performance.
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
[http://massimo.solira.org/pcikl/index.html Progetto Configurazione Italiana del Kernel Linux]