Última actualització: desembre 2012
Per a compilar un nucli a l'estil Debian necessitem instal·lar algunes coses:
Ara ens fan falta les fonts del paquet corresponent a la versió de kernel que volem compilar. Imaginem que instal·lem
apt-get install linux-source-2.6.32
Un cop instal·lat el que tenim és un fitxer a /usr/src/linux-source-2.6.32.tar.bz2. Hem extreure aquests arxius en un nou directori. Pensem no hi ha necessitat de fer-ho a /usr/src/; potser millor a qualsevol altre directori (per exemple a ~ /kernel/) ja que per a compilar un nucli no ens fan falta permisos especials.
A l'hora de compilar un kernel en comptes de configurar tot des de zero, seguramente ens serà millor partir de les opcions del que tenir funcionant a l'equip. Per a això el que hem de fer és agafar el fitxer /boot/config-versió i copiar-ho al directori que conté les fonts del nucli com a .config. Si és el cas, fariem:
cp /boot/config-2.6.32-5-686 ~/kernel/linux-source-2.6.32/.config
Quines interfícies tenim disponibles para escollir les nostres configuracions?
Un cop configurat tot, queda un fitxer .config a l'arrel de cada carpeta de cada branca dels directoris de les fonts.
A Debian el que fem quan compilem el kernel és finalment generar un paquet que podrem instal·lar al sistema. Si ja hem compilat un kernel amb anterioritat i volem tornar a recompilar, hauriem de fer:
fakeroot make-kpkg clean
Adicionalment si afegim el paràmetre --append-to-version, podem generar un paquet amb un nom diferent.
Make-kpkg és un script que realment fa: "make dep; make clean; make bzImage; make modules". Fakeroot ens permet compilar el kernel sense ser el superusuari.
Hem de tenir en compte que make-kpkg fa servir la informació continguda en /etc/kernel-pkg.conf per a generar les capçaleres del kernel. Es recomanable editar aquest fitxer con la informació correcta si tenim intenció de publicar el nostre kernel.
Un cop tenim tota la configuració feta,
make-kpkg
compila el kernel i genera el corresponent paquet (o paquets). Tenim tres opcions:
Els headers (capçaleres) son fitxers .h que estan ubicats al directori include i es contenen informació necessaria per a poder compilar mòduls externs.
Un cop tenim generat el paquet i l l'instal·lem, queden tres fitxers al directori /boot:
Els mòduls queden instal·lats a:
Finalment, un dels scripts del paquet d'instal·lació genera automàticament una imatge initrd.img-version. que s'ubica a /boot i que és un mini sistema que es carrega en memòria i permet arrecar el sistema mínimament fins que arriba a muntar el sistema de fitxers del disc i carrega el kernel real. cd /
A més, es creen dos enllaços simbòlics anomenats:
Que apunten al kernel i initrd en curs.