En este artículo, crearemos nuestra propia distribución mínima y simple de Linux para comprender cómo funcionan las distribuciones de Linux.

Instalación de paquetes necesarios

Primero, antes de comenzar el proceso de compilación, necesita las herramientas de compilación y las pruebas. para el publico nosotros necesitamos Para ello necesitamos instalar los siguientes paquetes.

apto para instalar build-essential bison flex libc6-dev bc qemu-kvm

Obtención de códigos fuente

código fuente del kernel de Linux https://kernel.org Descargar vía.

Codigo fuente de Busy Box https://busybox.net Descargar vía.

Luego abramos los archivos que descargamos. En el último caso debería ser de la siguiente manera.

Códigos fuente y versiones desempaquetadas

fase de compilación

Obtendremos partes de la distribución mínima que crearemos con las operaciones de construcción. Para esto Busybox primero luego linux centro Necesitamos compilar. La compilación se realiza en el directorio donde se encuentra el código fuente. Las compilaciones pueden demorar un poco más dependiendo de la velocidad de su computadora y pueden consumir mucha energía.

Primero compilemos el código fuente de busybox. Todavía libc Porque no expliqué la parte sobre estático (La información detallada sobre esto se explicará en la 2ª parte). Para esto, primero make defconfig Usemos el comando. Luego, abramos el archivo .config y editémoslo de la siguiente manera.

Lo cambiamos a CONFIG_STATIC=y

Luego make Vamos a compilar usando el comando.

Después de completar la compilación busybox Nuestro archivo debe ser creado. Para ver si es estático ldd Podemos comprobarlo con el comando

$ ldd busybox no es un ejecutable dinámico

Ahora es el momento de compilar el kernel de Linux. Por esto antes make defconfig usando el comando y luego make bzImage Vamos a crear nuestra imagen del núcleo con el comando.

Cuando se completa la compilación Kernel: arch/x86/boot/bzImage está listo (#1) debe escribir una línea. Puede usar el siguiente comando para ver si nuestro kernel está compilado correctamente.

$ archivo arch/x86/boot/bzImage arch/x86/boot/bzImage: Linux kernel x86 boot ejecutable bzImage, versión 6.2.7 (a@localhost.localdomain) #1 SMP PREEMPT_DYNAMIC Tue Mar 21 08:18:58 -00 2023 , RO-rootFS, swap_dev 0XB, VGA normal

Siguiente en la sección Se explicará cómo crear y probar initramfs usando el kernel que hemos compilado y el archivo busybox.