Cómo instalar y compilar el kernel en Debian y Ubuntu.

Anuncio

El kernel es el componente central de un sistema operativo y sirve como interfaz principal entre el hardware físico de la computadora y los procesos que se ejecutan en ella a través del software. En otras palabras, podríamos definir el kernel como el corazón o núcleo del sistema operativo.

Uno de los mayores atractivos del uso de Linux es su fácil personalización y una de las cosas más divertidas de personalizar es el propio Kernel, el corazón del sistema operativo Linux.

Lo más probable es que nunca tengas que compilar tu propio kernel. El que viene con su distribución y las actualizaciones a través de su sistema de administración de paquetes suele ser suficiente, pero hay ocasiones en las que puede ser necesario recompilar el kernel.

Algunas de estas razones pueden ser necesidades especiales de hardware, el deseo de crear un kernel monolítico en lugar de uno modular, optimizar el kernel eliminando controladores inútiles, ejecutar un kernel de desarrollo o simplemente aprender más sobre Linux.

En este caso, vamos a compilar un kernel recién lanzado en sistemas Debian que incluye varias características nuevas, como nuevos controladores para las tarjetas gráficas, y ofrece mejoras significativas al sistema de archivos.

Vídeo sobre: Compilando kernel 6,6 LTS en Linux Mint 21.3 Virginia con kernel base 5.15 con éxito:

Instalar dependencias necesarias para la compilación del kernel:

Para comenzar, necesitaremos algunos paquetes, a saber, build-essential y kernel headers.

$ sudo apt update
$ sudo apt install build-essential linux-headers-$(uname -r)
$ sudo apt install autoconf automake autotools-dev dh-make debhelper debmake devscripts dpkg fakeroot file gfortran git gnupg fp-compiler lintian patch pbuilder perl quilt xutils-dev pkg-config python-is-python3 2to3 dwarves

Ahora, visite el sitio web oficial del kernel para descargar la versión del kernel deseada en https://www.kernel.org/. Yo he escogido el Kernel longterm 6.6.23 2024-03-26 para la roca de Debian Linux 12 a fecha de 02/04/2024 porque los «Kerneles de Linux» de «Largo plazo (Longterm)» son aquellos que proporcionan un soporte de correcciones de errores y mantenimiento por un tiempo sumamente largo (años) y así beneficiar también a los «Kerneles de Linux» más antiguos.

Alternativamente, puede usar los siguientes comandos para descargar la fuente directamente y descomprimir el archivo.

$ wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.23.tar.xz
$ tar -xvf linux-6.6.23.tar.xz
$ cd linux-6.6.23/

Instalamos unas dependencias para que funcione localmodconfig en Debian 12, mxlinux:

$ sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf

Ahora creamos el archivo de configuración .config con este comando dentro del directorio linux-6.6.23/ en caso de que no esté creado dando a todo intro:

$ sudo make localmodconfig

Ahora necesitaremos configurar el kernel; es recomendable comenzar con la configuración actualmente en uso y desarrollarla. Para lograr esto, copiaremos la configuración existente del directorio /boot al directorio de trabajo actual y la guardaremos como .config .

$ sudo cp /boot/config-$(uname -r) .config

Instalando y compilando el kernel nuevo en Debian.

Para comenzar con el proceso de configuración real, tiene una de dos opciones.

  • Si tiene X11 instalado, puede ejecutar make xconfig y tener un agradable menú GUI para ayudarlo a configurar su Kernel.
  • Si está ejecutando en un entorno CLI, puede ejecutar make menuconfig, pero necesitará tener instalado el paquete libncurses5-dev para usarlo.
  • Si utiliza un entorno cli, asegúrese de instalar el paquete libncurses5-dev para iniciar el proceso de configuración del kernel como se muestra.
$ sudo apt install libncurses5-dev
$ sudo make menuconfig

Como verás, una vez que estés en la configuración de tu elección, hay un montón de opciones diferentes disponibles para tu Kernel. De hecho, hay demasiados para el alcance de este tutorial.

Al seleccionar las opciones del Kernel, la mejor manera es mediante prueba y error, y buscando mucho en Google, que es la mejor manera de aprender. Si simplemente está intentando actualizar su Kernel a la versión más reciente, no tiene que cambiar nada y simplemente puede seleccionar «Guardar configuración«. Desde que copiamos el archivo de configuración del kernel actual al archivo .config del nuevo kernel.

Tenga en cuenta que «Cargador de módulos kernel» está seleccionado en «Soporte de módulos cargables«. Si no es así y está utilizando módulos del kernel, puede estropear seriamente las cosas.

NOTA: Para Ubuntu Linux y Linux Mint

Si encuentra este error durante la compilación, se debe a lo siguiente: El programa que está tratando de compilar usa OpenSSL, pero faltan los archivos de desarrollo necesarios (bibliotecas y archivos de encabezado) necesarios para vincular con OpenSSL en su plataforma Linux. Para instalar el paquete de desarrollo OpenSSL en Debian, Ubuntu o sus derivados:

$ sudo apt-get install libssl-dev

