Compilare, Configurare ed installare un Kernel di Linux Funzionante

ArticleCategory:

Kernel Corner

AuthorImage:

TranslationInfo:[Author and translation history]

original in en Subhasish Ghosh

en to it Toni Tiveron

AboutTheAuthor:

Il mio nome è Subhasish Ghosh, ho vent'anni, ed attualmente vivo in India. Sono sia uno studente di ingegneria informatica come pure Consulente informatico. Attualemente ho ottenuto 6 certificazioni Microsoft Certified Professional (MCP), ed anche una certificazione su NT 4.0 Track. Da poco mi sto preparando per per la certificazione di Red Hat ed Hat Linux Certified Engineer (RHCE). Ho lavorto con Linux per un lungo periodo, specialmente con Red Hat. Ho intenzione nel futuro di lavorare principalmente con Linux.

Abstract:

Ciao a tutti. Questo articolo vi illustrerà in maniera dettagliata, con una spiegazione passo dopo passo, come compilare, configurare ed installare il Kernel della distribuzione Red Hat. Come molti di voi sapranno, un Kernel personalizzato è richiesto per molteplici ragioni, e non è mia intenzione approfondire queste ragioni. Vi mostrerò solo come compilarlo, configurarlo ed installarlo. Sebbene le istruzioni che vi darò siano focalizzate principalmente per la distribuzione Red Hat, esse possono essere utilizzate anche per altre distribuzioni, ovviamente, con piccole variazioni a seconda del caso.

ArticleIllustration:[This is the title picture for your article]

[Illustrazione]

ArticleBody:

Introduzione

Questo articolo vi spiegherà come compilare il vostro kernel personalizzato in 27 semplici passi. Io ho personalmente eseguito questi passi su di un computer con la seguente configurazione: Compaq Presario 4010, 15.5 GB di disco rigido, 96 MB di RAM, Processore Intel Celeron 400, Linux Red Hat 7.0 con kernel 2.2.16-22
Il nostro scopo è di ottenre un kernel personalizzato e perfettamente funzionante. Al termine di questo esempio io otterrò un kernel personalizzato il cui nome sarà "2.2.16-22ghosh" funzionante sul mio sistema (Se vi chiedete come mai ghosh, basta che pensiate che è il mio nome - Voi potrete utlizzare un nome a piacere, ed averne un paio che possono funzionare nello stesso sistema). Buon lavoro e felice compilazione.

La guida

Passo 1: Effettuate l'accesso come "root" ed eseguite i seguenti passi.

Passo 2: Al prompt dei comandi digitate rpm -q kernel-headers kernel-source make dev86

Passo 3: Se questi pacchetti sono già installati procedete al passo nr. 4. Altresì eseguite il mount del CD di Red Hat e digitate il comando rpm -Uvh per installare questi RPM.

Passo 4: Se avete il sistema X window configurato e funzionante dovrete solo digitare startx. Nel caso non abbiate il sitema a finestre configurato vi suggerisco di configurarlo prima di procere. Ne trarrete solo benifici. Nel caso non vogliate configurare il sistema a finestre, o non lo abbiate, digitate make config o make menuconfig. Vi prego di tenere conto che io parto dal presupposto che Voi ABBIATE il sistema a finestre configurato e funzionante, e qundi dovrete semplicimente digitare startx.

Passo 5: all'interno dell'ambiente GNOME, eseguire una finestra terminale e digitate cd /usr/src/linux e premete il tasto invio.

Passo 6: All'interno della cartella /usr/src/linux, digitate make xconfig.

Passo 7: La versione grafica del make config apparirà nel vostro schermo. Vi proporrà tutte le personalizzazioni possibili per creare il vostro Kernel.

Passo 8: Per il momento vi suggerisco di lasciare le opzioni così come le trovate.

La configurazione di default è piuttosto massiccia. D'altro canto è una configurazione che funziona con la maggior parte dei computer. Il mio consiglio è che voi dapprima seguiate tutti i passi per comprendere come funzioni il procedimento nel suo complesso. In seguito, dopo che avrete preso dimestichezza con il processo ed avrete identificato l'hardware del vostro computer, in modo da considerarvi "esperti", potrete ottimizzare il kernel ottenerne uno più compatto e funzionale. Un buon posto per apprendere di più sui componenti del vostro computer, sono i file contenuti nella cartella /proc, per esempio /proc/pci, /proc/interrupts, /proc/modules etc ...

Per il momento non cercate di configurare a casaccio. Per le funzionalità di questo esperimento dovrete solamente effettuare questi cambiamenti:

1.Processor Type and Features: Scegliete il processore adatto al vostro sistema. Se state lavorando su di un Pentium 2, 3 o un Celeron della intel, come ho io, sceglieremo la seguente voce: PPro/686MMX, Maximum Physical Memory: 1 GB, Math Emulation: Yes, MTRR: Yes, SMP: Yes.

2.Accedete alla sezione Filesystems ed apportate le seguenti variazioni: DOS FAT fs support: Yes(y), MSDOS fs support: Yes(y), UMSDOS: m, VFAT(Windows 95) support: Yes(y), NTFS filesystem support (read-only): Yes(y), NTFS read-write support(DANGEROUS): No(n). Dopo aver apportato queste modifiche, verificate di non aver fatto altre modifiche nelle altre sezioni. Queste variazioni che vi ho suggerito non sono per nulla dannose per il vostro computer e non influenzeranno il vostro attuale kernel.

3. Salvate (save) ed uscite (Exit) dalla finestra principale.

Passo 9: Eseguite il seguente comando ls -al all' interno della cartella /usr/src/linux.

