32blogby Studio Mitsu

SWUpdate vs Mender vs RAUC: Comparativa OTA para Yocto

Compara las tres principales herramientas OTA compatibles con Yocto — SWUpdate, Mender y RAUC — por arquitectura, licencia e integración con Scarthgap.

by omitsu10 min read
Yoctoembedded-linuxOTASWUpdateMenderRAUCScarthgap

This article contains affiliate links.

Contenido

Los productos Linux embebidos necesitan actualizaciones OTA (Over-The-Air). Las tres opciones OSS dominantes para Yocto son SWUpdate (flexible, scripting Lua), Mender (SaaS integrado) y RAUC (seguridad primero, la huella más ligera). Elige según las licencias, los requisitos de servidor y las fortalezas de tu equipo.

Parches de seguridad, mandatos de gestión de vulnerabilidades del CRA de la UE, correcciones de errores en campo — distribuir un producto que no puedes actualizar es un riesgo. Esta guía compara las tres herramientas por arquitectura, licencias e integración con Yocto para ayudarte a tomar la decisión correcta.

Por qué las actualizaciones OTA ahora son obligatorias

Las actualizaciones OTA para dispositivos embebidos pasaron de "sería bueno tenerlo" a "obligatorio."

Seguridad: Los CVEs se publican a diario. Sin una forma de parchear dispositivos en campo, las vulnerabilidades permanecen abiertas. La gestión de SBOM/CVE detecta vulnerabilidades, pero la detección sin un mecanismo de entrega es inútil.

Regulación: El Cyber Resilience Act de la UE (Reglamento 2024/2847) requiere capacidades de actualización de seguridad desde diciembre de 2027. Las obligaciones de notificación de vulnerabilidades entran en vigor antes — septiembre de 2026. La FDA revisa los planes de actualización de software para dispositivos médicos.

Costo: La retirada física y el reflasheo cuestan cientos de veces más que una actualización OTA.

Las tres herramientas soportan esquemas de particiones A/B (copia dual) con rollback automático en caso de fallo de actualización. Esa es la diferencia fundamental respecto al flasheo manual.

Comparación rápida

CaracterísticaSWUpdateMenderRAUC
LicenciaGPL-2.0Apache-2.0 (cliente)LGPL-2.1
Última versión2025.125.1.0v1.15.1
LenguajeCGo / C++C (GLib)
Formato de actualización.swu (archivo cpio).mender (Artifact).raucb (bundle)
ServidorhawkBit (OSS)Mender Server (OSS/SaaS)Ninguno (constrúyelo tú)
Actualizaciones deltaOSS (rdiff)Solo EnterpriseOSS (casync)
FirmadoOpcionalOpcionalObligatorio
Soporte Scarthgapmeta-swupdatemeta-mendermeta-rauc
HuellaPequeñaGrandeLa más pequeña

Comparación de arquitectura

SWUpdate — Máxima flexibilidad

SWUpdate es la opción de "haz lo que quieras". Mantenido por Stefano Babic, sigue una cadencia de lanzamiento YYYY.MM (mayo y diciembre).

Cómo funciona: Transmite archivos .swu (formato cpio). El archivo sw-description al inicio define el procedimiento de actualización, y los handlers procesan cada componente.

Fortalezas:

  • Scripting Lua para handlers personalizados (FPGA, firmware MCU, archivos individuales)
  • Integración incorporada con el servidor Eclipse hawkBit (daemon Suricatta)
  • Soporta actualizaciones tanto basadas en imagen como a nivel de archivo
  • Las actualizaciones delta son OSS (handler rdiff)

Debilidades:

  • La alta flexibilidad implica una curva de aprendizaje inicial pronunciada
  • sw-description usa un formato personalizado (libconfig)
  • El lado del servidor requiere configuración separada (hawkBit es un proyecto diferente de Eclipse IoT)

Mender — SaaS integrado

Mender está diseñado como un par cliente-servidor.

Cómo funciona: Usa el formato .mender Artifact para escribir imágenes en particiones A/B. El diseño estándar es 4 particiones: boot / rootfs-A / rootfs-B / data.

