divendres, 20 d’octubre de 2006

2n CFGS ASI

Aquest és un intent de guia pas a pas, amb més o menys sort i correcció ortogràfica per portar a terme la tasca de compilar el kernel (nucli) de Linux per la distribució de Ubuntu a partir d'una altra guia casolana.

Pas 1: Obtenir les eines necessàries:

apt-get install build-essential kernel-package

En el cas que no ho pogueu descarregar, podeu utilitzar el gestor de paquets Synaptic.

Pas 2: Adreçar-vos a la font del Kernel, i adreçeu-vos al camí /pub/linux/kernel/. Un cop dins, t'hauràs de descarregar el paquet més recent (en aquest cas, el 2.6.20) que tingui l'extensió .gz i que, a més, el seu nom nom no comenci per patch. Això et permetrà descarregar-te les fonts del kernel senceres.


Pas 3: Un cop descarregat, copia'l dins del directori /usr/src i descomprimeix-lo:

cd /usr/src/
tar -xvzf linux-X.Y.ZZ.tar.gz

Pas 4: Crea un enllaç simbòlic al directori descomprimit de les fonts (opcional)

ln -s linux-X.Y.ZZ linux
o bé,
mv linux-X.Y.ZZ linux

Pas 5: A partir d'ara, ja pots obtenir les eines per configurar el nucli

apt-get install libncurses5-dev

Pas 6: Adreça't al directori de les fonts

cd /usr/src/linux-X.Y.ZZ

Pas 7: Ja pots agafar la teva configuració vella i importar-la al no kernel. Per aconseguir-ho, hauràs de copiar el fitxer config-A.BB.CC que estiguis utilitzant (poden haver-hi varis) de /boot a la carpeta /usr/src/linux-X.Y.ZZ que hagis creat, però, anomenant-lo .config

cp /boot/config-A.BB.CC /usr/src/linux-X.Y.ZZ/.config

Pas 8: Executar make mrproper dins del directori /usr/src/linux-X.YY.ZZ.

make mrproper

Pas 9: Executa make menuconfig, o bé, make oldconfig menuconfig si vols importar la configuració. En el segon cas, es pendrà la configuració antiga per les opcions velles i se't preguntarà sobre cadascuna de les noves opcions del Kernel. Pots utilitzar ? per sol·licitar ajuda i, si no saps ben bé què fer, pots utilitzar l'opció per defecte (Fent ENTER, o bé, mirant quina és de les opcions llistades apareix en majúscules)

make menuconfig
o bé
make oldconfig menuconfig

Pas 10: Tant si prens o no la configuració antiga, ara t'apareixerà el menú en el que pots revisar les opcions, o bé, canviar algunes més. Quan finalitzis, assegura't que graves els canvis realitzats.

Pas 11: Executa make dep per crear les dependències.

make dep

Pas 12: Executa make clean. és important tenir clar que això és força poc recomanable si solament estàs canviant un parell d'opcions sobre un nucli que ja has compilat abans perquè tardaràs moltíssim, després, en recompilar-ho tot, donat que esborraràs tots els .o que ja estaven compilats. "Aquesta comanda esborra tota la brossa".

make clean

Pas 13: Executa make bzImage per crear la imatge del kernel. Posa-hi paciència, perquè és un procés un xic llarg.

make bzImage

Pas 14: Copia la imatge del kernel bzImage i els maps al directori /boot

cp System.map /boot/System.map-X.Y.ZZ-identificador
cd /usr/src/linux-X.YY.ZZ/arch/i386/boot
cp bzImage /boot/vmlinuz-X.Y.ZZ-identificador
cd /usr/src/linux-X.Y.ZZ

Posa atenció a l'hora d'anomenar els arxius dins de /boot AMB EL MATEIX IDENTIFICADOR per diferenciar-lo dels altres kernels, per exemple, així:

System.map-2.6.10-provant i vmlinuz-2.6.10-provant
System.map-2.6.11.3-tanteig
i vmlinuz-2.6.11.3-tanteig

Pas 15: Executa make modules per crear els mòduls. Aquest és un procés que també pot ser força llarg

make modules

Pas 16: Executa make modules_install per instal·lar els mòduls

make modules_install

Pas 17: Executa el mkinitrd. Per fer aquest pas, pots ser necessari descarregar-te les eines del initrd

apt-get install initrd-tools

mkinitrd -o /boot/initrd.img-X.Y.ZZ-identificador X.Y.ZZ

Recorda que l'identificador ha de tant en System.map com en vmlinuz. Observa que el segon paràemtre no porta l'identificador. Aquest ha de coincidir amb el nom del directori /lib/modules/X.YY.ZZ que conté els mòduls pel teu nou kernel

mkinitrd -o /boot/initrd.img-X.Y.ZZ-identificador X.Y.ZZ

Pas 18: Edita la configuración de grub (o del lilo). La configuració de grub la pots trobar dins de /boot/grub/menu.lst. Solament hauràs de copiar un dels blocs ja existents i afegeix-lo al final amb les modificacions corresponents perquè s'adapti al teu sistema.

Per exemple:

title Ubuntu, kernel 2.6.20-provant
root (hd0,2)
kernel /boot/vmlinuz-2.6.20-provant root=/dev/hda3 ro quiet splash
initrd /boot/initrd.img-2.6.20-provant
savedefault
boot

Quan hagis provat que funciona, podràs canviar la línia default al valor adient perquè arrenqui, per defecte, amb aquesta nova configuración. Has de tenir en compte que si poses default 3 arrencarà la cuarta opció de la llista, donat que default comença a pel 0.

Pas 19: Executa depmod -a (de preferencia per actualitzar els mòduls)

depmod -a

Pas 20: torna a arrencar el PC