Passo 10: Sono sicuro che noterete un file di nome "Makefile". Esso è estremamente importante per l'intero processo di compilazione. Createne quindi una copia di backup, per mezzo del comando: cp Makefile Makefile.bak

Passo 11: Ora eseguite i seguenti comandi: (All'interno della cartella /usr/src/linux) vi Makefile.

Passo 12: Cercate la riga contenente EXTRAVERSION e modificatela. Nel mio esempio questa riga ha come valore EXTRAVERSION=-22, e la modificherò in EXTRAVERSION="-22ghosh". Modificatela a vostro piacere.

Passo 13: Salvate le modifiche al file ed uscite.

Passo 14: Tutti i passi seguenti dovranno esser eseguiti all' interno della cartella /usr/src/linux. Digitate: make dep clean, e premete il tasto invio.

Passo 15: Digitate ora make bzImage modules. Questo richiederà un certo tempo, alzatevi ed andate a bere qualcosa mentre il computer lavorerà per voi. Di solito io mi riposo un poco, in quanto di norma, queste cose le faccio durante la notte.

Passo 16: Dopo questo macinare del vostro pc, un file il cui nome è "bzImage" sarà presente nella cartella /usr/src/linux/arch/i386/boot. Semplicemente accedete a questa cartella e controllate se il file "bzImage" sia stato generato o meno. SE E SOLO SE tutti i precedenti passi sono stati eseguiti correttamente e tutte le giuste opzioni sono state scelte nel make xconfig, solo a questo punto troverete il file in questione. Se troverete questo file, e sono sicuro che la magggior parte di voi lo troverà, potrete esultare di gioia perchè avete vinto il 75% della battaglia. Se non lo trovate, la cosa mi rattrista, ma significa anche che avrete fatto degli errori in qualche parte del processo. Prendetevi una pausa e reiniziate dal passo 1. Sono sicuro che ci riuscirete.

Passo 17: Digitate (all'interno della cartella /usr/src/linux): cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.2.16-22ghosh e premete il tasto invio.

Passo 18: Digitate ora cp System.map /boot/System.map-2.2.16-22ghosh
Sebbene non sia obbligatorio vi consiglio di salvarvi il file di configurazione del kernel (/usr/src/liunx/.config) da qualche parte per averlo come futuro riferimento per creare un nuovo kernel in un altro momento, senza dovere reiniziare daccapo. L'interfaccia grafica di configurazione (make xconfig) vi permette di caricare un file di configurazione esistente. Per salvare una copia della configurazione digitate:
cp /usr/src/linux/.config /boot/Config-2.2.16-22ghosh

Passo 19: Digitate ora make modules_install e premete il tasto invio. Vedrete a video che tutti i moduli verranno installati in una nuova cartella associata al nostro kernel personalizzato.

Passo 20: Digitate ora: mkinitrd /boot/initrd-2.2.16-22ghosh.img 2.2.16-22ghosh

Passo 21: Adesso digitate vi /etc/lilo.conf ed aggiungete la seguente voce:

image=/boot/vmlinuz-2.2.16-22ghosh

label=GhoshKernel
initrd=/boot/initrd-2.2.16-22ghosh.img
root=/dev/hdc5
read-only

Passo 22: Salvate ed uscite. Vi prego di notare che potreste dover cambiare la voce in lilo.conf secondo le vostre necessità e, molto probabilmente, il root filesystem del sistema, che nel mio caso è /dev/hda5. Per trovare in maniera sicura quale sia la vostra partizione di root digitate i seguenti comandi:
df | grep '/$'
e vi apparirà a video la partizione in cui il vostro root filesystem è presente. Vi prego di fare attenzione al singolo apice contenuto nel comando grep.

Passo 23: Digitate: /sbin/lilo -v -v

Passo 24: Leggete le informazioni a video, e se non vi sono errori, vi faccio i miei complimenti: il lavoro è terminato.

Passo 25: Riavviate il sistema per mezzo del seguente comando: /sbin/reboot o /sbin/shutdown -r now.

Passo 26: Alla schermata di avvio premete il tasto tabulazione (o Control-X se avete lo start-up screen di LILO),e potrete trovare la voce "GhoshKernel" tra le già esistenti voci.

Passo 27: Digitate GhoshKernel e premete il tasto invio. Durante l'avvio potrete vedere il vostro kernel completamente personalizzato. A questo punto starete utilizzando un Kernel Personalizzato e Completamente Funzionanate.

Il risultato

Osservate il processo di avvio, i messaggi e controllate eventuali errori. In un secondo momento potrete controllare i messaggi di avvio nel file /var/log/boot.log e per mezzo del comando dmesg. Se non noterete alcun errore, vuol dire che il vostro kernel funziona perfettamente con il vostro hardware. Ottimo!!!!

Accedete al sistema e digitate: uname -a e premete il tasto invio. Vedrete sullo schermo il seguente responso: 2.2.16-22ghosh seguito dalla data di compilazione del kernel ed altre informazioni. Questo prova che state utilizzando un kernel personalizzato. E con questo è tutto! Vi ricordo che potete avere più versioni di kernel nello stesso sistema. Se qualcosa ancora non funzionasse come si deve o voleste comunicarmi dei suggerimenti, mandatemi pure una e-mail (in inglese) a auspicious_blessingsindia@hotmail.com. Vorrei sentire da voi se questo articolo vi ha aiutato, come spero, ad ottenere un kernel personalizzato e funzionante. Saluti a tutti,.
Subhasish Ghosh

mirror server hosted at Truenetwork, Russian Federation.