Ir al contenido

Embedded Linux

¿Qué es Yocto Project?

Yocto Project es un sistema de compilación de código abierto para crear distribuciones Linux a medida para dispositivos embebidos e IoT de cualquier arquitectura. Es uno de los sistemas más utilizados en la industria mundial de Linux embebido.

Un sistema de compilación, no una distribución

Yocto Project no es un Linux listo para descargar y grabar. Compila una imagen adaptada al hardware y producto: kernel, gestor de arranque, biblioteca C y paquetes elegidos. Es un proyecto colaborativo de The Linux Foundation respaldado por numerosas empresas para Arm, x86, RISC-V, PowerPC, MIPS y otras arquitecturas.

  • Imagen reproducible desde el código fuente para tu placa, no genérica
  • Cualquier arquitectura: Arm, x86-64, RISC-V, PowerPC, MIPS
  • Código abierto, independiente de proveedores, alojado por The Linux Foundation
recipe + bitbake
# recipes-example/hello/hello_1.0.bb — a BitBake recipe
SUMMARY = "A tiny example program"
LICENSE = "MIT"
SRC_URI = "git://example.com/hello.git;branch=main"
inherit cmake
$ bitbake core-image-minimal
… parsing recipes, fetching sources, cross-compiling
✓ core-image-minimal-qemux86-64.rootfs.wic.bz2
Una receta describe un componente; BitBake crea toda la imagen a partir de tus capas.

Cómo funciona: BitBake, recetas y capas

Yocto utiliza OpenEmbedded. BitBake lee recetas (.bb) que describen cómo descargar, configurar, compilar y empaquetar software. Las recetas se agrupan en capas: BSP para la placa, distribución para las políticas y capa propia para la aplicación. Poky es la distribución de referencia.

  • Receta (.bb): fuentes, licencia, compilación y empaquetado
  • Capa: conjunto de recetas y configuración (meta-*)
  • BitBake: dependencias, compilación cruzada y caché sstate
  • Poky: distribución de referencia y punto de partida

Por qué los equipos usan Yocto

Un producto con diez o quince años de vida necesita controlar Linux: paquetes, licencias, actualizaciones y reproducibilidad desde las fuentes. Yocto ofrece ese control y se ha convertido en un estándar de facto para Linux embebido profesional.

  • Control total de tamaño, paquetes y configuración del kernel
  • Compilaciones reproducibles incluso años después
  • Conformidad de licencias y lista de materiales de software (SBOM)
  • Mantenimiento a largo plazo y actualizaciones (seguimiento de CVE)

Dónde se utiliza Yocto

Independiente de la arquitectura y preparado para producción, Yocto se usa en casi todos los sectores del mundo: desde routers hasta dispositivos médicos y sistemas de información y entretenimiento de automóviles.

  • Automoción y movilidad eléctrica
  • Automatización industrial y pasarelas IoT
  • Redes y telecomunicaciones (routers, 5G)
  • Dispositivos médicos
  • Sector aeroespacial y defensa
  • Electrónica de consumo y hogar inteligente
  • Energía, medición y servicios públicos
  • Robótica y drones

La contrapartida: potencia y complejidad

Este control tiene un coste: aprendizaje exigente, compilaciones de horas y errores BitBake crípticos con registros largos. Diagnosticar exige conocer registros de tareas, capas, configuración y bitbake -e.

Dónde encaja Yocman

Yocman es un agente de IA y herramientas en el terminal para tus compilaciones reales de Yocto Project. Además de corregir errores, ayuda a comprender, auditar y distribuir imágenes. Cada análisis lee archivos de BitBake: los hechos proceden de la compilación.

audit
¿Distribuir o no? Un informe puntuado de CVE, secretos, cuentas, servicios, refuerzo del kernel, licencias y SBOM SPDX: evidencias para el CRA.
cve · secrets
CVE aún sin corregir en la imagen y claves privadas o tokens en el rootfs: se informa de su ubicación, nunca se muestran.
why · size
¿Por qué está este paquete en la imagen? ¿Qué ocupa espacio? size diff compara dos compilaciones paquete a paquete.
buildtime · sstate
Tiempo de compilación, paralelismo efectivo y recetas reconstruidas desde cero cada vez.
init · build · flash
Inicia un proyecto kas para una placa verificada, compila con progreso en directo y graba la tarjeta con comprobación obligatoria.
fix · explain
Diagnostica una tarea fallida y recibe un parche para tu capa o solo el diagnóstico; se aplica tras tu aprobación.
  • Trabaja sobre el directorio de compilación, no el árbol de fuentes: --build-dir acepta resultados copiados o archivados fuera del repositorio.
  • Una instalación para todas tus compilaciones y árboles Yocto: cambia con --build-dir y compara con size diff o cve diff.
  • La compilación permanece local; solo los fragmentos enmascarados llegan a la IA. Los parches afectan a tus capas, nunca a las originales.

Preguntas frecuentes

¿Yocto Project es una distribución Linux?
No. Es un sistema que produce una distribución Linux para tu hardware. Poky es su distribución de referencia que puedes adaptar.
¿Qué diferencia hay entre Yocto y OpenEmbedded?
OpenEmbedded proporciona el sistema y las recetas compartidas. Yocto Project es el proyecto paraguas de The Linux Foundation: usa OpenEmbedded, añade Poky, versiones, herramientas y pruebas, y coordina el ecosistema.
¿Qué es BitBake?
BitBake ejecuta las tareas: lee recetas, resuelve dependencias, descarga, configura, compila y empaqueta componentes para el destino.
¿Qué es una capa en Yocto?
Una capa (directorio meta-*) agrupa recetas y configuración. Separa soporte de placa, políticas de distribución y aplicación, permitiendo reutilizarlos.
¿Yocto o Buildroot?
Ambos compilan Linux embebido desde las fuentes. Buildroot es más sencillo y rápido para imágenes pequeñas y fijas; Yocto es más complejo pero más escalable para productos duraderos con gestión de paquetes y requisitos estrictos de licencias y actualizaciones.
¿Yocto Project es gratuito?
Sí. Es de código abierto y gratuito. Yocto Project es una marca de The Linux Foundation.

Recursos oficiales

Yocto Project® y su logotipo son marcas registradas de The Linux Foundation. Yocman es independiente y no está afiliado, patrocinado ni respaldado por Yocto Project ni The Linux Foundation.