Como compilar el kernel Linux

Actualizado el miércoles, 24 enero, 2018

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 podéis tener un sistema estable, actualizado y que funcione sin problemas durante meses sin tener que compilar un solo núcleo, siempre y cuando utilicéis los núcleos distribuidos con vuestra distribución.

Es muy recomendable el utilizar los núcleos distribuidos por la distribución que utilicéis, ya que realmente vienen precompilados. Estos núcleos tienen muy buena calidad y son muy completos y con esto os evitáis 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.

Compilar el Kernel en Fedora/CentOS y otros derivados
Paso 1: Instalar algunos dependencias o prerequisitos

su -c 'yum groupinstall “Development Tools”'su -c 'yum install ncurses-devel qt-devel unifdef'

Paso 2: Descargar las fuentes de kernel.org del estable más reciente

cd /tmpwget

Paso 3: Descomprimir las fuentes.

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

Paso 4: Configurar el Kernel.

Hay varias formar de realizar la configuración:

  • make menuconfig: Menú basado en texto y diálogos a colores.
  • make xconfig: Gráfico (Qt), de uso preferible en KDE.
  • make gconfig: Gráfico (Gtk), de uso preferible en Gnome.

Paso 5: Compilar el Kernel.

Compilar para crear una imagen comprimida del Kernel

make

Compilar los módulos del Kernel

make modules

Instalar los módulos

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
#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 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 más reciente

cd /tmpwget

Paso 3: Descomprimir las fuentes.

mkdir /usr/src/linuxtar -xjvf version-nueva.bz2 /usr/src/linuxcd /usr/src/linux

Paso 4: Configurar el Kernel.

Hay varias formar de hacer la configuración que querramos: 
make menuconfig: Menú basado en texto y diálogos a colores. 
make xconfig: Gráfico (Qt), de uso preferible en KDE. 
make gconfig: Gráfico (Gtk), de uso preferible en Gnome.

Paso 5: Compilar el Kernel.

Compilar para crear una imagen comprimida del Kernel

make

Compilar los módulos del Kernel

make modules

Instalar los módulos 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á demás crearla.

cd /bootmkinitrd -o initrd.img-version-nueva version-nueva

Paso 8: Modificamos grub para que asuma el nuevo Kernel añadiendo 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 partición donde tenemos el sistema y, por tanto, donde tenemos el kernel y demás ficheros del sistema de arranque)

title Ubuntu GNU/Linux, kernel 2.6.36 Default 
root (hd0,0) 
kernel /boot/vmlinuz root=/dev/hda1 ro 
initrd /boot/initrd.img-2.6.36 
savedefault 
boot

Otra forma menos delicada de hacer este paso es con un comando que actualiza el archivo menu.lst y lo ajusta de forma automática.

update-grub

Y finalmente reiniciamos

shutdown -r now

Mas información: http://www.linuxfocus.org/Castellano/July2002/article252.shtml

 

Agregar comentario