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