Cómo compilar el núcleo de Linux en CentOS 7


La ejecución de un Kernel de Linux compilado personalizado siempre es útil, especialmente cuando se busca habilitar o deshabilitar funciones específicas del Kernel, que no están disponibles en los kernels provistos por la distribución predeterminada.

En este artículo, explicaré cómo compilar y usar el último Kernel de Linux de las fuentes en la distribución de CentOS 7 (las instrucciones que se proporcionan aquí también funcionan en RHEL y Fedora ).

Si no desea realizar esta configuración compleja, siga nuestro sencillo artículo que explica Cómo instalar o actualizar a Kernel en CentOS 7 utilizando el repositorio de RPM de terceros.

Instalar paquetes necesarios para la compilación del kernel

Primero, asegúrese de actualizar los repositorios de sus paquetes de software, instale las herramientas de desarrollo necesarias para compilar un kernel e instale la biblioteca ncurses usando el siguiente comando yum.

# yum update
# yum install -y ncurses-devel make gcc bc bison flex elfutils-libelf-devel openssl-devel grub2

Compilar e Instalar Kernel en CentOS 7

Descargue las últimas fuentes del Kernel 4.17 utilizando el comando wget en el directorio /usr/src/ o también puede descargar el kernel más reciente en kernel.org.

# cd /usr/src/
# wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.11.tar.xz

Extraiga los archivos archivados y cambie los directorios utilizando los siguientes comandos.

# tar -xvf linux-4.17.11.tar.xz
# cd linux-4.17.11/

Configurar el Kernel en CentOS 7

El Kernel debe configurarse correctamente con las siguientes opciones de configuración requeridas dentro del entorno CentOS 7 .

CONFIG_KVM_GUEST=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_BLK_DEV_SD
CONFIG_SCSI_VIRTIO=y
CONFIG_VIRTIO_NET=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y

Le sugiero encarecidamente que copie la configuración del Kernel en ejecución ( .config ) desde el directorio /boot al nuevo kernel linux-4.17.11 .

# cp -v /boot/config-3.10.0-693.5.2.el7.x86_64 /usr/src/linux-4.17.11/.config

Ahora ejecute el comando make menuconfig para configurar el kernel de Linux. Una vez que ejecute el siguiente comando, aparecerá una ventana emergente con todos los menús. Aquí puede habilitar o deshabilitar ciertas características del kernel. Si no está familiarizado con estos menús, simplemente presione la tecla ESC para salir.

# cd /usr/src/linux-4.17.11/
# make menuconfig

Una vez configuradas las opciones de configuración del kernel, haga clic en Guardar para guardar la interfaz de configuración y salir del menú.

Compila el Kernel en CentOS 7

Antes de iniciar la compilación del kernel, asegúrese de que su sistema tenga más de 25GB de espacio libre en el sistema de archivos. Para confirmar, puede verificar el espacio libre del sistema de archivos usando el comando df como se muestra.

# df -h

Ahora compile e instale el kernel y los módulos usando los siguientes comandos ( puede tardar varias horas ). El proceso de compilación coloca los archivos en el directorio /boot y también crea una nueva entrada en el kernel en su archivo grub.conf .

# make bzImage
# make modules
# make
# make install
# make modules_install

Una vez que se complete la compilación, reinicie el sistema y verifique el Kernel recién instalado.

# uname -sr

Eso es. Espero que este artículo les sea de mucha ayuda. Si tiene problemas o dificultades al compilar o instalar el kernel, no dude en preguntar o publicar sus preguntas utilizando nuestro formulario de comentarios a continuación.