// Engineering Log
Yocto Project: cómo compilar tu propio Linux para un dispositivo
Publicado el 22.09.2026
// Ruta rapida
Este articulo pertenece al tema Servidores e infraestructura.
Yocto Project — un proyecto abierto que ayuda a construir sistemas Linux a medida para dispositivos embebidos, independientemente de la arquitectura del procesador. No es una distribución, sino un conjunto de herramientas y metadatos: a partir del código fuente se construye una imagen que contiene exactamente los paquetes, el kernel y la configuración que necesita un dispositivo concreto — controlador, terminal, gateway, set-top box.
De qué se compone
- BitBake — planificador y ejecutor de tareas. Lee recetas y configuración, construye el árbol de dependencias y ejecuta la compilación, en muchos aspectos similar a
make. - OpenEmbedded — sistema de compilación que, con ayuda de BitBake, construye paquetes y la imagen completa.
- Recetas (ficheros
.bb) — descripción de la compilación de un componente: desde dónde obtener el código fuente, qué parches aplicar, de qué depende, cómo compilarlo. - Capas — conjuntos de recetas y ajustes, cuyos nombres suelen comenzar con
meta-. Las capas se añaden según necesidad: soporte de placa, subsistema gráfico, aplicaciones propias. - Capa BSP (Board Support Package) — capa con ajustes para hardware concreto, por ejemplo
meta-raspberrypipara las placas Raspberry Pi. - Poky — referencia de construcción de Yocto. La documentación advierte explícitamente: no debe usarse tal cual como producto final, es un punto de partida.
Lanzamientos y soporte
Según la wiki del proyecto, en septiembre de 2026 son compatibles:
| Nombre clave | Versión | Lanzamiento | Soporte hasta | Tipo |
|---|---|---|---|---|
| Wrynose | 6.0 | abril de 2026 | abril de 2030 | LTS |
| Scarthgap | 5.0 | abril de 2024 | abril de 2028 | LTS |
La siguiente versión, 6.1 Blacksail, está programada para octubre de 2026 con soporte de seis meses. Para un producto que vaya a vivir años se elige la rama LTS y todas las capas de la misma rama: las capas de distintas versiones no son compatibles entre sí.
Primera compilación
La vía mínima es seguir la guía Quick Build de la documentación de Yocto. La compilación es exigente en recursos: la documentación indica al menos 140 GB de espacio libre en disco y recomienda 32 GB de memoria RAM. Se necesita una distribución Linux soportada, Git, Python 3.9 o superior, gcc 10.1 o superior, además del conjunto de paquetes que se enumeran en la guía para cada distribución.
La versión actual de la guía usa la utilidad bitbake-setup:
python3 -m venv --clear ./bitbake-setup-venv
. ./bitbake-setup-venv/bin/activate
pip install bitbake-setup
bitbake-setup initA continuación el entorno de compilación se activa con el script init-build-env desde el directorio creado; por defecto la máquina objetivo es el emulador qemux86-64, y se construye la imagen:
bitbake core-image-minimal
runqemu snapshotcore-image-minimal — imagen mínima que solo arranca y proporciona una consola. En la guía para la primera compilación se muestra un core-image-sato más completo con entorno gráfico. La primera compilación tarda varias horas; las siguientes son mucho más rápidas gracias al caché.
Compilación para un dispositivo real
Para una placa concreta se añade su capa BSP. Para Raspberry Pi es meta-raspberrypi: depende de BitBake, OpenEmbedded-Core y meta-yocto, y el README de la capa ofrece la vía más corta — la utilidad kas, que a partir de un solo fichero YAML descarga las capas necesarias y lanza la compilación. La imagen resultante se graba en una tarjeta SD con la utilidad bmaptool. Es importante usar la rama de la capa que coincida con la rama de Yocto.
Dónde Yocto es útil
- Dispositivos producidos en serie. Cada unidad recibe un sistema idéntico y reproducible.
- Control sobre el contenido. La imagen no contiene paquetes innecesarios, por lo que ocupa menos, arranca más rápido y tiene una menor superficie de ataque.
- Licencias y auditoría. El sistema de compilación conoce la licencia de cada componente, lo que facilita la revisión antes de lanzar el producto.
- Soporte a largo plazo. La rama LTS de cuatro años permite planificar actualizaciones durante toda la vida útil del dispositivo.
Cuándo no se necesita Yocto
- Para un servidor o estación de trabajo: una distribución habitual como Debian es más sencilla y familiar.
- Para un prototipo de uno o dos dispositivos: es más rápido usar una imagen ya hecha para la placa, por ejemplo Raspberry Pi OS.
- Si el equipo no tiene tiempo para aprender: Yocto tiene una elevada curva de entrada; la primera compilación funcional de una imagen propia puede llevar semanas.
- Para un router o firewall: sistemas ya hechos — OpenWrt, OPNsense — resuelven estas tareas sin necesidad de una compilación propia.
Yocto compensa cuando el dispositivo se produce en serie, tiene una vida útil de años y debe funcionar con un conjunto de software bien definido.
// Tarea parecida
Si estas resolviendo algo parecido
Este articulo pertenece a uno de los temas principales de trabajo. Puedes seguir leyendo sobre el tema, ir a la pagina principal para entender a que me dedico o abrir directamente los servicios.
Tema del articulo
Servidores e infraestructura
VPS, Linux, stack web, migraciones, hosting, bases de datos y operacion base.
Tareas frecuentes de esta tema
- Migrar un sitio o servicio a un nuevo servidor
- Configurar Linux, Nginx, base de datos y copias de seguridad
- Entender por que el sistema funciona de forma inestable
// Siguiente paso
Si necesitas ayuda con este tema y no solo otro articulo, es mejor ir directo a la pagina del servicio. La pagina principal y la seleccion de materiales quedan como rutas secundarias.
Abrir servicios// Contact
¿Necesitas ayuda?
Escríbeme y te ayudaré a resolver el problema
Respondo en un día laborable (03:00-13:00 GMT)
Или оставьте заявку здесь:
// Related