Fortalezas:

  • Hosted Mender (SaaS) te da un entorno OTA sin configurar servidor
  • Interfaz web para gestión de dispositivos, despliegue de actualizaciones y visualización de logs
  • Los Update Modules soportan actualizaciones de .deb/.rpm/Docker/archivo individual
  • Documentación y tutoriales extensos

Debilidades:

  • Las actualizaciones delta son solo Enterprise/Professional (no disponibles en OSS)
  • Restricción de diseño de 4 particiones fijas
  • La implementación en Go resulta en una huella más grande que las otras dos
  • Los precios de SaaS empiezan en $34/mes (50 dispositivos, Basic). Enterprise requiere precio personalizado

RAUC — Seguridad primero, la más ligera

RAUC pone la firma criptográfica en el centro de su diseño. Desarrollado por Pengutronix, es usado por la Steam Deck de Valve, el hub Dirigera de IKEA, Home Assistant OS y el Linux a bordo de Deutsche Bahn (Linux4ICE).

Cómo funciona: Instala bundles .raucb (formato squashfs) vía API D-Bus. La verificación de firma del bundle es obligatoria — los bundles sin firmar son rechazados por diseño.

Fortalezas:

  • La firma obligatoria asegura seguridad a nivel de diseño
  • La huella más pequeña de las tres herramientas
  • Integración profunda con D-Bus y systemd
  • Adaptive Updates (desde v1.8) proporcionan actualizaciones delta OSS mediante block-hash-index
  • LGPL-2.1 facilita la integración en productos propietarios

Debilidades:

  • Sin servidor de gestión oficial — lo construyes tú (existen soluciones de terceros)
  • Sin interfaz web ni panel de gestión de dispositivos
  • Las actualizaciones a nivel de archivo son menos directas que las basadas en imagen
  • Comunidad más pequeña comparada con SWUpdate y Mender

Integración con Yocto en la práctica

Cómo se integra cada herramienta con Scarthgap.

SWUpdate + meta-swupdate

bash
# bblayers.conf
BBLAYERS += "/path/to/meta-swupdate"

# conf/local.conf
IMAGE_INSTALL:append = " swupdate"

Tú defines el archivo sw-description y la estructura de la imagen de actualización. Flexible pero requiere inversión inicial.

Para integración con el servidor hawkBit:

bash
# conf/local.conf
IMAGE_INSTALL:append = " swupdate-www"
SRC_URI:append:pn-swupdate = " file://defconfig"

Mender + meta-mender

bash
# bblayers.conf
BBLAYERS += "/path/to/meta-mender/meta-mender-core"

# conf/local.conf
INHERIT += "mender-full"
MENDER_ARTIFACT_NAME = "release-1.0"

Añadir INHERIT += "mender-full" configura el diseño de particiones, integración del bootloader e instalación del cliente en un solo paso. Conectar a Hosted Mender requiere un token de tenant.

RAUC + meta-rauc

bash
# bblayers.conf
BBLAYERS += "/path/to/meta-rauc"

# conf/local.conf
IMAGE_INSTALL:append = " rauc"

En Scarthgap, la configuración de plataforma (system.conf, keyring, etc.) se separó en una receta rauc-conf.bb. Usa un bbappend para sobrescribir la configuración del sistema para tu plataforma.

bash
# Ejemplo de system.conf
[system]
compatible=my-product
bootloader=uboot

[slot.rootfs.0]
device=/dev/mmcblk0p2
type=ext4

[slot.rootfs.1]
device=/dev/mmcblk0p3
type=ext4

Qué herramienta deberías elegir

Un flujo de decisión basado en las restricciones del proyecto.

Filtrar por licencia

RestricciónRecomendación
Integrar en producto propietarioRAUC (LGPL-2.1) o Mender (Apache-2.0)
Debe evitar GPLRAUC > Mender > SWUpdate
La licencia no es una preocupaciónLas tres son candidatas

SWUpdate es GPL-2.0. Esto típicamente no es un problema a menos que enlaces directamente contra él, pero puede requerir revisión legal.

Filtrar por requisitos de servidor

