Cómo instalar encabezados de kernel en CentOS 7


Cuando compila un módulo de kernel personalizado, como un controlador de dispositivo en un sistema CentOS, necesita tener los archivos de encabezado del kernel instalados en el sistema, que incluyen los archivos de encabezado C para el kernel de Linux. Los archivos de encabezado del kernel proporcionan diferentes tipos de definiciones de funciones y estructuras requeridas al instalar o compilar cualquier código que interactúe con el kernel.

Cuando instale los encabezados del kernel, asegúrese de que coincida con la versión del kernel instalada actualmente en el sistema. Si su versión de Kernel viene con la instalación de distribución predeterminada o si ha actualizado su Kernel usando el administrador de paquetes yum desde los repositorios base del sistema, entonces debe instalar los encabezados del kernel coincidentes usando solo el administrador de paquetes. Si ha compilado el kernel a partir de las fuentes, puede instalar los encabezados del kernel solo desde las fuentes.

En este artículo, explicaremos cómo instalar Kernel Headers en CentOS/RHEL 7 y distribuciones de Fedora usando el administrador de paquetes predeterminado.

Instalar encabezados de kernel en CentOS 7

Primero confirme que los encabezados del kernel coincidentes ya están instalados en/usr/src/kernels/location en su sistema usando los siguientes comandos.

# cd /usr/src/kernels/
# ls -l

Si no hay encabezados del kernel coincidentes en el directorio/usr/src/kernels /, continúe e instale los encabezados del kernel, que son proporcionados por el paquete kernel-devel que se puede instalar usando el administrador de paquetes predeterminado como se muestra.

# yum install kernel-devel   [On CentOS/RHEL 7]
# dnf install kernel-devel   [On Fedora 22+]

Después de instalar el paquete kernel-devel, puede encontrar todos los archivos de encabezados del kernel en el directorio/usr/src/kernels usando el siguiente comando.

# ls -l /usr/src/kernels/$(uname -r) 

Tenga en cuenta que en un VPS (por ejemplo, un VPS Linode), un kernel puede tener un nombre de versión personalizado, en tal escenario, debe identificar la versión del kernel manualmente y verificar los archivos de encabezado del kernel instalados usando los siguientes comandos.

# uname -r	
# ls -l /usr/src/kernels/3.10.0-862.2.3.el7.x86_64
total 4544
drwxr-xr-x.  32 root root    4096 May 16 12:48 arch
drwxr-xr-x.   3 root root    4096 May 16 12:48 block
drwxr-xr-x.   4 root root    4096 May 16 12:48 crypto
drwxr-xr-x. 119 root root    4096 May 16 12:48 drivers
drwxr-xr-x.   2 root root    4096 May 16 12:48 firmware
drwxr-xr-x.  75 root root    4096 May 16 12:48 fs
drwxr-xr-x.  28 root root    4096 May 16 12:48 include
drwxr-xr-x.   2 root root    4096 May 16 12:48 init
drwxr-xr-x.   2 root root    4096 May 16 12:48 ipc
-rw-r--r--.   1 root root     505 May  9 19:21 Kconfig
drwxr-xr-x.  12 root root    4096 May 16 12:48 kernel
drwxr-xr-x.  10 root root    4096 May 16 12:48 lib
-rw-r--r--.   1 root root   51205 May  9 19:21 Makefile
-rw-r--r--.   1 root root    2305 May  9 19:21 Makefile.qlock
drwxr-xr-x.   2 root root    4096 May 16 12:48 mm
-rw-r--r--.   1 root root 1093137 May  9 19:21 Module.symvers
drwxr-xr-x.  60 root root    4096 May 16 12:48 net
drwxr-xr-x.  14 root root    4096 May 16 12:48 samples
drwxr-xr-x.  13 root root    4096 May 16 12:48 scripts
drwxr-xr-x.   9 root root    4096 May 16 12:48 security
drwxr-xr-x.  24 root root    4096 May 16 12:48 sound
-rw-r--r--.   1 root root 3409102 May  9 19:21 System.map
drwxr-xr-x.  17 root root    4096 May 16 12:48 tools
drwxr-xr-x.   2 root root    4096 May 16 12:48 usr
drwxr-xr-x.   4 root root    4096 May 16 12:48 virt
-rw-r--r--.   1 root root      41 May  9 19:21 vmlinux.id

Además, si necesita archivos de encabezado para el kernel de Linux para que los use glibc, instale el paquete kernel-header usando el siguiente comando.

# yum install kernel-headers   [On CentOS/RHEL 7]
# dnf install kernel-headers   [On Fedora 22+]

Ahora está listo para compilar sus propios módulos de kernel o los existentes para software como VirtualBox y muchos más.

¡Eso es! En este artículo, hemos explicado cómo instalar paquetes kernel-devel y kernel-header en sistemas CentOS/RHEL 7 y Fedora. Recuerde que antes de poder compilar módulos del kernel, como el controlador de dispositivo, en un sistema Linux, debe tener instalados los archivos de encabezado del kernel necesarios. Si tiene alguna pregunta, utilice el formulario de comentarios a continuación para comunicarse con nosotros.