Cómo comprobar si una opción de compilación específica del kernel está habilitada en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo determinar si una opción de compilación específica del kernel está habilitada en su sistema Linux. Exploraremos tres métodos comunes para lograr esto.

Primero, utilizará el comando zcat para inspeccionar el archivo de configuración comprimido del kernel ubicado en /proc/config.gz, que contiene las opciones utilizadas durante la compilación del kernel. A continuación, aprenderá cómo verificar estas opciones examinando los archivos de configuración que se encuentran en el directorio /boot. Finalmente, descubrirá cómo inspeccionar los registros de compilación del kernel utilizando el comando dmesg para obtener una comprensión más profunda de las características habilitadas. Al final de este laboratorio, estará equipado con las habilidades necesarias para verificar eficazmente las opciones de compilación del kernel en su sistema Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/CompressionandArchivingGroup(["Compression and Archiving"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/CompressionandArchivingGroup -.-> linux/gzip("Gzip") subgraph Lab Skills linux/ls -.-> lab-558758{{"Cómo comprobar si una opción de compilación específica del kernel está habilitada en Linux"}} linux/cat -.-> lab-558758{{"Cómo comprobar si una opción de compilación específica del kernel está habilitada en Linux"}} linux/less -.-> lab-558758{{"Cómo comprobar si una opción de compilación específica del kernel está habilitada en Linux"}} linux/grep -.-> lab-558758{{"Cómo comprobar si una opción de compilación específica del kernel está habilitada en Linux"}} linux/gzip -.-> lab-558758{{"Cómo comprobar si una opción de compilación específica del kernel está habilitada en Linux"}} end

Verificar opciones de compilación con zcat /proc/config.gz

En este paso, aprenderá cómo inspeccionar las opciones de configuración del kernel que se utilizaron cuando se compiló su kernel de Linux. Esta información se almacena en un archivo comprimido dentro del sistema de archivos /proc.

El sistema de archivos /proc es un sistema de archivos virtual que proporciona información sobre procesos y otra información del sistema. No contiene archivos reales en el disco, sino que ofrece una vista de las estructuras de datos internas del kernel.

El archivo que nos interesa es /proc/config.gz. Este archivo contiene las opciones de configuración del kernel en un formato comprimido. Para ver su contenido, necesitamos utilizar un comando que pueda descomprimir y mostrar el archivo.

El comando zcat es perfecto para esto. Se utiliza para descomprimir y mostrar el contenido de archivos comprimidos con gzip.

Abra su terminal si no está abierta. Puede encontrar el icono de Xfce Terminal en el lado izquierdo de su escritorio.

Ahora, escriba el siguiente comando y presione Enter:

zcat /proc/config.gz

Este comando descomprimirá el archivo /proc/config.gz y mostrará su contenido en su terminal. Verá una larga lista de opciones de configuración, cada una comenzando con CONFIG_. Estas opciones determinan qué características y controladores se incluyen en su kernel.

Por ejemplo, es posible que vea líneas como:

CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
## CONFIG_NET_KEY is not set
CONFIG_INET=y
  • CONFIG_NET=y significa que la compatibilidad con redes está habilitada.
  • CONFIG_NET_KEY is not set significa que una característica específica de red no está incluida.

Desplazarse por esta salida puede resultar abrumador. Puede utilizar el comando less para ver la salida página por página. Para hacer esto, usaremos una tubería (|). La tubería envía la salida de un comando como entrada a otro comando.

Escriba el siguiente comando y presione Enter:

zcat /proc/config.gz | less

Ahora puede usar las teclas de flecha para desplazarse hacia arriba y hacia abajo, y presionar q para salir de less.

Este comando es muy útil para entender exactamente cómo se construyó su kernel y qué capacidades tiene.

Haga clic en Continuar para pasar al siguiente paso.

Verificar opciones en /boot/config-*

En el paso anterior, visualizó la configuración del kernel a partir de /proc/config.gz. Otro lugar donde a menudo se almacenan los archivos de configuración del kernel es en el directorio /boot.

El directorio /boot contiene los archivos necesarios para arrancar el sistema operativo, incluyendo el propio kernel y, a menudo, el archivo de configuración utilizado para construirlo.

El archivo de configuración en /boot suele llamarse config- seguido de la versión del kernel. Dado que la versión del kernel puede variar, podemos utilizar un comodín (*) para coincidir con el nombre del archivo.

Primero, listemos los archivos en el directorio /boot para ver si existe un archivo de configuración allí. Utilice el comando ls:

ls /boot/

Debería ver una lista de archivos, incluyendo uno que comience con config- y esté seguido de un número de versión (por ejemplo, config-5.15.0-105-generic).

Ahora, veamos el contenido de este archivo. Podemos utilizar el comando cat para mostrar el contenido del archivo. Recuerde reemplazar config-* con el nombre real del archivo que encontró en la salida del comando ls anterior, o utilice el comodín. Utilizar el comodín es más general.

Escriba el siguiente comando y presione Enter:

cat /boot/config-*

Esto mostrará las opciones de configuración del kernel del archivo en el directorio /boot. Notará que el contenido es muy similar, si no idéntico, a la salida que vio con zcat /proc/config.gz. Esto se debe a que /proc/config.gz suele ser una copia comprimida del archivo de configuración que se encuentra en /boot.

Utilizar cat en el archivo en /boot es otra forma de acceder a la configuración del kernel, especialmente si /proc/config.gz no está disponible o desea ver la versión sin comprimir directamente.

Nuevamente, puede enviar la salida a less para una visualización más fácil:

cat /boot/config-* | less

Presione q para salir de less.

Comprender dónde encontrar la configuración del kernel es importante para la resolución de problemas y la administración avanzada del sistema.

Haga clic en Continuar para continuar.

Inspeccionar registros de compilación en dmesg

En los pasos anteriores, aprendiste cómo ver la configuración del kernel. Ahora, veamos el buffer de mensajes del kernel, que contiene mensajes producidos por el kernel durante el arranque y el tiempo de ejecución. Esto a veces puede incluir información relacionada con la compilación del kernel o la carga de módulos.

El comando dmesg se utiliza para examinar o controlar el buffer circular (ring buffer) del kernel. El buffer circular almacena mensajes del kernel, que a menudo son útiles para la depuración y la comprensión de los eventos del sistema.

Escribe el siguiente comando en tu terminal y presiona Enter:

dmesg

Esto imprimirá una gran cantidad de salida en tu terminal. Estos son mensajes del kernel, incluyendo información sobre la detección de hardware, la carga de controladores de dispositivos y otros eventos del sistema que se han producido desde que se arrancó el sistema.

Para encontrar información relacionada con la versión del kernel o la compilación, puedes enviar la salida de dmesg a grep. grep es una poderosa utilidad de línea de comandos para buscar en conjuntos de datos de texto plano las líneas que coincidan con una expresión regular.

Busquemos líneas que contengan la palabra "Linux" para ver la información de la versión del kernel.

dmesg | grep "Linux"

Deberías ver una salida similar a esta, que muestra la versión del kernel:

[    0.000000] Linux version 5.15.0-105-generic (...)

También puedes buscar otras palabras clave que puedan estar relacionadas con módulos del kernel o opciones de compilación, aunque los registros directos de compilación generalmente no se encuentran aquí. dmesg se refiere más a los mensajes en tiempo de ejecución del kernel.

Por ejemplo, podrías buscar mensajes relacionados con un controlador o subsistema específico si conoces su nombre.

Nuevamente, usar less con dmesg es útil para navegar por la salida:

dmesg | less

Presiona q para salir de less.

Si bien dmesg no muestra directamente el proceso de compilación del kernel, proporciona información valiosa sobre el kernel que está en ejecución actualmente, incluyendo su versión y los módulos cargados, que están determinados por la configuración de compilación que viste en los pasos anteriores.

Haz clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendiste cómo verificar si una opción de compilación específica del kernel está habilitada en Linux. Exploraste el sistema de archivos /proc, específicamente el archivo /proc/config.gz, que almacena las opciones de configuración del kernel utilizadas durante la compilación. Utilizaste el comando zcat para descomprimir y mostrar el contenido de este archivo, y aprendiste cómo enviar la salida a less para una visualización más fácil. Este proceso te permite inspeccionar las diversas opciones CONFIG_ y determinar qué características y controladores están incluidos en el kernel en ejecución.