Como compilar un kernel


La forma que voy a mostrarle para configurar un kernel nuevo, tiene la ventaja de mantener el kernel que estábamos utilizando hasta ese momento , por eso es una manera segura de compilar kernels, dado que si falla algo en la compilación del kernel nuevo, lo peor que nos puede pasar es volver a configurarlo. Hay otras maneras de compilar un kernel, pero esta es la que me gusta. Antes de empezar tienen que asegurarse que tienen las librerías , programas .etc que necesita el kernel que van a utilizar. Generalmente si el cambio no es muy grande , no van a tener ningún problema. Otra cosita, para hacer todo lo que viene a continuación , o sea compilar el kernel, deben estar como root. 

1) conseguir las fuentes del kernel, y vamos a suponer que lo guardan en /tmp y es el linux.2.2.9.tar.gz

2) cd /usr/src (en este directorio vamos a poner luego el kernel que queremos
compilar)

3) rm linux

4) tar -zxvf /tmp/linux.2.2.9.tar.gz (con esto lo descomprimimos)

5) ln -s linux-2.2.9 linux

6) make mrproper

Ahora llega el momento de configurar el Kernel

Para configurar el Kernel tienen varios opciones para hacer, yo recomiendo o make xconfig o make menuconfig, dado que en estas la configuración es mas intuitiva , es a través de ventanas, las cuales tienen Helps. Mientras que make config es muy parca, además las primeras dos nos permiten volver atrás en la configuración, mientras , por lo que yo se, make config no nos lo permite. Entonces decididos por alguna tecleen: 

7a) make xconfig 

7b) make menuconfig

7c) make config


8) make dep

9) make clean

10) make bzImage (toma su tiempo)

11) make modules (genera el sistema de módulos)

12) make modules_install ( las instala en /lib/modules/2.2.9)

13) cp /usr/src/linux-2.2.9/arch/i386/boot/bzImage /boot/vmlinuz-2.2.9

14) cp /usr/src/linux-2.2.9/System.map /boot/System.map-2.2.9

15) cd /boot

16) rm System.map

17) ln -s System.map-2.2.9 System.map

Cambiar el archivo lilo.conf
Generalmente este archivo tendrá una configuración tipo esta:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.6
label=linux
root=/dev/hda6
read-only
other=/dev/hda1
label=dos
table=/dev/hda

Bueno nosotros debemos agregar los cambios que hicimos, lo que yo recomiendo es que al nuevo kernel lo dejen en segundo lugar hasta estar seguros que funciona bien.
Entonces el lilo.conf que tendrían que crear seria asi: 

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.6
label=linux
root=/dev/hda6
read-only
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.9
label=linux.nuevo
root=/dev/hda6
read-only
other=/dev/hda1
label=dos
table=/dev/hda

una vez hecho esto, deben correr lilo para que queden los cambios.

18) lilo -v

Bueno una vez hecho todo esto ustedes dispondrán de dos kernels instalados en su computadora, y podran decidir cual usar en el momento del arranque. Como dejamos las cosas si ponen enter o linux, bootearía el linux de siempre, mientras que si ponen linux.nuevo bootearía el que acabamos de crear. 

Entonces

19) shutdown -r now