RestricciónRecomendación
Sin ancho de banda para configurar servidorMender (Hosted Mender)
Usa hawkBit existenteSWUpdate
Puede construir servidor propioRAUC / SWUpdate
No se necesita servidor (entrega USB/local)Las tres funcionan

Filtrar por características del equipo y producto

RestricciónRecomendación
Necesita OTA funcionando rápidamenteMender (SaaS + docs)
La seguridad es la máxima prioridadRAUC (firma obligatoria)
Componentes diversos (FPGA/MCU) a actualizarSWUpdate (handlers Lua)
Minimizar huellaRAUC
Necesita actualizaciones delta OSSSWUpdate (rdiff) / RAUC (casync)
Quiere interfaz web para gestión de dispositivosMender

FAQ

¿Qué herramienta OTA es más fácil para empezar?

Mender. Con Hosted Mender (SaaS) y INHERIT += "mender-full" en tu configuración Yocto, puedes tener un pipeline OTA funcionando sin configurar ninguna infraestructura de servidor. La contrapartida es menos flexibilidad y mayor costo a largo plazo.

¿Puedo cambiar de herramienta OTA después?

Técnicamente sí, pero es doloroso. Cada herramienta tiene un esquema de particiones, formato de actualización e integración de bootloader diferentes. Cambiar significa reparticionar y reflashear todos los dispositivos desplegados. Elige bien desde el principio.

¿Estas herramientas soportan Raspberry Pi?

Las tres soportan Raspberry Pi. Mender tiene tutoriales dedicados para Raspberry Pi en su documentación. RAUC y SWUpdate funcionan con la capa estándar meta-raspberrypi. Para Raspberry Pi 5 específicamente, consulta nuestra guía de Scarthgap.

¿Cuál es la diferencia entre actualizaciones A/B y delta?

Las actualizaciones A/B escriben una imagen completa en una partición inactiva y cambian el destino de arranque en caso de éxito. Las actualizaciones delta solo transfieren los bloques modificados, reduciendo el ancho de banda. SWUpdate (rdiff) y RAUC (Adaptive Updates) ofrecen delta en OSS; Mender requiere licencia Enterprise.

¿La firma obligatoria de RAUC es un problema?

Añade tiempo de configuración inicial — necesitas generar una CA y una clave de firma — pero evita el despliegue accidental de bundles sin firmar o manipulados. Para productos que se envían a clientes, la firma obligatoria es una ventaja, no una carga. La documentación de RAUC guía paso a paso la configuración PKI.

¿Cómo afecta el CRA de la UE a los requisitos OTA?

El Reglamento (UE) 2024/2847 exige que los productos con elementos digitales proporcionen actualizaciones de seguridad durante todo su ciclo de vida. El cumplimiento total se requiere para diciembre de 2027, con las obligaciones de notificación de vulnerabilidades empezando en septiembre de 2026. Un mecanismo OTA es efectivamente obligatorio para cualquier producto embebido conectado que se venda en la UE.

¿Puedo usar estas herramientas sin Yocto?

Sí. Las tres soportan instalación independiente en Debian/Ubuntu y otras distribuciones Linux. Pero sus funciones más profundas de integración y gestión de particiones están diseñadas para builds de Yocto/OpenEmbedded.

Conclusión

Cada herramienta en una frase:

HerramientaEn una palabraMejor para
SWUpdateTodoterreno flexibleRequisitos personalizados, usuarios de hawkBit
MenderSaaS integradoDespliegue rápido, evitar operaciones de servidor
RAUCLigera, firma primeroPrioridad en seguridad, huella mínima

Las tres están maduras en Yocto Scarthgap. No hay una elección incorrecta — la diferencia se reduce a licencias, requisitos de servidor y fortalezas del equipo.

OTA combinada con gestión de SBOM/CVE es donde reside el verdadero valor. Detectar CVEs, compilar parches, entregar vía OTA — este flujo de trabajo se está convirtiendo en el estándar para productos embebidos. Si todavía estás diseñando tu estructura de capas, planifica OTA desde el principio — retrofit siempre es más difícil.

Artículos relacionados: