5 Consejos Útiles al Compilar Tu Propio Núcleo de Linux

El Núcleo de Linux es una brillante pieza de ingeniería de software. Con más de un millón de líneas de código, es indudablemente uno de los programas más complejos que aún está en desarrollo activo hoy en día. Desde finales de los años 90, el núcleo de Linux se ha utilizado tanto en proyectos computacionales intensivos como en aplicaciones embebidas básicas.
Tabla de Contenidos
- ¿Qué es un Núcleo y Por Qué Configurarlo?
- Usa el Sistema de Ayuda
- Desactiva el Soporte HID Innecesario
- Desactiva el Soporte de Sistemas de Archivos Innecesarios
- Desactiva los Controladores Gráficos Innecesarios
- Instala Controladores como Módulos
- Preguntas Frecuentes
También lee: 5 Mejores Distribuciones de Linux-Libre para Mejorar la Seguridad
¿Qué es un Núcleo y Por Qué Configurarlo?
A pesar de todo eso, el núcleo de Linux es solo un programa que sirve como un enlace entre el hardware de tu computadora y el software que usas todos los días. Es lo que te permite usar una amplia gama de dispositivos para los programas que utilizas a diario.
Un ejemplo de este enlace hardware-software es la Arquitectura de Sonido Avanzada de Linux (ALSA). ALSA es un marco de controladores de sonido que está integrado en el núcleo de Linux. Te permite, entre otras cosas, instalar fácilmente una tarjeta de sonido y configurarla para que funcione inmediatamente con tu programa favorito.

Sabiendo esto, el núcleo de Linux es un programa que es en gran parte desconocido para el usuario regular. En su mayoría, cada vez que instalas una distribución, a menudo obtienes un núcleo que funcionará de inmediato. Esto puede ser útil si solo buscas hacer que tu sistema funcione.
Sin embargo, si estás utilizando distribuciones como Arch y Gentoo, poder configurar tu núcleo es beneficioso a largo plazo. Por ejemplo, habilitar solo las características que deseas puede acelerar los tiempos de arranque.
Con eso, este artículo tiene como objetivo proporcionar cinco consejos útiles al compilar tu propio núcleo de Linux.
Nota: Consulta este artículo para descubrir cómo comenzar a compilar tu propio núcleo.
1. Usa el Sistema de Ayuda
Una de las características más útiles al configurar tu núcleo de Linux es el sistema de ayuda. Esta es una función integrada a la que puedes acceder mientras estás dentro del Menú de Configuración del Núcleo. En eso, esto te permite ver una descripción de cada característica y controlador que puedes instalar en tu núcleo.

Para usar este sistema, todo lo que necesitas hacer es presionar Shift + / mientras resaltas una opción particular del núcleo. A partir de ahí, el Menú de Configuración imprimirá una breve diapositiva de lo que hace esa característica. Por ejemplo, puedo presionar Shift + / en la opción “Soporte PCI” para ver todas las opciones que necesito habilitar para usarlo.

Con eso, también puedes usar el mismo sistema de ayuda para buscar información sobre características particulares del núcleo. Esto puede ser especialmente útil si deseas saber más sobre todas las opciones que requiere una característica específica.
Para hacer esto, puedes presionar / mientras estás dentro del Menú de Configuración. Esto, a su vez, mostrará un pequeño aviso donde puedes escribir el nombre de una opción particular. Por ejemplo, puedo presionar / y luego escribir “PCI” para buscar opciones que usen la bandera PCI.

También lee: ¿Qué es Gentoo Linux y Cómo Instalarlo?
2. Desactiva el Soporte HID Innecesario
El Núcleo de Linux a menudo se jacta de ser un software con soporte de hardware casi universal. En eso, a menudo estás seguro de que podrá manejar cualquier dispositivo que conectes a él.

Sin embargo, un problema con este enfoque es que incluir cada bit de soporte aumenta el tamaño y la huella general del núcleo. Esto, a su vez, puede llevar a binarios lentos que los hackers maliciosos pueden explotar fácilmente y romper.
Una forma de lidiar con este problema es eliminar el soporte de hardware que no utilizas en tu máquina. Por ejemplo, el núcleo de Linux incluye soporte para Firewire en su configuración predeterminada. A pesar de eso, la mayoría de las máquinas hoy en día no incluyen un puerto Firewire por defecto.

Sabiendo esto, una forma rápida de ver qué dispositivos de hardware puedes desactivar es revisando la sección “Controladores HID Especiales”. Esta es una categoría a la que puedes acceder bajo “Controladores de Dispositivos” y “Soporte HID” en el Menú de Configuración. Aquí, el núcleo enumerará todos los dispositivos raros y inusuales que puede soportar.

Con eso, también puedes usar Shift + / y / para buscar cada opción listada en esta sección. Por ejemplo, puedo seleccionar “Dispositivos ELECOM” y presionar Shift + / para ver qué hace esa opción.

Luego puedes seleccionar los dispositivos que deseas y presionar N para desactivar sus características. En mi caso, desactivar todas las funciones de soporte HID Especial ya que no utilizo ninguno de estos dispositivos.

También lee: 5 de las Mejores Distribuciones de Linux para Desarrolladores y Programadores
3. Desactiva el Soporte de Sistemas de Archivos Innecesarios
Otra forma rápida de reducir el tamaño de tu núcleo es eliminar el soporte para sistemas de archivos que no utilizas. Por defecto, el núcleo de Linux se construye con soporte opcional para la mayoría de los tipos de sistemas de archivos. Estos incluyen el antiguo BSD FFS, así como algunos de los sistemas de alto rendimiento como BTRFS.