Error fatal: libelf.h: No se finalizó la compilación de dicho archivo o directorio porque la ruta no existe. Para instalar el paquete de desarrollo libelf en Debian, Ubuntu o sus derivados:

$ sudo apt install libelf-dev

Después de ejecutar «make menuconfig», si recibe el error de certificado: make[1]: *** No rule to make target ‘debian/canonical-certs.pem’, needed by ‘certs/x509_certificate_list’. Stop. , ejecute lo siguiente en la raíz de la fuente del kernel:

$ scripts/config --disable SYSTEM_TRUSTED_KEYS
$ scripts/config --disable CONFIG_SYSTEM_REVOCATION_KEYS

FIN NOTA

Ahora inicie el proceso de compilación del kernel usando los siguientes comandos, que compilarán el kernel, instalarán los módulos y copiarán los archivos necesarios al directorio de inicio.

Anuncio

Si quiere personalizar el nombre del kernel nuevo puede usar:

$ sudo make LOCALVERSION=-0-amd64
$ sudo make
$ sudo make modules_install
$ sudo make install

Si quieres compilar en vez con 1 núcleo del procesador por defecto a utilizar todos los núcleos de tu procesador para que sea más rápida la compilación del kernel, lo primero consultaremos cuantos núcleos tiene nuestro procesador con este comando:

// npro o nproc
$ npro
8

Modificaremos la orden anterior para que sea más rápida y corra la compilación e instalación del kernel con todos los núcleos del procesador con la orden -j8:

Si quiere personalizar el nombre del kernel nuevo, puede usar:

$ sudo make -j8 LOCALVERSION=-0-amd64
$ sudo make -j8
$ sudo make modules_install -j8
$ sudo make install -j8

Este es el error que me ha dado a mí al compilar e instalar kernel 6.1.90 LTS en MX-Linux

En caso de tener varios ordenadores con idéntico hardware y sistema operativo, nos puede interesar crear los paquetes deb para posteriormente instalar en varios sistemas debian y ahorrarnos las compilaciones tan largas ahorrando tiempo.

En caso de desear generar «paquetes .deb» del nuevo «Kernel de Linux» compilado e instalado, ejecute la siguiente orden de comando:

$ sudo apt install libelf-dev
$ sudo make -j8 bindeb-pkg LOCALVERSION=-0-amd64

Listaremos el contenido del directorio padre, /home/ojosdegato (pues es donde se genera por defecto):

Nos interesan los 2 paquetes Deb y no instalaremos la depuración del kernel:

$ sudo dpkg -i linux-headers-6.6.23_6.6.23-6_amd64.deb && sudo dpkg -i linux-image-6.6.23_6.6.23-6_amd64.deb

Actualice el GRUB para reflejar los cambios de la compilación.

$ sudo update-grub
$ sudo update-grub2 
$ sudo update-initramfs -u

Una vez instalado, simplemente reinicie y seleccione el nuevo kernel en el menú de GRUB.

Asegúrese de prestar mucha atención a cualquier mensaje de error durante el proceso de inicio para que pueda solucionar cualquier problema.

Comprobar el éxito de la compilación e instalación del kernel nuevo.

Para verificar la nueva versión del kernel en Debian, puede usar el siguiente comando en la terminal.

$ uname -r
6.6.23-0-amd64

Si desea ver una lista de kernels instalados, puede verificar el contenido del directorio /boot:

$ ls /boot

Eliminar el kernel antiguo en Debian:

Para eliminar kernels antiguos en Debian, primero debe enumerar los kernels instalados para identificar los que desea eliminar usando el comando dpkg.

$ dpkg --list | grep linux-image

Para eliminar un kernel antiguo, usa el siguiente comando apt y asegúrate de reemplazar linux-image-OLD_VERSION con el número de versión del kernel que desea eliminar.

// sudo apt purge linux-image-OLD_VERSION
$ sudo apt purge linux-image-6.1.0-18-amd64
$ sudo apt purge linux-headers-6.1.0-18-amd64

Después de eliminar los núcleos antiguos, actualice GRUB para reflejar los cambios.

$ sudo update-grub
$ sudo update-grub2 
$ sudo update-initramfs -u

En conclusión, compilar un kernel en Debian es una habilidad valiosa que permite a los usuarios adaptar su sistema operativo a necesidades específicas, incorporando las últimas funciones y optimizaciones.

Para realizar esta actualización del Kernel Linux en la versión linux-6.6.23 en Debian 12 y, trabaje, he dedicado una tarde en realizar esta documentación para colaborar con la comunidad mundial linuxera y lo más importante es que funciona.

Nuestra puntuación
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)
Anuncio
Comparte en las redes sociales...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos
ResponsableJavier Cachón Garrido +información...
FinalidadGestionar y moderar tus comentarios. +información...
LegitimaciónConsentimiento del interesado. +información...
DestinatariosAutomattic Inc., EEUU para filtrar el spam. +información...
DerechosAcceder, rectificar y cancelar los datos, así como otros derechos. +información...
Información adicionalPuedes consultar la información adicional y detallada sobre protección de datos en nuestra página de política de privacidad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Scroll al inicio

Descubre más desde javiercachon.com

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo