Compilación del Kernel de Debian

February 15, 2011 § Leave a comment

El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.
Las funciones más importantes del mismo, aunque no las únicas, son:

  • Administración de la memoria para todos los programas y procesos en ejecución.
  • Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.

Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.
Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos de versiones del núcleo:

  • Versión de produccion: La version de produccion, era la version estable hasta el momento. Esta version era el resultado final de las versiones de desarrollo o experimentales. Cuando el equipo de desarrollo del núcleo experimental, decidia que tenia un núclo estable y con la suficiente calidad, se lanzaba una nueva versión de producción ó estable. Esta versión era la que se debia utilizar para un uso normal del sistema, ya que eran las versiones consideradas más estables y libres de fallos en el momento de su lanzamiento.
  • Versión de desarrollo: Esta versión era experimental y era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos solian ser inestables y no se debian usar sin saber lo que se hacia.

Como interpretar los numeros de las versiones de las series por debajo de la 2.6:
Las versiones del núcleo se numeraban con 3 numeros, de la siguiente forma: AA.BB.CC

  • AA: Indicaba la serie/versión principal del núcleo. Solo han existido la 1 y 2. Este número cambiaba cuando la manera de funcionamiento del kernel habia sufrido un cambio muy importante.
  • BB: Indicaba si la versión era de desarrollo ó de producción. Un número impar, significaba que era de desarrollo, uno par, que era de producción.
  • CC: Indicaba nuevas revisiones dentro de una versión, en las que lo único que se habia modificado eran fallos de programación.

¿Dónde conseguir el núcleo?
El núcleo denominado “vanilla” (sin alteraciones y suministrado por Linus Torvalds) se puede bajar de un gran número de servidores en internet pero el sitio oficial es http://www.kernel.org/. En este enlace tienes la lista internacional oficial de servidores espejos, de donde es posible bajarse cualquier versión del núcleo (última y antigüas).
Cada distribución distribuye sus nucleos por los canales de actualización habituales para cada una de ellas.

Configuración e instalación de un nuevo núcleo
Este es uno de los temas que asustan a los nuevos usuarios de Linux. Lo primero, deciros que no hay razón para asustarse, la configuración e instalación de un nuevo núcleo en nuestro sistema es mas fácil de lo suena. Lo segundo, es que podeis tener un sistema estable, actualizado y que funcione sin problemas durante meses sin tener que compilar un solo núcleo, siempre y cuando utiliceis los núcleos distribuidos con vuestra distribución.
Es muy recomendable el utilizar los núcleos distribuidos por la distribución que utiliceis. Estos núcleos tienen muy buena calidad y son muy completos y con esto os evitais el trabajo de configurar, compilar y mantener nuevas versiones del núcleo. Si sois de los que os gustan experimentar y aprender nuevas cosas, adelante, nadie os impide bajaros el último núcleo y experimentar con el, esto era mucho más común hace unos años y una tarea casi imprescindible en muchos casos.
Para los interesados en el tema existen dos documentos muy buenos que podeis utilizar para aprender a como compilar un núcleo, FAQ/Kernel compilation y el Kernel Rebuild Guide

Aqui vamos a ver una compilacion de un kernel en Debian.
Compilación del Kernel de Debian

Una vez que se inicia el sistema, entramos como administrador único o súper usuario root.

#  apt-get update

Con esta orden se actualizaran los archivos que se disponen en el kernel.
Seguidamente descargar el ultimo kernel estable para la, ya sea comprimido como tar.gz o como tar.bz2.
Para realizar esta operación desde una maquina remota que disponga de una dirección de red del rango que estamos utilizando, abrimos una sesión ssh con una aplicación como Putty. Vamos a dirigirnos con nuestro navegador Web a la dirección http://www.kernel.org/pub/linux/kernel/v2.6/ y copiamos el URL del kernel a descargar

# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.gz
# apt-get install build-essential libncurses5 libncurses5-dev
# ln –s /usr/src/linux-  linux
# ln –s /usr/src/linux-  linux-26
#  cp /boot/config-2.6.18.8-4-386 /usr/src/linux/.config
#  cd /usr/src/linux
#  make  menuconfig

Aquí seleccionaremos las opciones adecuadas a nuestra máquina al menos el tipo de procesador. Nos permitirá configurar nuestro nuevo kernel.
Hecho esto, nos aparecerá una pantalla azul, pulsaremos “Exit”, nos preguntará salvar los cambios en el fichero de configuración a lo que diremos que SI.

# make && make modules && make modules_install

Empezará a compilar el kernel. Este paso dura un buen rato (40-45 min.) dependiendo del pepino que tengas, así es que es el momento de tomar café con bollos.

Cuando la compilación concluya, recibiremos el siguiente mensaje (o parecido):

If [-r System.map –a –x /sbin/depmod]; then sbin/dmod –ae –F System-map.;fi

Aunque lo mas probable es que en debian 5 salga este:

DEPMOD 2.6.34

Continuamos de la siguienete forma:

# cp /usr/src/linux/arch/i386/boot/bzImage  /boot/vmlinuz-2.6.34
# cp System.map  /boot/System.map-2.6.34
#  vi /etc/mkinitrd/modules

Añadir una entrada que ponga ext3 que corresponderá al sistema de ficheros que se va utilizar aunque yo no lo he necesitado. A continuación hacemos ejecutamos lo siguiente según kernel y versión de debian:

# mkinitrd –o /boot/initrd.img-2.6.34      2.6.34
# mkinitramsfs –o /boot/initrd.img-2.6.34  2.6.34

Ahora hay que editar el fichero /boot/grub/menu.lst, y añadir , inmediatamente después de la línea que dice
## ## End Default Options ##,
el bloque de instrucciones para hacer que arranque nuestro kernel una vez haya terminado la compilación. Realmente es duplicar una de las entradas y ajustarlo al nombre que le hemos dado a nuestros ficheros.

title                Debian GNU/Linux, kernel 2.6.34
root               (hd0,0)
kernel            /boot/vmlinuz-2.6.34  root=/dev/ida/c0d0p1 ro
initrd              /boot/initrd.img-2.6.34
savedefault

De esta forma en caso de que nuestro kernel no arranque por algún motivo, podremos arrancar con la anterior imagen.

Reiniciar la máquina

#  reboot

Leave a comment

What’s this?

You are currently reading Compilación del Kernel de Debian at ..:::Sputnikk:::...

meta