Actualizando el Kernel de Linux (Parte I)

¿Que es el kernel?

Un sistema completo de Linux se puede dividir en 4 partes:

  • Kernel de Linux
  • Utilidades GNU
  • Un entorno gráfico (si se utiliza)
  • Aplicaciones de software

Cada una de estar partes tienen una función especifica en el sistema, una de las partes sin las demás no serán muy útiles.

El Kernel de Linux es el corazón del sistema, es el encargado de controlar todo el software y hardware del sistema, permitiendo que el resto de elementos del sistema pueden coexistir.

El Kernel tiene cuatro funciones principales:

  • Manejo de la memoria del sistema
  • Control del software
  • Control del hardware
  • Control del sistema de archivos

Antes de actualizar el Kernel es imprescindible disponer de una copia de seguridad del sistema ya que es un proceso complicado en el que existen muchas variables no solo de la distribución si no también de la configuración propia de la misma.

Actualización del Kernel

En esta serie de artículos vamos a actualizar el Kernel de la distribución de Linux de Debian «buster»  a la última versión del Kernel que existe actualmente en el repositorio oficial de Kernel «www.kernel.org«.

Podemos ver la versión que actualmente tenemos instalada a través del comando uname -r

version kernel

Como veremos actualmente es la versión 4.19.0, es decir la versión 4 con su realease 19 y el parche con versión 0. Esta versión la actualizaremos a la versión 5.6.0 que es la que actualmente se encuentra en la web oficial de los repositorios de kernels.

Los pasos para la compilación serán los siguientes:

  • Obtención de los fuentes del nuevo Kernel
  • Creación del fichero de configuración basándose en el hardware del sistema.
  • Compilación del código fuente
  • Compilación e instalación de los módulos
  • Creación del disco de inicio en RAM initrd
  • Instalación del nuevo Kernel

Obtención de los fuentes del nuevo kernel

Como hemos comentado antes, el nuevo Kernel lo vamos a descargar el sitio oficial, pero también cabría la posibilidad de usar los fuentes del Kernel especifico para Debian, este último tiene la ventaja de estar configurado especialmente para la distribución de Debian y además posteriormente sería mas fácil el mantenimiento a través de parches, por otro lado está la ventaja de instalar el último Kernel que tiene todas las nuevas funcionalidades y características que se han implementado en Linux.

Las buenas prácticas de Linux nos indican la carpeta desde la cual deberemos compilar el Kernel /usr/src/linux por lo que descargaremos y descomprimiremos el Kernel en la carpeta /usr/src y posteriormente crearemos un link simbólico desde la carpeta descomprimida a /usr/src/linux:

Descargamos los fuentes y los descomprimimos:

#cd /usr/src

#wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.tar.xz

#tar xvf linux-5.6.tar.xz

Creamos el link simbólico:

#ln -s /usr/src/linux-5.6 linux

Ahora deberemos descargar e instalar todas las herramientas que necesitaremos la para compilación:

#apt-get install build-essential libncurses5-dev gcc libssl-dev bc flex bison libelf-dev

Con todo esto ya tendremos la base para poder compilar nuestro Kernel.

En nuestro caso no hace falta «limpiar» los archivos fuentes para la compilación porque aún no hemos realizado ningún intento de compilación o hemos copiado los fuentes de otro equipo, pero en el caso de que pensemos que los fuentes que tenemos no están «limpios» disponemos de las siguientes herramienta para realizar esta tarea:

  • make clean: Borra la mayoría de ficheros generados por compilaciones anteriores, pero deja los referentes a módulos externos y el archivo de configuración.
  • make mrproper:  Borra todo lo que hace make clean y además los archivos de configuración, las dependencias y cualquier archivo que haya crecado el comando make config
  • make distclean: Borra todos los ficheros creados con el comando make y todos los ficheros derivados de la configuración del fichero .config

Actualizando el Kernel de Linux (Parte II)