- fwupd y LVFS centralizan y validan firmware de múltiples fabricantes en Linux.
- Flujo seguro: listar, refrescar metadatos, buscar y aplicar actualizaciones.
- Alternativas: utilidad UEFI del fabricante, FreeDOS o Windows/PE si no hay soporte.
- En ChromeOS, se exigen informes firmados en LVFS y gating antes de publicar.
Si usas Linux en un equipo de marca o en un sobremesa montado a piezas, poder mantener al día el firmware de tu placa base, SSD o periféricos no es un capricho, sino un aspecto clave de estabilidad, rendimiento y seguridad. Hoy en día, gracias a fwupd y al servicio LVFS, hacerlo es mucho más sencillo que antaño, cuando tocaba arrancar en Windows o tirar de un pendrive con DOS.
Más allá de los tópicos, fwupd ha madurado hasta convertirse en la vía estándar para instalar y actualizar firmware en Linux. Te voy a explicar cómo instalarlo, cómo se usa de forma segura, qué novedades trae su última gran versión, qué alternativas tienes si tu hardware no aparece en LVFS y, además, cómo encaja todo esto en ChromeOS, donde Google aplica requisitos específicos para que los usuarios puedan recibir actualizaciones mediante la interfaz del sistema.
Qué es fwupd y cómo encaja LVFS
fwupd es un daemon de código abierto que permite gestionar y flashear firmware en una amplia variedad de dispositivos desde Linux. Se integra con el Linux Vendor Firmware Service (LVFS), un catálogo centralizado en el que los fabricantes publican sus paquetes de firmware en formato .cab
junto con metadatos para identificar correctamente el hardware de destino.
En la práctica, esto elimina la necesidad de empaquetados diferentes por distribución: los proveedores suben un único archivo .cab con metadatos y los usuarios lo reciben a través de sus distros. A día de hoy, LVFS recopila firmware para más de 1.600 dispositivos de 160 fabricantes, y fwupd se integra con gestores gráficos como GNOME Software y KDE Discover para que el proceso sea todavía más cómodo.
El alcance es amplio: desde UEFI/BIOS hasta dispositivos USB, Thunderbolt o incluso pantallas. Muchas actualizaciones pueden aplicarse sin salir del entorno de trabajo y, cuando es necesario, el reinicio se programa y gestiona de forma segura para completar el flasheo durante el arranque.
Requisitos previos y comprobaciones recomendadas
Antes de lanzarte, conviene verificar si tu hardware está soportado. Puedes consultar el listado de dispositivos en la web de LVFS. No es una base de datos absolutamente exhaustiva, pero es una gran referencia: hay casos en los que una máquina concreta no aparece y, aun así, el fabricante está bien soportado y las actualizaciones llegan sin problemas.
Es habitual que fwupd detecte varios componentes cuando ejecutas sus comandos iniciales. Por ejemplo, en dos equipos Dell (un Latitude 7390 y un sobremesa Precision 3450) el flujo fue idéntico: se listaron los dispositivos compatibles, se refrescaron metadatos desde LVFS, se revisaron las actualizaciones disponibles y se aplicaron con un reinicio supervisado más tarde. La experiencia, en general, es fluida.
Recomendaciones de seguridad: asegúrate de tener el equipo conectado a corriente (y batería cargada en portátiles), no interrumpas el proceso durante el arranque, y descarga siempre el firmware adecuado para tu modelo concreto cuando uses métodos manuales. Algunas utilidades ofrecen hacer copia de seguridad del estado actual del firmware; si está disponible, merece la pena usarla.
Ten presente que fwupd se centra en componentes para los que el proveedor publica firmware en LVFS (como UEFI o controladoras concretas). No es la vía para actualizar, por ejemplo, el driver de la tarjeta de vídeo, y ciertas tarjetas de red o GPU se atienden con otros mecanismos.
Cómo instalar fwupd en tu distribución
En la mayoría de distros, fwupd ya viene preinstalado. Si no es tu caso, puedes instalarlo desde repositorios oficiales. En Debian, Ubuntu y derivadas:
sudo apt-get update
sudo apt-get install fwupd
En Ubuntu y derivadas también puedes usar su alias más habitual:
sudo apt install fwupd
En Fedora:
sudo dnf install fwupd
En Arch Linux y basadas:
sudo pacman -S fwupd
fwupd instala un servicio y un temporizador de systemd que permiten automatizar verificaciones de firmware si lo deseas. Mucha gente prefiere revisar y actualizar manualmente para tener control sobre el momento del reinicio y los cambios aplicados; es una decisión personal, aunque la automatización puede venir bien en entornos gestionados.
Uso básico: listar, refrescar y actualizar firmware
Una vez instalado, el primer paso es ver qué hardware detecta fwupd:
fwupdmgr get-devices
A continuación, refresca los metadatos de LVFS, que incluyen catálogos de dispositivos, versiones y correcciones disponibles:
fwupdmgr refresh
Con el inventario actualizado, revisa si hay nuevas versiones para tu equipo:
fwupdmgr get-updates
Si existen parches, puedes descargar e instalar todas las actualizaciones aplicables al sistema:
fwupdmgr update
¿Solo te interesa un dispositivo concreto? Es posible aplicar la actualización filtrando por el ID del dispositivo:
fwupdmgr update <DEVICEID>
Una vez completado el proceso, fwupd puede ofrecer reiniciar. No es obligatorio hacerlo al instante, pero cuando reinicies, no interrumpas el arranque. El instalador de firmware se ejecutará y, en función del número de componentes, tardará unos minutos. Es normal que el primer arranque sea algo más lento mientras finalizan los cambios.
Para consultar qué actualizaciones se aplicaron con fwupd a lo largo del tiempo, tienes disponible el historial:
fwupdmgr history
Qué dispositivos verás: SSD, dbx de UEFI y “Firmware del sistema”
Es frecuente que, al usar fwupd, aparezcan varios componentes: por ejemplo, tu SSD, la lista dbx de UEFI y el propio firmware del sistema. La dbx (revocation database) es la lista de revocaciones de UEFI usada para invalidar binarios firmados comprometidos o inseguros.
El elemento “Firmware del sistema” suele referirse a la implementación UEFI/BIOS de tu placa base. No todos los fabricantes publican esas actualizaciones a través de LVFS; si ves un “Dispositivo de tabla de recursos del sistema UEFI” no actualizable, normalmente significa que se gestiona con el método habitual del proveedor (por ejemplo, la utilidad de actualización integrada en la UEFI o herramientas propias). En placas ASUS personalizadas, es habitual seguir usando la actualización del BIOS vía USB si no hay soporte en LVFS.
Novedades destacadas de fwupd 2.0
La serie 2.0 supuso cambios internos importantes. El proceso en segundo plano migró del enlace GObject de GUsb al acceso directo a libusb y sysfs. Esta transición permitió mover la emulación de dispositivos a la biblioteca libfwupdplugin
e implementar emulación de actualizaciones en dispositivos ficticios hidraw
y nvme
, de forma similar a los USB simulados. Gracias a ello, se reforzaron las pruebas y se detectan problemas que podrían surgir con cambios en fwupd.
Otra novedad es la eliminación de la dependencia de GUdev (enlaces GObject sobre libudev). En su lugar, el proceso crea un socket netlink para analizar los eventos de udev. Este cambio reduce de forma notable el consumo de memoria y CPU al inicio y durante la ejecución, y también allana el camino a una futura compatibilidad con Android mediante soporte para ueventd.
Se introdujeron optimizaciones para disminuir el consumo de memoria al transferir firmware: en lugar de copiar el fichero a RAM, se recurre a la transferencia mediante descriptor de archivo. También se añadió soporte para nuevos dispositivos y se realizó limpieza técnica: se interrumpió la compatibilidad con metadatos heredados y formatos de verificación antiguos, y se retiraron utilidades de línea de comandos deprecadas.
Además, se incorporó una API para cargar informes en gnome-firmware, el sistema de compilación añadió soporte para la plataforma Darwin, y se sumaron utilidades prácticas como listar ficheros ESP en JSON con fwupdtool esp-list --json
, junto a opciones para definir dispositivos emulados desde la configuración.
Alternativas cuando fwupd no es la mejor opción
Aunque fwupd es el camino preferente, hay casos en los que el firmware no se distribuye por LVFS o el soporte aún no existe. En esos escenarios, conviene recurrir a métodos del fabricante. La elección depende del equipo y de la antigüedad del hardware.
Actualización integrada en la BIOS/UEFI: prácticamente todos los fabricantes incluyen una utilidad en el propio firmware del sistema (nombres como “EZ Flash”, “Q-Flash”, “BIOS Flashback” o “BIOS Update Utility”). Descargas el fichero de firmware desde la web del proveedor, lo copias a un USB en FAT32, entras en la configuración de la UEFI y seleccionas el archivo para flashear. Es el método más fiable porque no depende del sistema operativo y es la ruta recomendada para equipos no soportados por LVFS.
USB booteable con DOS/FreeDOS: algunas placas antiguas o utilidades viejas solo ofrecen ejecutables para DOS. En ese caso, creas un USB con FreeDOS, copias la utilidad y el firmware, arrancas desde el pendrive y ejecutas la herramienta desde la línea de comandos. Es más manual y menos común hoy, pero puede salvarte con hardware muy veterano. La complejidad de configuración es su mayor desventaja.
Herramienta basada en Windows (dual boot o Windows PE): si el fabricante solo ofrece un actualizador para Windows, puedes usar un dual boot existente o crear un USB con Windows PE, iniciar y ejecutar el instalador. Es directo y compatible con el proveedor, aunque requiere montar un entorno Windows temporal si no lo tienes ya.
¿Cuál elegir? Primero intenta fwupd si tu hardware participa en LVFS. Si no aparece o la actualización es crítica y el proveedor no publica en LVFS, usa la utilidad de UEFI del fabricante. En hardware muy antiguo o casos específicos, DOS/FreeDOS o Windows PE son las opciones de respaldo.
fwupd en ChromeOS: requisitos de Google, informes firmados y disponibilidad
En ChromeOS, fwupd es el mecanismo oficial para actualizar periféricos. Igual que en Linux, las cargas útiles son archivos .cab
alojados en LVFS. La diferencia clave es que Google valida y aplica una lista de permitidos de firmware para garantizar una buena experiencia de usuario. Por tanto, que un firmware esté en LVFS no implica que aparezca automáticamente en ChromeOS.
Google procesa las actualizaciones de fwupd siguiendo el calendario de lanzamientos de Chromium. Si un proveedor necesita compatibilidad nueva con urgencia tras la fecha de feature freeze, debe crear un issue en el Partner Issue Tracker (componente ChromeOS > External > WWCB > PERIPHERAL OEM > fwupd), indicando versión requerida, funciones, bugs corregidos, hardware soportado, marca y modelo, VID:PID y GUID. Con esto, el equipo de ChromeOS puede incorporar la versión de fwupd necesaria y promoverla a canales previos (por ejemplo, canary) para pruebas.
Dos escenarios típicos para periféricos WWCB: si la versión de fwupd en ChromeOS aún no soporta el dispositivo, el ODM/OEM trabaja con el proveedor del chipset para enviar cambios del plugin y ajustes de .quirk
a fwupd upstream. Tras la confirmación de los mantenedores y el lanzamiento oficial (p. ej., 1.8.X), se pide el uprev en ChromeOS. Si ya existe soporte, se pasa directamente a empaquetar el firmware.
Empaquetado y subida a LVFS: todo firmware se sube como .cab
e incluye al menos un .metainfo.xml
que describe dispositivo y firmware. Debe estar en el remoto estable de LVFS (no en privado/embargo/pruebas) y marcado como validado. Si es la primera vez, Google exige que haya al menos dos versiones en estable (una base para probar degradación y la nueva para actualizar).
Pruebas en ChromeOS y “informes firmados”: para que una actualización llegue a los usuarios, debe existir un informe firmado desde ChromeOS. El proceso vincula el dispositivo de pruebas (DUT) con la cuenta del fabricante subiendo el certificado de cliente a LVFS. En el Chromebook, en modo desarrollador, el certificado se ubica en /var/lib/fwupd/pki
. Tras subirlo al perfil de LVFS, se prueban las actualizaciones en el DUT ejecutando:
fwupdmgr refresh
fwupdmgr update
fwupdmgr report-history --sign
Si ya enviaste informes sin firma por error, puedes reenviarlos con:
fwupdmgr report-history --sign --force
El informe firmado puede tardar unas horas en aparecer. En la página del dispositivo de LVFS verás, en “Tested By”, la versión de ChromeOS, la versión de fwupd y la entidad. Cuando “Release Gating” muestre el visto bueno como “Disponible para usuarios de ChromeOS”, al cabo de 24 horas los usuarios podrán ir a Configuración > Acerca de ChromeOS > Actualizaciones de firmware y aplicar la actualización. Ten en cuenta que las actualizaciones no son automáticas: las inicia el usuario y dependen de la urgencia configurada en LVFS (baja/media/alta sin notificación forzada; crítica con aviso en cada inicio).
A partir del hito M126, ChromeOS solo expone actualizaciones cuyo firmware tenga informes firmados. No se admiten cambios a versiones anteriores a través de fwupd; en caso de problema en producción, hay que limpiar el informe firmado en LVFS y asegurarse de que exista una versión base disponible en el remoto estable para futuras pruebas. Todos los dispositivos con M101 o posterior admiten fwupd.
Cómo saber la versión de fwupd en ChromeOS: puedes abrir chrome://system
y buscar fwupd_version
, o en modo desarrollador usar fwupdmgr --version
y comprobar el runtime org.freedesktop.fwupd
. Para activar el modo desarrollador, el procedimiento estándar arranca en modo de recuperación, pide Ctrl + D, confirma con Intro y espera a que el sistema prepare el entorno; es habitual que el proceso tarde de minutos a una hora según el equipo.
Buenas prácticas y recomendaciones de seguridad
La energía manda: conecta el equipo a una fuente estable y, si es un portátil, asegúrate de que la batería esté cargada. Un corte en mitad del flasheo puede dejar el dispositivo inservible.
Verifica identidad y versión: descarga el firmware exacto para tu modelo cuando uses métodos manuales; confundir revisiones de placa o variantes puede ser fatal. En fwupd, revisa los metadatos y los mensajes de confirmación antes de aplicar los cambios.
Lee las notas del proveedor: muchos fabricantes detallan pasos y advertencias críticas en sus páginas de soporte. Si ofrecen copia de seguridad del estado actual, aprovéchala. Y si la actualización corrige problemas de seguridad, conviene no demorarse.
Control del reinicio: aunque fwupd permite posponerlo, evita acumular reinicios pendientes. Cuando le toque, no interrumpas el arranque; verás que la actualización se orquesta automáticamente y el primer inicio puede tardar un poco más.
Todo este ecosistema permite actualizar firmware en Linux de forma fiable y cada vez más universal. Entre fwupd/LVFS para la mayoría de dispositivos modernos, las utilidades UEFI del fabricante cuando no hay soporte y los flujos específicos de ChromeOS con informes firmados, hay soluciones para prácticamente cualquier escenario, con beneficios claros en seguridad y estabilidad del sistema.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.