Compilar el kernel a lo tradicional

2 minute read

kernel


Existen varias razones para compilar un kernel. Por ejemplo puedes estar interesado en agregar un nuevo hardware o funcionalidad a tu computadora, o entonar tu sistema para tener un servicio o aplicación más confiable. Cualquiera que sea tu razón, aquí tienes las instrucciones para compilar el kernel de la forma tradicional.

Requisitos

Como vas a compilar un kernel, necesitarás algunos archivos y compiladores. También necesitarás ncurses para desplegar diálogos en una consola. En Debian puedes instalar todo esto escribiendo:

aptitude install build-essential libncurses5-dev

Directorio de trabajo

Es común usar el directorio /usr/src/ al momento de compilar el kernel, controladores y módulos. Entonces, entra a ese directorio:

cd /usr/src/

Procedimiento

Necesitarás las fuentes del kernel para compilarlo. Estas pueden obtenerse desde los repositorios de la distribución o desde kernel.org directamente. En Debian tendrás un archivo tar en el directorio /usr/src/ al instalar el siguiente paquete:

aptitude install linux-source-2.6.30

Si quieres descargarlas desde kernel.org sería algo como esto:

wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.bz2

Ahora descomprime el archivo tar:

tar xfjv linux-source-2.6.30.tar.bz2

De existir por compilaciones previas, borra el enlace linux:

rm linux

Ahora crea un enlace al directorio descomprimido. Si descargaste las fuentes desde Debian esto sería:

ln -s linux-source-2.6.30 linux

Si las descargaste desde kernel.org, debes escribir:

ln -s linux-source-2.6.30 linux

Entra al directorio linux:

cd linux

Si has compilado otros kernels es buena idea limpiar todo antes de comenzar a compilar el kernel nuevo:

make mrproper

Procede ahora a configurar las opciones de tu kernel. Para hacer esto, puedes usar make config (una interfaz interactiva pero algo molesta), make menuconfig (basada en mcurses). Yo sugiero usar la segunda opción:

make menuconfig

Verás una ventana similar a la mostrada arriba (la imagen principal del artículo). Desde ahí podrás seleccionar nuevas características para tu kernel, y decirle que las compile como módulo o como parte del kernel. Luego de que hayas seleccionado las opciones, escoge Exit para escribir el archivo .config.

En este punto ya has configurado tu kernel, para compilarlo escribe lo siguiente:

make

Este paso puede tardar mucho según las opciones que hayas escogido. Una vez que haya finalizado (y si no hubo errores) procede a instalar la imagen compilada y sus módulos:

make install
make module_install

Debes crear una pre-imagen, conocida como initramfs, para ayudar a tu kernel a cargar al momento de iniciar la máquina. Para crear esta pre-imagen para tu kernel escribe lo siguiente:

mkinitramfs -o /boot/initrd.img-2.6.30 2.6.30</pre>

Ahora edita grub (o cualquier bootloader que estés usando) para arrancar por el kernel compilado. Esto lo puedes hacer de forma manual, o si estás en Debian la orden update-grub lo hace por ti de forma automática:

update-grub

Finalmente, reinicia la computadora y selecciona tu kernel recién compilado.

Leave a Comment