Está en la página 1de 3

Compilación del Kernel.

Para compilar un kernel manualmente el primer requisito indispensable es obtener el


codigo fuente del kernel, para ello nos dirigiremos a la web oficial del kernel www.kernel.org y nos
bajaremos la ultima version disponible, en el momento de escribir estas lineas la version estable
es la 2.6.24.3, y la copiaremos en la ruta /usr/src.

Si nos bajamos los ficheros fuente comprimidos en formato bz2 lo podemos descomprimir
con el comando “ tar xvjf kernel-source” esto nos creara una carpeta con el numero de version que
estemos descomprimiendo, una vez terminada la descompresion nos movemos a la carpeta con:
cd 2.6.24.3 en nuestro caso.

Antes de iniciar el proceso de configuracion y compilacion del kernel es necesario


especificar que hay varias formas de configurar el kernel, siempre con el comando make :

1. config : es la forma mas basica de configurar el kernel, con este metodo lo haremos todo
por linea de comandos ( a mi entender un suicidio ).

2. menuconfig : es la manera mas usual de hacer la configuracion de nuestro kernel, una


vez ejecutado este comando se mostrara un entorno semi-grafico con interface ncurses
( hay que asegurarse que tenemos todas las librerias de ncurses instaladas, incluyendo :
libncurses, libncurses4, libncurses5, libncurses5-dev, libncursesw5 y libncursesw5-dev )
por el cual nos podremos mover con las flechas de movimiento del teclado, para entrar en
un apartado vastara con presionar “Enter ” y para volver al apartado anterior “Esc” y
queremos seleccionar una opcion para incluirla en nuestro kernel se selecciona con las
flechas y se presiona “Space”, las opciones se podran integra en el nucleo o en forma de
modulos externos al nucleo apareciendo un asterisco “ *” o una “M ” respectivamente.En
todo momento puedes presionar la tecla “? ” y se mostrara una explicacion de la opcion
seleccionada. El menu principal que nos aparece te da la opcion de guardar la
configuracion realizada en un archivo de texto ( si no especificamos ningun archivo cuando
terminemos la configuracion y salgamos, esta se guardara de forma predeterminada en un
archivo llamado .config ) o cargar la configuracion de un archivo ya creado ( esta opcion es
de utilidad si ya habiamos configurado un kernel anterior con todas las opciones
necesarias o incluso si estamos instalando linux desde un live CD ) .

3. xconfig : este metodo hay que ejecutarlo desde un terminal grafico ya que hara uso de las
“X” para mostrar la configuracion del kernel, este metodo es identico al anterior
exceptuando que te permite utilizar el raton para navegar por el menu de opciones.

4. gconfig : identico al anterior pero un poquito mas amigable.

Una vez configurado a nuestro gusto ( podemos tardar tranquilamente 5 o 6 horas para
configurar todos los parametros del kernel ) pasamos a la parte de compilacion propiamente dicha,
esta parte la podemos ejecutar en un solo comando o hacerlo de forma secuencial :

make dep && make clean && make bzImage && make modules

La explicacion de cada comando es la siguiente:


● make dep : este comando comprobara las dependencias necesarias para compilar nuestro
kernel y compilara algunos archivos para asegurar que todas los componentes necesarios
estan localizados.

● make clean : este comando realiza una limpieza de todos los posibles binarios resultantes
de una compilacion anterior del kernel para asegurar que no va a haber ningun problema.

● make bzImage : aqui es cuando se compila realmente el el kernel y se generea el fichero


binario que utilizaremos para arrancar nuestro sistema.

● make modules : compila de forma externa al kernel las opciones seleccionadas como
modulos.

Llegados a este punto la compilacion del kernel habria terminado y solo nos quedaria la
instalacion del mismo asi como la instalacion de los modulos compilados y por ultimo la
configuracion de nuestro cargador de arranque.

Para instalar los modulos solo seria necesario ejecutar el siguiente comando como root:

make modules_install

Una vez hecho esto los modulos compilados se instalaran en


/lib/modules/version_del_kernel_que_estemos_compilando en nuestro caso 2.6.24.3 y se
guardara en el archivo /etc/modules el nombre de los modulos que haya que arrancar en el inicio.

Ahora toca la instalacion del kernel:

# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinux-2.6.24.3
#cp /usr/src/linux/system.map /boot/system.map-2.6.24.3

Y ahora creamos la imagen del kernel arrancable en ram, que viene a ser el fichero initrd
que se encargara de arrancar en ram nuestro kernel ( este fichero solo es necesario si tenemos
particionado nuestro disco con ext3 ).

#update-initramfs -k 2.6.24.3 -c

Esto nos creara el fichero initrd y nos lo copiara en el /boot.

Un ejemplo de configuracion de grub para utilizar nuestro flamente y makeado kernel


podria se el siguiente:

title Debian is the best!!


root (hd0,0)
kernel /boot/vmlinux-2.6.24.3 ro root=LABEL=/
initrd /boot/initrd.img-2.6.24.3

Reiniciamos y como si fuera todo automagico se nos inicia nuestro maravilloso linux ;) ale a
disfrutar del trabajo bien echo y recordar happy hacking my friend.