- Separare il markup dal codice PHP (2,138)
- GIMP: la libertà di fare grafica. (1,651)
- Le migliori foto del 2008 (1,639)
- Compilatevi il vostro Kernel! (1,272)
- Intese tra governo italiano e Microsoft secretate? (1,126)
- Bevenuti su SmartArt.it (1,089)
|
Inviato da ThePeach il Sab, 11/07/2009 - 12:24
Per ovvi motivi non è scopo di questo articolo coprire argomenti come il funzionamento della compilazione, i comandi base di un sistema GNU/Linux, il fatto che tutto sotto GNU/Linux è un file, invece cercherà di fornire un approccio a basso livello alla compilazione e configurazione del kernel, che possa funzionare in qualsiasi situazione. Indice
Fossi matto!E se non lo sei lo diventerai! Apparte gli scherzi, le ragioni che possono portarvi a configurare ex-novo, o a modificare una configurazione preesistente di un kernel è dettata da una necessità di ottimizzare un sistema, aggiungere un supporto precedentemente inesistente, eseguire un aggiornamento obbligatorio (dovuto al supporto di hardware nuovo o buggoso), impazzire. Una piccola panoramica del kernelIl kernel, se non ve l'avesse già detto qualcun altro, è (a grandi linee) lo strato software che mette in comunicazione i dispositivi hardware con il software utente: significa che senza il kernel non potrete usare il lettore cd, la videocamera, scrivere con la tastiera e accedere basilarmente al file system.
Molte, se non tutte, le distribuzioni binarie forniscono un kernel precompilato e spesso risulta pure difficile risalire alla configurazione esatta dello stesso, quindi la sua modifica può implicare, oltre allo scaricamento dei sorgenti vanilla, anche delle singole patch, applicandole di volta in volta (sperando che non collidano tra di loro). Prima di configurareOccorre quindi scaricare il kernel che desiderate. # cd /usr/src/ # wget kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.1.tar.bz2 # tar -xvjpf linux-2.6.30.1.tar.bz2 # cd linux-2.6.30.1 se avete delle patch da applicare, questo è il momento giusto. Una volta scaricata la patch (che chiameremo per sempicità "file.patch") vi basterà applicarla dando il comando: # patch -p1 < /path/to/file.patchse avete dubbi che la patch possa andare in conflitto con una precedentemente applicata o perché creata per una versione diversa di kernel, allora vi consiglio di usare l'opzione --dry-run, così: # patch -p1 --dry-run < /path/to/file.patchche non modifica nulla ma vi fa vedere se la modifica andrà a buon fine. Pronti? Via alla configurazione!Si accede molto semplicemente al menu di configurazione testuale (navigabile con le frecce) tramite il comando: Ma facciamo un passo indietro: come facciamo a capire come è organizzato il tutto? Una guida davvero interessante l'ho trovata un po' di tempo fa per sbaglio, ed è una guida interattiva al kernel Linux. Nella sezione successiva troverete informazioni utili per come configurare (il più possibile) correttamente il vostro kernel. |
Aggiungo un piccolo
Aggiungo un piccolo contributo che, almeno per me, è stato di vitale importanza.
Lo script /scripts/extract-ikconfig, da invocare da , permette di estrarre il .config da un kernel già compilato.
Potrebbe essere utile estrarre detto file dal kernel normalmente installato nella distribuzione ed utilizzarlo come base per un fine tuning.
Chiaramente, il kernel precompilato deve supportare la funzionalità, che in ogni caso consiglio a tutti di attivare, ma, almeno su Slackware 12, pare esserci.
Buona compilata a tutti!
ottimo
non conoscevo ancora questo script. ottima segnalazione!
l'unica cosa che mi sfugge è "da cosa è data la possibilità di estrarne il config?" indagherò, nel frattempo lo aggiungo all'articolo.
grazie ancora!
Hai ragione. Almeno nel
Hai ragione.
Almeno nel menuconfig del kernel 2.6.26, occorre abilitare 'General setup -> Kernel .config support'.
Bellina coma guida,
Bellina coma guida, discorsiva, non trascuri cose spesso date per scontate, ci sono link per approfondire...
Minima aggiunta riguardo alla configurazione del kernel precompilato della distribuzione: Nelle Debian & derivate si trova in /boot/config-`uname -r`-ARCHITETTURA (se non sbaglio, non ho pc GNU/Linux sotto mano).
Riguardo alla pulizia dei sorgenti, si può andare anche più leggeri di un Mastro Lindo - make mrproper: make clean toglie tutti i file prodotti durante la compilazione ma lascia il .config
Non so se potrebbe starci un riferimento ai metodi specifici delle distribuzioni per creare pacchetti binari dalla compilazione, tipo quello che uso, il Metodo Debian, ma c'è pure il Metodo Fedora, ecc...
grazie
grazie per il make clean (me n'ero completamente dimenticato) e pure per dove trovare il config di debian&co.
Per quanto riguarda i metodi specifici non so. Questa guida l'ho voluta realizzare fondamentalmente per dare dei suggerimenti in fase di configurazione. Al massimo aggiungo in coda nella documentazione aggiuntiva.
Grazie ancora per il commento.
Invia nuovo commento