Compilando el Kernel

En Debian y Ubuntu existe el comando:

apt-get build-dep «paquete»

el cual te baja e instala automáticamente cualquier dependencia necesaria para poder compilar ese paquete. De esa forma, no debería aparecer ningún error de alguna librería faltante al compilar el paquete.

En el caso del kernel, hay otra forma. Si se está usando Debian o Ubuntu y uno quiere compilar el Kernel, hay que instalar (al día de la fecha) los paquetes:

  • linux-source-2.6.20 en Ubuntu
  • linux-source-2.6.18 en Debian

Existe una interfaz web con una base de datos de todos los paquetes disponibles en ambas distribuciones:

Debian:
http://packages.debian.org/stable/devel/linux-source-2.6.18

Ubuntu:
http://packages.ubuntu.com/feisty/devel/linux-source-2.6.20

Por otro lado (siguiendo con Debian y Ubuntu), en el directorio /boot están los archivos config-*, los cuales son los archivos de configuración utilizados para compilar el kernel que se te instala automáticamente con la distrubución:

# ls /boot/config-*
/boot/config-2.6.15-1-amd64-k8
/boot/config-2.6.17-2-amd64
/boot/config-2.6.18-3-k7
/boot/config-2.6.18-4-k7
/boot/config-2.6.8-2-386

Estos archivos no es obligatorio que estén acá si uno está compilando su propio kernel, pero si es recomendable hacerlo ya que siempre tenés a mano la configuracion usada para compilar ese kernel. (sino, podrías perderlo en el caso de que tengas que borrar /usr/src/* por cuestiones de espacio libre en disco).

Una forma muy práctica y fácil de poder recompilar uno mismo el Kernel y estar lo más seguro posible de que va a funcionar es: copiarse el archivo de configuracion del kernel que ya tenemos funcionando, y usarlo para recompilar el nuestro propio:

# Ubuntu
apt-get install linux-source libncurses5-dev build-essential

# Debian
apt-get install kernel-package linux-source-2.6.18 fakeroot libncurses5-dev build-essential

# Común a ambas
cd /usr/src/linux

# el archivo de configuracion se guarda en:
# /usr/src/linux/.config

cp /boot/config-`uname -r` .config

Llegado a este punto podemos hacer todas las modificaciones que queramos al código fuente, como aplicarle parches o instalar drivers adicionales. Para compilar el kernel y generar la imagen correspondiente hay dos formas: la forma normal o la forma Debian.

Para compilar el kernel usando la forma normal hay que hacer una metralla de comandos make’s dentro de la raíz del código fuente del Kernel (/usr/src/linux):

make menuconfig
make dep
make bzimage
make modules
make modules_install

Ahora: a esperar. Por lo general el Kernel que te viene con Debian o Ubuntu trae todo lo que puede llegar a traer para que le funcione a la mayor cantidad de personas posibles. Eso significa que puede tardar mucho tiempo en compilar.

Una vez compilado el Kernel se puede copiar la imagen a mano (arch/*/bzimage) dentro del directorio /boot. El último make es responsable de copiar los modulos al directorio correspondiente (/lib/modules/), por lo que no hay que hacer nada más al respecto.

Para compilar el kernel usando la forma Debian (ya sea si estás usando Debian o Ubuntu), hay que hacer también dentro de la raíz del código fuente del Kernel (/usr/src/linux) lo siguiente:

make-kpkg –rootcmd fakeroot kernel_image

La forma Debian es obviamente mucho más fácil y, además, nos genera un paquete .deb dentro de /usr/src listo para instalar o distribuirlo a otras PC’s:

cd /usr/src
dpkg -i \
linux-image-2.6.24_2.6.24-10.00.Custom_i386.deb

Saludos :)

4 Responses to “Compilando el Kernel”

  1. Lilo78 Says:

    Puedes empaquetar tu propio kernel*.deb Saludos! :)

  2. Alejandro Says:

    Si bien usé una sola vez linux, y fué un Live CD (Knoppix), creo que algo entendí :D

    Me alegra saber que mi IQ basta y sobra para saber interpretar eso.

    Saludos Alejo, ahora podemos vernos en el foro de Alkon, nick Nightw :)

    Ale.

  3. erick Says:

    Hola, antes que nada, felicitaciones, muy buen blog. Tengo una pregunta. El kernel mas reciente para etch es 2.6.18 ? Mi pregunta es por que siempre he tenido un problemillas al momento de montar la particion windows (soy un novato en linux ) entonces, la logro montar en modo lectura y escritura, pero por alguna razon, no puedo crear archivos o carpetas en dicho montaje. Solamente editar los archivos, eso si, sin problemas.
    Con el afan de querer resolver ese problema, me tope con la tool ntfs-3g por lo cual me dispuse a bajarla junto con el fuse 2.6 que es la version que necesitaba. Bueno, todo iba bien. Segui las instrucciones pero al final, cuando quise montar como me dicen, me salio un mensaje diciendome que mi kernel es deficiente que necesito 2.6.20 minimo. Es por eso que buscando me tope con este post, ya que quiero actualizar mi kernel, pero creo ( y casi estoy seguro que estoy mal ) que para debian etch no hay kernel 2.6.20 verdad. Gracias de antemano. Saludos

  4. alejolp Says:

    Actualizado usando make-kpkg

    cualquier problema no duden en preguntar!

    Saludos

Leave a Reply

Powered by WP Hashcash