
COMPILAR E INSTALAR UN KERNEL PERSONALIZADO PARA DEEPIN
Compilar un kernel personalizado es una de las experiencias más gratificantes para los entusiastas de GNU/Linux y los administradores de sistemas. Si bien el kernel predeterminado de Deepin funciona bien para la mayoría de los usuarios, existen razones convincentes para crear nuestro kernel propio. Esta guía completa le guiará a través de todo el proceso, desde la descarga del código fuente hasta el arranque en su kernel personalizado.
El kernel de Linux es el componente central del sistema operativo Linux, que actúa como interfaz entre el hardware y el software de la computadora. Administra los recursos del sistema, los procesos, la memoria y los controladores de dispositivos, lo que permite que el sistema operativo funcione de manera eficiente.
¿POR QUÉ COMPILAR UN KERNEL PERSONALIZADO?
¿POR QUÉ NO COMPILAR UN KERNEL PERSONALIZADO?
P U B L I C I D A D
Nuestros anuncios no son intrusivos y nos ayudan a permanecer en línea. Por favor apóyanos por medio de no bloquear los anuncios
REQUERIMIENTOS:
VERSIONES DEL KERNEL:
sudo apt install -y build-essential libncurses-dev bison flex libssl-dev libelf-dev
sudo apt install -y bc dwarves zstd git
sudo apt install -y fakeroot dpkg-dev
sudo apt install -y ccache
sudo apt install -y exuberant-ctags xz-utils debhelper console-setup libdw-dev
A continuación vamos a generar la siguiente estructura de directorios para tener organizados nuestros kernels. Esta estructura nos permitirá tener separadas fuentes de archivos compilados. De manera que podamos realizar varias versiones del mismo kernel con diferentes módulos si lo deseamos.
cd && mkdir kernel && cd kernel && mkdir src && cd src
Esto creará la siguiente estructura en el home de nuestro sistema (usuario):
~/kernel/
→ src
Y nos dejará posicionados en el directorio ~/kernel/src donde trabajaremos a continuación.
Descargar el archivo tarball seleccionado de la versión estable, longterm o mainline de código fuente del kernel de https://kernel.org
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.28.tar.xz
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.28.tar.sign
Las firmas “.sign”son para asegurar la autenticidad de los archivos descargados. Contienen datos criptográficos utilizados para verificar la autenticidad e integridad de un archivo sin alterar el archivo original. Esto significa que la firma se almacena por separado del documento principal. Cuando se combina con su archivo asociado, la firma ayuda a verificar si el archivo se ha modificado después de la firma.
Para comprobar que el archivo no ha sido modificado, vamos a importar las firmas de los desarrolladores principales de las distintas versiones de kernel.
gpg --locate-keys [email protected] [email protected]
Una vez importadas las firmas de los desarrolladores, tenemos que verificar contra el archivo tar sin la compresión adicional que fue proporcionada con la extensión “.xz”, que redujo hasta en un 70% los archivos descargados originalmente.
Antes de continuar, procedemos a evitaremos un error de permisos para la carpeta .gnupg que resolveremos de la siguiente manera.
Permisos de carpeta .gnupg de lectura, escritura y ejecución solo para el usuario dueño
find ~/.gnupg -type d -exec chmod 700 {} \;
Permisos de carpeta .gnupg de lectura, escritura y ejecución solo para el usuario dueño
find ~/.gnupg -type f -exec chmod 600 {} \;
Procederemos a verificar la firma “.sign”.
xz -cd linux-6.18.28.tar.xz | gpg --verify linux-6.18.28.tar.sign -
Esto nos arrojará el resultado:
gpg: Signature made sáb 11 abr 2026 06:31:06 CST
gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
gpg: Good signature from "Greg Kroah-Hartman [email protected]" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 647F 2865 4894 E3BD 4571 99BE 38DB BDC8 6092 693E
El mensaje de advertencia (WARNING) indica que la clave GPG que está utilizando no ha sido verificada por un tercero. Esto significa que, si bien la clave puede ser válida, no hay garantía de que realmente pertenezca a la persona o entidad que dice representar. Pero indica que, en efecto, la firma fue generada con el kernel descargado y el desarrollador de kernel.org referenciado.
Procederemos a extraer el contenido del archivo comprimido “.tar.xz” como usuario sin privilegios, que es en sí el código fuente del kernel con el que estaremos trabajando, compilando y usando en nuestro sistema.
tar -xf linux-6.18.28.tar.xz
Una vez descomprimido el archivo ingresamos al directorio con el código fuente utilizando:
cd linux-6.18.28
Ejecutaremos el siguiente comando para eliminar la configuración actual y todos los archivos generados anteriormente, por si tenemos archivos generados de compilaciones anteriores. Al ejecutar make mrproper, no es necesario ejecutar make clean. Este último no borra el archivo de configuración si este existe.
make mrproper
Copiaremos el archivo que contiene la configuración actual de nuestro kernel que está ejecutándose actualmente en el subdirectorio donde quedarán los archivos compilados. Esto es muy importante ya que usaremos la misma configuración para evitar inconvenientes. Aquí necesitamos usar sudo para poder acceder al archivo.
sudo cp -v /boot/config-$(uname -r) .config
Ahora generaremos la configuración:
El siguiente paso es generar la configuración del kernel con el archivo que copiamos y vamos a configurar las nuevas opciones o símbolos del kernel con su valor por omisión sin preguntar de forma interactiva:
make olddefconfig
Si queremos responder de forma interactiva a cada una de las nuevas opciones o símbolos del kernel, usaremos oldconfig. Si en su lugar queremos generar una nueva configuración predeterminada con la arquitectura de nuestro sistema, usaremos defconfig. Esta última opción borrará nuestra configuración actual. La opción localmodconfig actualiza nuestra configuración deshabilitando todos los módulos que no han sido cargados.
Finalmente si queremos entrar al menú para habilitar específicamente algún módulo, opción o símbolo ejecutaremos make menuconfig lo cual nos dará un menú de opciones donde podemos buscar los módulos o opciones que requerimos y habilitarlas o en su defecto deshabilitarlas.
Ahora si la tenemos, preparemos una base con ventiladores para nuestro equipo, o lo que sea necesario para enfriar el equipo ya que usaremos todos los procesadores de nuestro equipo para compilar el kernel utilizando nproc. El comando nproc nos da el número de procesadores del equipo. La siguiente instrucción compila el kernel utilizando todos los procesadores de nuestro equipo. Si el equipo se calienta demasiado, se puede apagar o congelar. Esto no afecta en absoluto a nuestro kernel actual. Ninguna de las dos opciones requiere actualizar grub. Pues lo hace en automático al instalar el kernel. Solo en el caso de eliminar el kernel es necesario actualizar grub.
TENEMOS DOS OPCIONES:
OPCIÓN 1:
make bindeb-pkg -j$(nproc)
Esto compilará y depositará los archivos .deb en la carpeta atrás a donde compilamos. Una vez terminado el proceso instalamos y reiniciamos ejecutando:
sudo apt install -y ./linux-headers-6.18.28-amd64-desktop-rolling_6.18.28_amd64.deb ./linux-image-6.18.28-amd64-desktop-rolling_6.18.28_amd64.debesktop-rolling_6.18.28_amd64.deb
systemctl reboot -i
OPCIÓN 2:
make -j$(nproc)
Cuando termine, compilaremos los módulos del kernel utilizando el siguiente comando:
make INSTALL_MOD_STRIP=1 modules_install -j$(nproc)
El parámetro INSTALL_MOD_STRIP=1 nos permitirá reducir el tamaño de los módulos del kernel al eliminar los símbolos de depuración. De lo contrario, la imagen del kernel será demasiado grande, lo que hace que muchos equipos no puedan iniciar.
Instalamos los headers, el kernel y reiniciamos. Nota: Cerrar y guardar todo antes de reiniciar.
sudo make headers_install -j$(nproc)
sudo make install -j$(nproc)
systemctl reboot -i
Finalmente, y para verificar que el nuevo kernel está instalado y funcionando, ejecuta en un terminal.
uname -r
Si instalamos usando la opción 1 ejecutamos:
sudo apt remove --purge linux-headers-6.18.28-amd64-desktop-rolling linux-image-6.18.28-amd64-desktop-rolling
Si instalamos usando la opción 2, ejecutamos:
sudo rm -v /boot/{config-,initrd.img-,System.map-,vmlinuz-}6.18.28-amd64-desktop-rolling
sudo rm -rf /lib/modules/6.18.28-amd64-desktop-rolling
sudo rm -rf /usr/src/linux-headers-6.18.28-amd64-desktop-rolling
sudo update-grub
systemctl reboot -i
Finalmente, y para verificar que has retornado el sistema al kernel anterior , ejecuta el siguiente comando para ver cuál es la versión presente.
uname -r
Por lo expresado anteriormente, creemos que realmente se justifica la compilación de un kernel, cuando se requiera agregar módulos o drivers específicos que no estén presentes en la versión existente en el sistema; Lo que nos da pie a un futuro artículo donde explicaremos cómo llevar a cabo esta tarea para intentar que algún componente de nuestro hardware cambie a un estado funcional.
Ten en cuenta que las versiones del kernel utilizadas en los comandos refieren a una versión específica utilizada para el tutorial . Por lo que deberás modificarlas a tu conveniencia; además, por razones de seguridad, hemos omitido el uso del comando sudo y el parámetro –no-same-permissions al momento de la descompresión del núcleo.
Si eres de los que sostienen que alguna de las razones aquí emitidas para no instalar un kernel es exagerada, les daremos un ejemplo puntual; no intentes compilar e instalar un kernel 6.19.x en estos momentos porque deepin-anything, la biblioteca que utiliza un módulo personalizado para acelerar la búsqueda de archivos en deepin, no cargará y, si hablamos de un kernel 7.x, directamente romperá el sistema. Obligando a arrancar con el kernel anterior y desinstalar el nuevo.
Finalmente aclarar que los kernel más actuales, en líneas generales, no están orientados a dar mejoras y soporte a hardware antiguo por lo que no siempre será la mejor opción, si este es tu caso. Así que aplicar el viejo refrán nunca está de más… SI FUNCIONA, NO LO TOQUES.
Fuentes: https://www.it-talent.mx/






Alex Excelente guia, gracias por compartirla.
Gracias a todo el equipo de deepin en español. Por sus observaciones y aportaciones. Abrazo.
Genial, muy bien explicado, existe muy poca información sobre como hacer este proceso.
Un buen material de estudio.
Todo muy bien explicado, excelente información.
Está bien interesante, buen trabajo
Excelente información muchachos.