di: Andrea Scrimieri 10 Luglio 2001
In questo articolo analizziamo i passi da seguire per ricompilare il kernel. Prima di tutto È necessario dotarsi dei sorgenti del kernel. Se non si hanno già disponibili sul proprio Hard Disk possono essere trovati al sito ftp://ftp.kernel.org/pub/linux/kernel/v2.4. Per un kernel della serie 2.4 sono necessari alcuni aggiornamenti (tutte le ultime distribuzioni sono pronte per il kernel 2.4) che potrete trovare nel file /usr/src/linux/Documentation/Changes.
Attualmente l'ultima versione è la 2.4.6 (linux-2.4.6). Bisogna prestare attenzione alla seconda cifra che caratterizza il kernel (4 nel nostro caso). Solo i kernel con la cifra pari sono considerati sufficientemente stabili, mentre gli altri sono ritenuti in fase di sviluppo e destinati agli sviluppatori.
I sorgenti andranno posizionati nella directory /usr/src e quindi decompressi. Per tutte queste operazioni È necessario "loggarsi" da utente root. Prendiamo il caso che abbiate scaricato il file linux-2.4.6.tar.gz.
lnxbox1:~# mv linux-2.4.6.tar.gz /usr/src lnxbox1:~# cd /usr/src lnxbox1:/usr/src# tar xfvz linux-2.4.6.tar.gz
Se avete già i sorgenti del kernel basta scaricare soltanto le patch di aggiornamento. Le patch sono sequenziali, dipendenti cioÈ dalla versione precedente. Questo vuol dire che se avete già il kernel 2.4.0 per passare al kernel 2.4.6 dovrete scaricare 6 patch e installarle. Per installare una patch scrivete:
lnxbox1:/usr/src# gzip -cd patchXX.gz | patch -p0
Dove al posto di XX vi È la versione della patch.
I sorgenti sono anche disponibili come bz2, che offre un miglior grado di compressione, ma che non ha ancora soppiantato il gz.
Se tutto È andato bene ci ritroveremo i sorgenti del nostro kernel nella directory /usr/src/linux. Entriamo in questa directory:
lnxbox1:~# cd /usr/src/linux
e diamo:
lnxbox1:/usr/src/linux# make mrproper
In questo modo elimineremo tutti i collegamenti vecchi e dipendenze con la precedente versione. Questa operazione elimina anche il file .config che contiene la configurazione per il kernel.
A questo punto dobbiamo scegliere le opzioni da includere nel nuovo kernel. Da utente root scriviamo quindi:
lnxbox1:/usr/src/linux# make config
In questo modo ci verrà chiesto interattivamente cosa includere e cosa no. Esistono tuttavia dei modi più amichevoli per la configurazione del kernel. Al posto di make config possiamo scrivere:
lnxbox1:/usr/src/linux# make menuconfig
Per caricare il menu di configurazione testuale. Oppure:
lnxbox1:/usr/src/linux# make xconfig
Per caricare il menu di configurazione per X.
A questo punto si tratterà di scegliere quali opzioni del kernel fanno al caso nostro e quali no. Compilare il kernel è una delle operazioni più delicate nella quale potremo imbatterci, perché richiede una buona conoscenza dell'hardware installato sul proprio sistema e anche un minimo errore potrebbe costarci l'impossibilità di poter riavviare Linux.
Putroppo non sarebbe neanche possibile analizzare nei dettagli tutte le opzioni presenti nel kernel. Daremo però dei suggerimenti utili su quali sono le opzioni fondamentali da abilitare e quali possono essere gli errori più comuni. Se si è in dubbio se abilitare o meno un'opzione può tornare sempre di grande utilità l'help in linea. Generalizzando nell'incertezza la scelta meno rischiosa è "abbondare" nelle opzioni.
È buona norma accludere nel kernel solo il supporto per i componenti hardware fondamentali (come HD, filesystem ext2, supporto per i multiprocessore, ecc.) mentre compilare come moduli (contraddistinti da una M) le parti non indispensabili per il boot (come supporto a schede audio, schede di rete, filesystem aggiuntivi come FAT, ecc). Analizziamo ora i menu di configurazione.
Code maturity level options È bene abilitare questa opzione ("Prompt for development and/or incomplete code/drivers") da includere staticamente (built-in, non come modulo quindi).
Loadable module support È bene abilitare le opzioni in questo menu in modo da poter usare i moduli.
Processor type and features In questo menu possiamo scegliere l'ottimizzazione per il nostro processore o abilitare il supporto per il multiprocessore o l'MTRR.
General setup Da questo menu sono assolutamente da abilitare il supporto per la rete (Networking support), i supporti per le schede PCI, quello per i binari del kernel in formato ELF (Kernel support for ELF binaries) (ma anche quelli a.out e MISC per una maggiore compatibilità con i vecchi formati). Se volete potete abilitare da qui il supporto per APM (il risparmio energetico). Sono anche da abilitare "Sysctl support" e "System V IPC"
Memory Technology Devices (MTD) Le opzioni in questo menu possono essere disabilitate nella stragrande maggioranza dei casi.
Parallel port support Da qui possiamo includere il supporto per la porta parallela (anche compilandola come modulo).
Plug and Play configuration Da questo menu possiamo abilitare il supporto al Plug And Play (anche come modulo)
Block devices Da qui abilitiamo il supporto per il floppy "Normal PC floppy disk support" (meglio se built-in) e "Loopback device support".
Multi-device support (RAID and LVM) Se avete un controller RAID o volete usare il Logical Volume Manager potete abilitare le opzioni in questo menu. Ciò potrebbe richiedere però il caricamento di alcuni demoni fatti per gestire queste feature.
Networking options Da qui abiliterete le opzioni per il networking come il TCP/IP, supporto per firewall, masquerading, IPV6, QoS, IPX. Una delle novità del kernel 2.4 È il supporto per il khttpd, l'accelerazione per il server http (abilitatela solo se avete installato un server http).
Telephony Support Anche da questo menu quasi sicuramente non dovrete abilitare nulla
ATA/IDE/MFM/RLL support Abilitate (come built-in) "ATA/IDE/MFM/RLL support" e entrate nel menu sottostante. IDE, ATA and ATAPI Block devices Da qui abilitate (come built-in): "Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support" "Include IDE/ATA-2 DISK support" "Include IDE/ATAPI CDROM support"
Abilitate anche i supporti per il DMA se volete usarlo e l'opzione relativa al vostro chip presente sulla scheda madre. Se avete un masterizzatore IDE dovreste abilitare anche "SCSI emulation support" e disabilitare l'opzione relativa al CDROM ("Include IDE/ATAPI CDROM support").
SCSI support Da qui potete abilitare il supporto per periferiche SCSI (comprese quelle emulate). Se avete un controller SCSI dovrete abilitare l'opzione relativa al vostro modello dal sottomenu "SCSI low-level drivers".
Guida Linux ServerUna guida all'uso di Ubuntu Server per gestire i più comuni servizi... |
Guida Fedora CoreCome scaricare, installare, configurare e usare Fedora Core, la... |
Guida Ubuntu LinuxUna guida all'installazione, alla configurazione e all'uso di... |
Ogni venerdì, direttamente nella tua e-mail: articoli, approfondimenti e risorse tecniche sul sistema operativo Linux.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
Nessun corso previsto |