You are on page 1of 5

Cmo compilar el kernel Linux en Ubuntu, Fedora, y otras.....

10/11/2010| por Claudio Concepcion|


Cuando mencionamos la palabra kernel es imposible no pensar en Linux. Y es que GNU/Linux es el sistema operativo que realmente le ha dado gran popularidad a este trmino.

A l le debemos que hayamos llegado tan profundo en la informtica verdadera (en la que se sabe ciertamente cmo se maneja la informacin en su ms bajo nivel). En la actualidad no es tan recurrente que necesitemos compilar un kernel, aunque tiempo atrs si lo era. Hoy da esto se hace por alguna necesidad especfica o por el simple hecho de aprender cmo se hace. Entre las razones existentes para compilar un kernel tenemos: Eres un desarrollador del kernel. Necesitas compilar un kernel con alguna caracterstica especial que un kernel oficial de tu distro no tiene. Te ests preparando para corregir un bug en el kernel oficial de tu distro. Tienes hardware que el kernel oficial de tu distro no soporta. Existen muchas maneras de compilar el kernel (casi una por cada distribucin). Esto significa que para cada distro, ya sea basada en Red Hat, Debian o Slackware, debemos documentarnos muy bien antes de comenzar tan importante tarea, porque si se nos queda algn mdulo excluido o incluido sin necesidad podra generar conflictos e incluso no funcionar correctamente.

Todo el proceso se puede resumir en los siguientes pasos generales para todas las distros: 1. 2. 3. 4. 5. Obtener las fuentes del kernel. Instalar las herramientas necesarias para la compilacin (gcc, build-essentials, etc.). Descomprimir las fuentes del kernel en /usr/src/ Configurar el kernel (ej. make menuconfig). Compilar (make), compilar los mdulos (make modules), instalar los mdulos, (make modules_install). 6. Instalar el kernel compilado (make install). 7. Crear la imagen (initrd) para el nuevo kernel y ajustar grub para que la encuentre. Este proceso puede ser una excelente manera de ajustar nuestro sistema para que soporte nuevo hardware o para hacerlo ms liviano quitando, cuidadosamente, mdulos que no utilizaremos. De cualquier manera es recomendable que aparte de esta gua busques la ayuda de personas ms experimentadas si tienes una buena razn para hacerlo, an si lo haces por puro placer o aprendizaje. A continuacin veremos cmo compilarlo en algunas distribuciones ms usadas.

Compilar el Kernel en Fedora/CentOS y otras derivadas


Paso 1: Instalar algunos dependencias o prerequisitos
su -c 'yum groupinstall Development Tools'su -c 'yum install ncurses-devel qtdevel unifdef'

Paso 2: Descargar las fuentes de kernel.org del estable ms reciente (2.6.36)


cd /tmpwget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2

Paso 3: Descomprimir las fuentes.


mkdir /usr/src/linuxtar -xjvf linux-2.6.36.tar.bz2 /usr/src/linuxcd /usr/src/linux

Paso 4: Configurar el Kernel. Hay varias formar de hacer la configuracin que querramos: make menuconfig: Men basado en texto y dilogos a colores. make xconfig: Grfico (Qt), de uso preferible en KDE. make gconfig: Grfico (Gtk), de uso preferible en Gnome.

Paso 5: Compilar el Kernel. Compilar para crear una imagen comprimida del Kernel
make

Compilar los mdulos del Kernel


make modules

Instalar los mdulos


make modules_install

Paso 6: Instalar el Kernel


make install

Paso 7: Modificar grub para que asuma el nuevo Kernel.


nano /boot/grub/grub.conf

Y una vez en el editor, escribir lo siguiente (suponiendo que la particin del sistema es (hd0,0), es decir, la primera de todas y que adems est en el primer disco duro. En caso de que este no sea tu escenario, debes cambiar convenientemente ese parmetro. as como los parmetros VolGroup00 y LogVol00, como detallan aqu).
#boot=/dev/sda default=1 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.35.4) root (hd0,0) kernel /vmlinuz-2.6.35.4 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.35.4.img title CentOS (2.6.36) root (hd0,0) kernel /vmlinuz-2.6.36 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.36.img

Y finalmente reiniciamos
shutdown -r now

Compilar el Kernel en Debian/Ubuntu

Paso 1: Instalar algunos dependencias o prerequisitos:


sudo apt-get install build-essential gcc libncurses5-dev

Paso 2: Descargar las fuentes de kernel.org del estable ms reciente (2.6.36. )


cd /tmpwget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2

Paso 3: Descomprimir las fuentes.


mkdir /usr/src/linuxtar -xjvf linux-2.6.36.tar.bz2 /usr/src/linuxcd /usr/src/linux

Paso 4: Configurar el Kernel. Hay varias formar de hacer la configuracin que querramos: make menuconfig: Men basado en texto y dilogos a colores. make xconfig: Grfico (Qt), de uso preferible en KDE. make gconfig: Grfico (Gtk), de uso preferible en Gnome. Paso 5: Compilar el Kernel. Compilar para crear una imagen comprimida del Kernel
make

Compilar los mdulos del Kernel


make modules

Instalar los mdulos


make modules_install

Paso 6: Instalar el Kernel


make install

Paso 7: Crear la imagen initrd. La imagen initrd contiene los controladores de dispositivos necesarios para cargar el resto del sistema operativo. No todas las computadoras requieren esto pero no est dems crearla.
cd /bootmkinitrd -o initrd.img-2.6.36 2.6.36

Paso 8: Modificamos grub para que asuma el nuevo Kernel aadiendo lo siguiente.
nano /boot/grub/menu.lst

Y una vez en el editor, escribimos lo siguiente (como en el caso anterior, tenemos que tener cuidado con la particin donde tenemos el sistema y, por tanto, donde tenemos el kernel y dems ficheros del sistema de arranque)
title root kernel initrd savedefault boot Ubuntu GNU/Linux, kernel 2.6.36 Default (hd0,0) /boot/vmlinuz root=/dev/hda1 ro /boot/initrd.img-2.6.36

Otra forma menos delicada de hacer este paso es con un comando que actualiza el archivo menu.lst y lo ajusta de forma automtica.
update-grub

Y finalmente reiniciamos
shutdown -r now

You might also like