En su mayoría, un usuario regular solo utiliza realmente un puñado de sistemas de archivos para el uso diario. Por ejemplo, un sistema Linux generalmente utiliza EXT2, EXT4, FAT32 y NTFS para todo su almacenamiento de datos. Como tal, es posible eliminar el soporte para otros sistemas de archivos y obtener una cantidad razonable de rendimiento extra del núcleo.
Para eliminar el soporte de sistemas de archivos innecesarios en el núcleo, todo lo que necesitas hacer es ir a la categoría “Sistemas de Archivos”.

Desde allí, puedes seleccionar los sistemas de archivos que deseas eliminar de tu sistema resaltándolos y presionando N. En mi caso, solo dejaré soporte para EXT2, EXT3, EXT4 y JFS.

4. Desactiva los Controladores Gráficos Innecesarios
Además de desactivar tanto el soporte HID Especial como el de Sistemas de Archivos, también puedes usar el Menú de Configuración para eliminar cualquier controlador gráfico que no utilices. Esto se debe a que el núcleo de Linux agrupa soporte para la mayoría de los dispositivos gráficos modernos. Esto significa que incluso si tu máquina no utiliza una tarjeta gráfica, tu núcleo seguirá funcionando como si tuvieras una.

Similar a lo anterior, esto resulta en un binario del núcleo que ejecuta características que no necesariamente necesitas. Esto, a su vez, puede ser un problema si estás ejecutando Linux en hardware antiguo o débil.
Para eliminar el soporte gráfico innecesario, primero necesitas ir a la sección “Controladores de Dispositivos” del Menú de Configuración. Desde allí, debes desplazarte hacia abajo y seleccionar “Soporte Gráfico”.

Una vez hecho esto, el núcleo mostrará una lista de todo el hardware gráfico para el cual proporciona un controlador. Desde aquí, puedes presionar Y o N para habilitar o deshabilitar un controlador particular.
En mi caso, solo habilitaré tanto el “Gráficos Intel 8XX” como el “Framebuffer Intel GMA500” ya que estos son los únicos dispositivos gráficos presentes en mi laptop.

También lee: 9 de las Mejores Distribuciones de Linux para Usuarios de Windows
5. Instala Controladores como Módulos
Por último, una de las mejores características del núcleo de Linux es su capacidad para eliminar partes de sí mismo y recargarlas como módulos. Este enfoque no solo reduce el tamaño del núcleo, sino que también te permite ser flexible con las características del núcleo.
Por ejemplo, puedes convertir tu controlador inalámbrico en un módulo que te permite actualizarlo sin recompilar el núcleo. Como tal, los módulos pueden ser especialmente útiles para los usuarios que desean tener un núcleo rápido pero también quieren mantener la excelente compatibilidad de hardware de Linux.

Para convertir características integradas en módulos, necesitas ir a la sección y opción que deseas convertir en un módulo. Por ejemplo, para convertir mi controlador inalámbrico, necesito ir a la sección “Soporte de Redes” y luego “Inalámbrico”.

Desde allí, puedo presionar M en los controladores “cfg80211” para convertirlos en un módulo del núcleo.

Una vez hecho esto, puedes presionar Esc seis veces para salir del Menú de Configuración. Esto, a su vez, mostrará un aviso que te preguntará si deseas guardar los cambios que realizaste. En mi caso, seleccionaré “Sí”.

Con eso hecho, ahora puedes compilar una versión del núcleo de Linux con las características que deseas ejecutando el siguiente comando:
make&&make modules_install
makeinstall
También lee: 5 Herramientas para Crear Fácilmente una Distribución de Linux Personalizada
Preguntas Frecuentes
¿Es posible conocer los controladores de dispositivos que necesita mi núcleo de Linux?
¡Sí! Un obstáculo para los usuarios que recién comienzan a compilar su propio núcleo es conocer el tipo exacto de hardware que están utilizando. Aunque esto puede parecer una tarea difícil, hay un montón de programas que puedes usar ahora para facilitar este proceso.
Por ejemplo, puedes usar tanto lspci como lsusb para ver todos los periféricos de hardware conectados en tu máquina. Además, también puedes ejecutar el comando sudo dmesg para verificar si el núcleo lee correctamente tus dispositivos.
¿Es posible recuperar una característica que eliminé del núcleo de Linux?
¡Sí! Es posible reinstalar una característica una vez que la has eliminado del núcleo de Linux. Para hacer esto, necesitas volver al Menú de Configuración y presionar Y o M en la característica que deseas volver a habilitar. Hacer esto le dirá al núcleo que incluya esa característica particular ya sea como integrada o como un módulo.
Con eso hecho, luego necesitas recompilar el núcleo para crear un binario con todas las nuevas características. Para hacer esto, necesitas guardar y salir del menú de configuración presionando Esc seis veces. Desde allí, ahora puedes comenzar a recompilar el núcleo ejecutando make.
¿Cuándo debo instalar una característica del núcleo de Linux como un módulo?
Instalar características como módulos dependerá en gran medida de lo que necesites de tu núcleo. Sabiendo eso, una buena regla general es que solo debes crear módulos para características que no son críticas para el proceso de arranque.
Esto se debe a que, en su núcleo, el núcleo de Linux depende de poder arrancar como una sola imagen. Por ejemplo, eliminar partes críticas como el soporte multiprocesador puede llevar a una situación en la que tu núcleo se vuelva inarrancable.
Debido a eso, los componentes del núcleo que comúnmente se convierten en módulos son ya sea controladores gráficos y otros controladores de hardware o interfaces de red.
Crédito de la imagen: Unsplash