GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo compilar el kernel de Linux desde cero {Guía paso a paso}

Introducción

El kernel de Linux es la base de los sistemas operativos similares a Unix. El núcleo es responsable de la comunicación entre el hardware y el software y la asignación de los recursos disponibles.

Todas las distribuciones de Linux se basan en un kernel predefinido. Pero, si desea deshabilitar varias opciones y controladores o probar parches experimentales, debe compilar un kernel de Linux.

En esta guía paso a paso, aprenderá a crear y compilar un kernel de Linux desde cero.

Requisitos previos

  • Un sistema que ejecuta Linux
  • Acceso a la terminal/línea de comando
  • Una cuenta de usuario con sudo/root privilegios
  • 12 GB de espacio disponible en el disco duro

Creación del núcleo de Linux

El proceso de creación de un kernel de Linux requiere siete sencillos pasos para completarse. Sin embargo, el procedimiento requiere una cantidad significativa de tiempo para completarse, dependiendo de la velocidad del sistema.

Siga los pasos a continuación para compilar el kernel de Linux más reciente al momento de escribir este artículo.

Nota: Si la versión en el sitio web del kernel no coincide con la de los pasos a continuación, use estos comandos y reemplace el número de versión del kernel.

Paso 1:descarga el código fuente

1. Visite el sitio web oficial del kernel y descargue la última versión del kernel. El archivo descargado contiene un código fuente comprimido.

2. Abra la terminal y use el comando wget para descargar el código fuente del kernel de Linux:

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.6.tar.xz

El resultado muestra el mensaje "guardado" cuando se completa la descarga.

Paso 2:extraiga el código fuente

Cuando el archivo esté listo, ejecute el comando tar para extraer el código fuente:

tar xvf linux-5.9.6.tar.xz

La salida muestra el código fuente del kernel extraído:

Paso 3:Instale los paquetes necesarios

Instale paquetes adicionales antes de construir un kernel. Para hacerlo, ejecute este comando:

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

El comando que usamos arriba instala los siguientes paquetes:

Paso 4:configurar el núcleo

El código fuente del kernel de Linux viene con la configuración predeterminada. Sin embargo, puedes ajustarlo a tus necesidades. Para hacerlo, siga los pasos a continuación:

1. Navegue hasta linux-5.9.6. directorio usando el cd comando:

cd linux-5.9.6

2. Copie el archivo de configuración existente usando cp comando:

cp -v /boot/config-$(uname -r) .config

3. Para realizar cambios en el archivo de configuración, ejecute make comando:

make menuconfig

El comando inicia varios scripts, que luego abren el menú de configuración:

4. El menú de configuración incluye opciones tales como configuración de firmware, sistema de archivos, red y memoria. Usa las flechas para hacer una selección o elige AYUDA para obtener más información sobre las opciones. Cuando termine de hacer los cambios, seleccione GUARDAR, y luego salga del menú.

Nota: Cambiar la configuración de algunas opciones puede conducir a un núcleo no funcional. Si no está seguro de qué cambiar, deje la configuración predeterminada.

Paso 5:compilar el núcleo

1. Comience a construir el núcleo ejecutando el siguiente comando:

make

El proceso de creación y compilación del kernel de Linux tarda un tiempo en completarse.

El terminal enumera todos los componentes del kernel de Linux:administración de memoria, controladores de dispositivos de hardware, controladores de sistemas de archivos, controladores de red y administración de procesos.

2. Instale los módulos requeridos con este comando:

sudo make modules_install

3. Finalmente, instale el núcleo escribiendo:

sudo make install 

El resultado muestra hecho cuando termine:

Paso 6:actualice el gestor de arranque (opcional)

El gestor de arranque GRUB es el primer programa que se ejecuta cuando se enciende el sistema.

El make install El comando realiza este proceso automáticamente, pero también puede hacerlo manualmente.

1. Actualice initramfs a la versión del kernel instalada:

sudo update-initramfs -c -k 5.9.6

2. Actualice el cargador de arranque GRUB con este comando:

sudo update-grub

El terminal imprime el proceso y el mensaje de confirmación:

Paso 7:reiniciar y verificar la versión del kernel

Cuando complete los pasos anteriores, reinicie la máquina.

Cuando el sistema arranque, verifique la versión del kernel usando uname comando:

uname -mrs

El terminal imprime la versión actual del kernel de Linux.


Linux
  1. Cómo usar SSH en Linux desde Android

  2. Linux:¿cómo ejecutar un gestor de arranque desde Linux?

  3. ¿Cómo cargar módulos del kernel de Linux desde el código C?

  4. ¿Cómo funciona internamente copy_from_user del kernel de Linux?

  5. ¿Cómo codificar un módulo del kernel de Linux?

Cómo acceder a las particiones de Linux desde Windows 10

Cómo quitar un comando del historial en Linux

Cómo instalar software desde la fuente en Linux

Cómo quitar (^M) caracteres de un archivo en Linux

Cómo construir el kernel de Linux desde cero

Cómo compilar el kernel de Linux desde el origen para crear un kernel personalizado

    Paquete Descripción del paquete
    git Rastrea y hace un registro de todos los cambios durante el desarrollo en el código fuente. También permite revertir los cambios.
    fakeroot Herramienta de empaquetado que crea un entorno raíz falso.
    build-essential Instala herramientas de desarrollo como C, C++, gcc y g++.
    ncurses-dev Biblioteca de programación que proporciona API para los terminales basados ​​en texto.
    xz-utils Proporciona una rápida compresión y descompresión de archivos.
    libssl-dev Admite SSL y TSL que encriptan datos y hacen que la conexión a Internet sea segura.
    bc (Calculadora básica) Un lenguaje de secuencias de comandos matemático que admite la ejecución interactiva de instrucciones.
    flex (Generador de analizador léxico rápido) Genera analizadores léxicos que convierten caracteres en tokens.
    libelf-dev Emite una biblioteca compartida para administrar archivos ELF (archivos ejecutables, volcados del núcleo y código objeto)
    bison Generador de analizador GNU que convierte la descripción gramatical en un programa C.