in CentOS, infornatica & telemastica

Appunti Linux: compiliamo un kernel da src.rpm

Per la serie “me lo scrivo sul blog, così non va perso” mi annoto i passaggi necessari per ricompilare il kernel su piattaforma redhat-like partendo dai pacchetti src.rpm della distribuzione.

Su questo tipo di piattaforme, infatti, e’ abbastanza complesso, nonche’ scomodo e sconsgliabile, usare dei kernel “vanilla” ….. il tutto e’ stato spiegato da hughesjr sul canale IRC dedicato a CentOS.

Il modo migliore per compilare il kernel su CentOS e’ di procurarsi il corrispondente pacchetto source RPM.

Fatto cio’, assicurati di avere installati i tool di sviluppo base: gcc, rpm-devel, rpm-build, ecc. (ed il file redhat-rpm-config per CentOS-4) e quindi impartisci il comando:

rpm-i kernel-whateverversion.src.rpm

[ sostituisci il numero della versione che ti interessa 🙂 ] quindi spostati in /usr/src/redhat/SPECS

Redhat ha rilasciato il suo pacchetto SRPM in una maniera tale che tu possa compilarlo direttamente ed usarlo … e non puoi neanche
procedere in maniera convenzionale, e cioe’ usare il file kernel-2.6.version.spec per la compilazione, che applicherebbe tutte le patch.

Percio’ dovremo seguire i seguenti passi:
rpmbuild -bb kernel-2.6.spec ;
– (dovremo poi indicare un target e quindi) rpmbuild -bb –target=i686 kernel-2.6.spec ;
– dopo di che iniziera’ il lavoro ed aspetteremo l’ avviso in cui viene notificato che “bzImage” e’ pronto;
– quando bZimage e’ stato creato … mentre il processo stara’ compilando i moduli … interromperemo il processo con Ctrl-C;
– nella directory /usr/src/redhat/BUILD avremo un kernel three pienamente parchato;
– potremo quindi copiare la directory kernel-xxxx directory in /usr/src/, spostarci dentro di essa ed impartire un: make clean;
– a questo punto avremo una directory redhat-standard per la compilazione del kernel, come quella a cui siamo abituati.

I file di configurazione standard sono in kernel/configs, copia quelli di cui hai bisogno nella directory .config e poi
lancia: make oldconfig.
A questo punto sei pronto per la procedura standard make menuconfig
ecc.

Ovviamente se ci sono errori madornali me li segnalate ? così correggo e non famo danni 😀