Actualizando el Kernel de Linux (Parte II)

Creación del fichero de configuración

 Antes de la compilación del Kernel desde su código fuente deberemos determinar que características o funciones incluirá, esto se realiza mediante el fichero de configuración del kernel.

El fichero de configuración  se deberá guardar en /usr/src/linux/.config podemos partir desde el fichero de configuración actual copiado el fichero de configuración actual situado en /boot/config-x.x.x al directorio de trabajo /usr/src/linux/.config

El fichero de configuración contiene más de 500 opciones por lo que para generarlo existen varias opciones que nos pueden ayudar:

  • make config: Este comando generará un fichero con todas las opciones pero para ello nos irá preguntando una a una cada opción, el problema es que si nos hemos equivocado en alguna deberemos volver a repetir todo el proceso.
  • make defconfig: Creará un fichero de configuración por defecto basado en la detección del sistema operativo actual.
  • make oldconfig: Actualiza el fichero de configuración con las nuevas características el nuevo kernel.
  • make menuconfig: Muestra un menú basado en texto para seleccionar las opciones deseadas.
  • make xconfig: Para este comando es necesario tener un entorno gráfico, muestra un menú gráfico basado en QT para seleccionar las opciones deseadeas.
  • make gconfig: Muestra un menú gráfico basado en GTK para seleccionar las opciones del Kernel

En nuestro caso procederemos a copiar el fichero de configuración actual:

#cd /boot

#cp config-4.19.0-8.amd64 /usr/src/linux/.config

Y ejecutar el comando make menuconfig:

kernel config

Una vez seleccionadas las opciones con los cursores nos desplazado a la opción de «save» y guardamos la configuración en el fichero .config

Compilación del nuevo Kernel

Una vez creado el archivo de configuración ya estamos listos para compilar el Kernel, disponemos de varias opciones que generarán un archivo de imagen comprimido con gzip:

  • make zImage: Empaqueta los archivos del Kernel en una imagen para ser ejecutada en el inicio del sistema, este comando tiene la limitación de 512Kb
  • make bzImage: Es una mejora de zImage que elimina la limitación de tamaño

En Debian tenemos las posibilidad de crear un paquete para su posterior instalación utilizando el comando make dep-pkg y en Red-Hat make rpm-pkg ó binrpm-pkg para crear un binario. Esta posibilidad es útil cuando contamos con varios equipos iguales.

En nuestro caso compilaremos el kernel con make bzImage, pero antes modificaremos un parámetro del archivo .config para evitar errores de compilación dejándolo de la siguiente forma CONFIG_SYSTEM_TRUSTED_KEYS = «»

Al finalizar la compilación nos indicará donde se ha generado el achivo comprimido, generalmente en /usr/src/linux/arch/x86/boot/bzImage, este archivo deberemos copiarlo al directorio de boot

#cp /usr/src/linux/arch/x86/boot/bzImage /boot/vmlinuz-5.6.0

Además del fichero binario del Kernel también convendría copiar el archivo System.map que es usado para realizar debug al Kernel, no es necesario pero si conveniente.

#cp /usr/src/linux/System.map /boot/System.map-5.6.0

Compilación e instalación de los módulos

Después de compilar el Kernel deberemos compilar e instalar las nuevas versiones de los módulos requeridos por el nuevo Kernel.

  Por una parte compilaremos los módulos con el comando make modules

make modules

Y por otra parte los instalaremos con el comando make modules_install que instalará los módulos en la carpeta /lib/modules/5.6.0/

make modules_install

 

Actualizando el Kernel de Linux (Parte I)

Actualizando el Kernel de Linux (Parte III)