- Fwupd y LVFS permiten actualizar BIOS, UEFI y periféricos directamente desde Linux sin depender de Windows ni herramientas propietarias.
- La instalación y uso básico se basan en unos pocos comandos para detectar dispositivos, refrescar metadatos y aplicar actualizaciones.
- Las versiones 2.0 y 2.1.2 de fwupd mejoran el rendimiento, la seguridad y amplían el soporte a nuevos dispositivos y plataformas como Chromebooks.
- Cuando fwupd no es viable, siguen existiendo métodos alternativos como utilidades UEFI, USB con FreeDOS o herramientas específicas de Windows.
Si usas Linux a diario y tienes un portátil u ordenador de marca, seguramente más de una vez te habrás preguntado cómo demonios se actualiza la BIOS, la UEFI o el firmware de tus periféricos sin tener que volver a instalar Windows. La respuesta en la mayoría de los casos se llama fwupd, una herramienta que se ha convertido en el estándar para poner al día el firmware desde tu distribución favorita.
Lo interesante es que, gracias al servicio LVFS (Linux Vendor Firmware Service), ya no es necesario andar descargando ejecutables raros, crear USBs con FreeDOS o arrancar un Windows que ni quieres ver. Con unos cuantos comandos podrás comprobar qué dispositivos admiten actualizaciones, descargarlas e instalarlas de forma bastante segura, siempre que tu fabricante colabore con el proyecto.
Qué es fwupd y cómo encaja LVFS en todo esto
Fwupd es un proyecto de código abierto pensado para gestionar y actualizar firmware de forma centralizada en sistemas Linux. Está diseñado para que los fabricantes no tengan que crear paquetes específicos para cada distribución, sino que puedan subir sus actualizaciones a un repositorio común en formato .cab con metadatos adicionales, parecido a como se hace en Windows pero integrado con el ecosistema del software libre.
Detrás de fwupd está LVFS (Linux Vendor Firmware Service), un servicio en el que los fabricantes registran sus dispositivos y publican las versiones de firmware. Actualmente el catálogo de LVFS abarca más de mil seiscientos dispositivos de alrededor de 160 fabricantes, y la lista crece versión tras versión, incluyendo BIOS/UEFI de portátiles y sobremesa, docks USB-C, ratones, controladores táctiles, cámaras y bastante hardware profesional.
La idea es que tu distribución se comunique con LVFS a través de fwupd, descargue la información de las versiones disponibles y aplique las actualizaciones usando mecanismos estandarizados (capsules UEFI, USB DFU, NVMe, HID, etc.). Todo esto ocurre sin tener que abandonar Linux y, en muchos casos, sin siquiera cerrar tu sesión gráfica, salvo cuando el propio firmware exige un reinicio.
Además, fwupd se integra con herramientas gráficas como GNOME Software y KDE Discover, de modo que en muchos escritorios verás las actualizaciones de firmware mezcladas con las del sistema. Pero el corazón del invento sigue siendo la línea de comandos, a través de la utilidad fwupdmgr, que es donde realmente tienes todo el control fino.
Ventajas de actualizar el firmware en Linux con fwupd

La principal ventaja de fwupd es que olvidas el clásico «arranca en Windows para actualizar la BIOS». Si tienes un Dell, Lenovo ThinkPad, HP, equipos Intel NUC y muchas otras marcas, puedes aplicar las mismas actualizaciones que antes solo estaban soportadas en herramientas propietarias, pero directamente desde tu distribución.
A nivel de seguridad, mantener el firmware al día es crítico: las nuevas versiones no solo corrigen fallos de estabilidad o rendimiento, también solucionan vulnerabilidades graves que afectan a la UEFI, al controlador Thunderbolt, a chips USB o a dispositivos de red. En entornos corporativos y de administraciones públicas esto marca la diferencia entre un parque de equipos seguro y un posible desastre.
Otra ventaja es que fwupd soporta una gama muy amplia de dispositivos: firmware de UEFI, tarjetas gráficas externas o docks, dispositivos USB, controladores táctiles, pantallas, ratones, teclados, hubs USB, cámaras integradas, módems que se exponen como ttyUSB y, en general, buena parte del hardware moderno que llega al mercado con soporte oficial para LVFS.
El sistema también está pensado para integrarse con los mecanismos de actualización de cada distribución. Muchas distros ya incluyen fwupd de serie e incluso activan un servicio y un temporizador systemd para automatizar la comprobación periódica de nuevos firmwares, de forma similar a como se hace con los paquetes del sistema. Aun así, siempre puedes optar por un enfoque totalmente manual si prefieres tener la última palabra en cada actualización.
Por último, fwupd no se limita al escritorio clásico. La arquitectura está preparada para funcionar en servidores, dispositivos IoT, portátiles, convertibles e incluso Chromebooks, como veremos con el soporte para Google Moonstone. Eso abre la puerta a gestionar grandes flotas de dispositivos desde Linux sin depender de scripts caseros o herramientas cerradas.
Cómo instalar fwupd en las principales distribuciones

En muchas distribuciones modernas, fwupd viene preinstalado y no tendrás que hacer nada, sobre todo en Ubuntu como sistema operativo. Aun así, merece la pena comprobarlo porque a veces el paquete está disponible pero no instalado por defecto, sobre todo en sistemas minimalistas o ediciones orientadas a servidores.
En Debian, Ubuntu y derivadas, el paquete se instala con los comandos habituales del gestor APT; consulta nuestra guía completa de Debian. Basta con actualizar el índice de paquetes y después instalar fwupd desde los repositorios oficiales, sin necesidad de PPA ni historias raras:
sudo apt-get update
sudo apt-get install fwupd
En Fedora, que suele ir muy al día con todo lo relacionado con firmware, fwupd también está disponible en los repos oficiales. Se instala con DNF como cualquier otro paquete del sistema, y en muchas ediciones ya lo tendrás activo por defecto:
sudo dnf install fwupd
Si usas Arch Linux o una distribución basada en Arch (Manjaro, EndeavourOS y similares), encontrarás fwupd en los repositorios oficiales y puedes instalarlo con pacman como cualquier otro componente de sistema:
sudo pacman -S fwupd
En otras distros (openSUSE, AlmaLinux, Rocky, etc.) el patrón es el mismo: buscar el paquete “fwupd” en el gestor de paquetes de turno e instalarlo desde los canales oficiales. La documentación de cada distribución suele incluir una sección específica sobre cómo gestionar los paquetes básicos, así que si andas un poco perdido lo mejor es revisar su wiki antes.
Primeros pasos: detectar dispositivos y refrescar metadatos
Una vez instalado el paquete, lo siguiente es comprobar qué ve fwupd en tu máquina. El comando de referencia para esto es:
fwupdmgr get-devices
Este comando analiza el sistema y lista todos los dispositivos que fwupd reconoce y para los que podría gestionar firmware. Si tu equipo es, por ejemplo, un Dell Latitude o un sobremesa Dell Precision, es muy probable que aparezcan la BIOS/UEFI, el controlador Thunderbolt, el firmware del dock USB-C, algún chip de entrada táctil y, con un poco de suerte, hasta la cámara integrada.
Es importante entender que la lista de dispositivos soportados en LVFS no es completamente exhaustiva. Puede suceder que tu modelo concreto no aparezca en la página de dispositivos de LVFS y, aun así, fwupd siga teniendo soporte genérico para el proveedor (Dell, Lenovo, HP, etc.). Lo ideal es verificar tanto el resultado de fwupdmgr get-devices como el catálogo de LVFS.
Antes de buscar actualizaciones, conviene actualizar la base de datos de firmware disponibles desde LVFS. Para ello se utiliza:
sudo fwupdmgr refresh
Con este comando, fwupd descarga los últimos metadatos de LVFS y se asegura de que tu sistema conoce la versión más reciente de cada dispositivo soportado. Este paso es clave para evitar que se te escape una actualización crítica simplemente porque tenías la caché desfasada.
Cómo buscar e instalar actualizaciones de firmware con fwupd
Con los metadatos al día, el siguiente paso es comprobar si hay algo pendiente para tu hardware. Para eso se recurre al comando:
fwupdmgr get-updates
Este comando analiza los dispositivos detectados y muestra una lista de posibles actualizaciones de firmware, indicando el dispositivo afectado, la versión instalada y la nueva versión disponible. Si no hay nada, te lo dirá de forma clara; si hay varias cosas, verás un pequeño resumen con cada elemento actualizable.
Si decides aplicarlo todo de golpe, la forma más sencilla es usar:
sudo fwupdmgr update
Con esta orden, fwupd descarga e instala todas las actualizaciones de firmware disponibles para tu equipo. Dependiendo del tipo de dispositivo, algunas actualizaciones se aplican al vuelo y otras se programan para el próximo reinicio utilizando mecanismos como las cápsulas UEFI. Antes de tocar nada sensible, la herramienta suele pedir confirmación y mostrar mensajes bastante claros.
En algunos casos es posible que solo quieras actualizar un dispositivo concreto, por ejemplo el dock USB-C o un ratón inalámbrico específico. En ese caso, puedes indicar el identificador del dispositivo que obtuviste con fwupdmgr get-devices y hacer algo como:
sudo fwupdmgr update <DEVICEID>
Una vez completado el proceso, es habitual que fwupd ofrezca reiniciar el sistema para aplicar ciertas actualizaciones. No siempre es obligatorio reiniciar al instante, pero cuando toque hacerlo es fundamental no interrumpir el arranque: la BIOS o el firmware correspondiente ejecutará el flasheo y, durante esos minutos, cortar la energía puede dejar el dispositivo inutilizable.
Experiencia práctica en equipos Dell y otros sistemas de marca
En la práctica, fwupd se ha probado ampliamente en máquinas de fabricantes como Dell, Lenovo, HP, ASUS e Intel, con resultados bastante positivos. Por ejemplo, en un Dell Latitude 7390 con procesador Intel de 8.ª generación y un sobremesa Dell Precision 3450 de 10.ª generación, los pasos fueron exactamente los que hemos comentado:
fwupdmgr get-devices
sudo fwupdmgr refresh
fwupdmgr get-updates
sudo fwupdmgr update
En estos casos, fwupd detectó varios firmwares pendientes (BIOS/UEFI y algún componente adicional) y programó las actualizaciones para el siguiente reinicio. El portátil, por ejemplo, desplegó una pantalla durante el arranque donde se aplicaron tres archivos de firmware consecutivos, tardando menos de cinco minutos en completo el proceso y reiniciando solo al finalizar.
Es normal que el primer arranque después de una actualización de firmware sea un poco más lento, ya que el sistema realiza comprobaciones internas y, en ocasiones, migra configuraciones. Si todo ha ido bien, los siguientes arranques vuelven a la normalidad y podrás comprobar con fwupdmgr get-devices o fwupdmgr history que las versiones instaladas son las nuevas.
Para quien prefiera la automatización, fwupd incluye un servicio y un temporizador systemd que se pueden habilitar para buscar y aplicar actualizaciones de manera programada. Aun así, muchos usuarios avanzados eligen mantenerlo en modo manual para decidir exactamente cuándo tocar el firmware, especialmente en entornos de producción o en equipos que no pueden permitirse un reinicio inesperado.
Novedades destacadas en fwupd 2.0
La rama 2.0 de fwupd supuso un cambio importante en las tripas del proyecto. Una de las mejoras clave fue el paso de utilizar el enlace GObject de GUsb a acceder directamente a libusb y sysfs. Gracias a esto, la emulación de dispositivos se trasladó a la biblioteca libfwupdplugin, lo que permitió simular actualizaciones de firmware para dispositivos ficticios de tipo USB, hidraw y NVMe.
Esta capacidad de emulación facilita mucho la detección de posibles errores antes de que lleguen a los usuarios finales, ya que se pueden probar cambios de fwupd contra dispositivos virtuales y ver cómo se comportan las actualizaciones en distintos escenarios (cortes inesperados, fallos de validación, formatos corruptos, etc.).
Otro cambio significativo fue la eliminación de la dependencia de la biblioteca GUdev. En lugar de utilizar enlaces GObject sobre libudev, el proceso principal de fwupd ahora crea un socket netlink y analiza directamente los eventos de udev. Esto reduce de forma notable el consumo de memoria y la carga de CPU, tanto al iniciar como durante el funcionamiento normal.
Estas optimizaciones también simplifican la futura integración de fwupd con ueventd y la compatibilidad con plataformas como Android, lo que abre la puerta a actualizar firmware desde entornos más allá del escritorio tradicional. Además, se optimizó la transferencia de firmware desde archivos a dispositivos utilizando descriptores de archivo en lugar de copiar los datos completos en memoria, reduciendo aún más el uso de recursos.
La versión 2.0 también añadió soporte para nuevos dispositivos, interrumpió compatibilidad con metadatos y formatos heredados que ya no tenían sentido y retiró antiguas utilidades de línea de comandos que estaban obsoletas. Se incorporó una API para cargar informes en la herramienta gráfica gnome-firmware y se añadió soporte de compilación para la plataforma Darwin, ampliando el alcance del proyecto.
Qué aporta fwupd 2.1.2 al ecosistema de firmware
La versión 2.1.2 de fwupd refuerza la consolidación de las actualizaciones de firmware desde Linux en sobremesas, portátiles y periféricos muy presentes en el mercado. No se limita a corregir pequeños bugs, sino que amplía compatibilidad con nuevo hardware y pule el comportamiento interno del daemon que se ejecuta en segundo plano.
Uno de los puntos fuertes de esta versión es la ampliación del listado de dispositivos soportados directamente desde Linux. Entre otros, se añade soporte para ratones HP 400 y 405, un dock Lenovo USB-4, hubs USB Parade con control GPIO y controladores táctiles de proveedores como Elan, LX Semicon y Raydium, además de dispositivos Pixart PLP239 y cámaras basadas en tecnología Sunplus.
Este incremento de compatibilidad tiene un impacto muy tangible: usuarios y organizaciones pueden mantener al día el firmware de ratones, cámaras, docks y paneles táctiles sin abandonar Linux, algo especialmente útil en oficinas, centros educativos y administraciones donde cada vez hay más equipos heterogéneos mezclando periféricos de distintas marcas.
Además, fwupd 2.1.2 mejora el soporte para módems que se presentan como dispositivos ttyUSB, muy habituales en conectividad 3G/4G, comunicaciones industriales y entornos M2M. Los cambios en el daemon proporcionan un comportamiento más predecible al gestionar actualizaciones de firmware en este tipo de hardware, reduciendo el riesgo de sorpresas en despliegues remotos.
La versión también incluye correcciones específicas y “quirks” para modelos concretos que requieren tratamientos especiales, evitando fallos o bloqueos durante el flasheo. En un ecosistema tan variado como el de Linux, estos retoques finos son cruciales para garantizar que el proceso de actualización sea lo más robusto posible en diferentes generaciones de hardware.
Soporte para Google Moonstone y Chromebooks
Un detalle llamativo de fwupd 2.1.2 es la referencia a Google Moonstone, un nombre en clave que apunta a un futuro modelo de Chromebook. En concreto, se ha incorporado el identificador de hardware para actualizar el firmware del touchpad basado en tecnología Elan en ese dispositivo.
Esto sugiere que los nuevos Chromebooks podrán integrarse con el ecosistema de actualización de firmware abierto desde el primer día, sin depender únicamente de herramientas propietarias. Para centros educativos, administraciones públicas y empresas que apuestan por estos equipos, tener una vía estándar para mantener el firmware al día es un punto muy a favor.
Aunque Moonstone todavía no esté disponible en el mercado, el hecho de que su soporte llegue ya a fwupd indica una clara anticipación por parte tanto del proyecto como de los fabricantes implicados. El objetivo es que cuando estos modelos se desplieguen a gran escala, el sistema de actualización de firmware vía LVFS ya esté listo y bien probado.
Mejoras internas, seguridad y nuevas funciones de fwupd
Cada nueva versión de fwupd suele traer un buen puñado de cambios internos orientados a la seguridad y la estabilidad. En las últimas entregas se han añadido, por ejemplo, límites a la relación de descompresión al analizar archivos ZIP para evitar ataques tipo “emulation ZIP bomb”, límites al número máximo de ficheros que se pueden procesar y validaciones adicionales para evitar desbordamientos, accesos a punteros nulos y otros problemas típicos de parsing.
También se han incorporado comprobaciones específicas para cápsulas UEFI, como limitar el tamaño del payload a menos de 4 GiB, y se han restaurado verificaciones de ID de fabricante en sondas concretas (por ejemplo, en dispositivos Algoltek USBCR). Todo ello reduce las posibilidades de que un firmware mal formado o malicioso bloquee la herramienta o comprometa el sistema.
En paralelo, el proyecto ha añadido opciones para establecer versiones máximas permitidas para ciertos dispositivos, gestionar flags de contexto a partir de coincidencias de HWID, incrementar la precisión de la barra de progreso y controlar mejor situaciones en las que se requiere desconectar y reconectar el dispositivo durante la actualización.
Se han solucionado fugas de memoria pequeñas, errores en validaciones CRC de firmwares ZIP, problemas al tratar dispositivos nórdicos conectados vía dongle y detalles con cargas de firmware a través de Redfish o snapd. El resultado es una herramienta más robusta no solo en el escritorio doméstico, sino también en entornos de servidor y hardware remoto.
Por último, fwupd ha ido añadiendo comandos avanzados como fwupdtool esp-list --json, que permiten mostrar información de archivos ESP en formato JSON y especificar dispositivos emulados en la configuración, algo muy útil para integradores y desarrolladores que prueban flujos de actualización complejos.
Alternativas a fwupd para actualizar firmware en Linux
Aunque fwupd cubre cada vez más escenarios, no es la única forma de actualizar firmware desde un sistema con Linux, y en ciertos casos ni siquiera será la opción adecuada. Conviene conocer las alternativas para no quedarse bloqueado cuando un dispositivo concreto no aparece en LVFS o cuando el fabricante solo ofrece sus herramientas en otros formatos.
El método más común de siempre sigue siendo la utilidad de actualización integrada en la BIOS/UEFI del fabricante. La mayoría de placas base y equipos de marca permiten flashear firmware desde la propia interfaz UEFI: descargas el archivo (a menudo .bin o .rom) desde la web oficial, lo copias a una memoria USB en FAT32, entras en la BIOS y usas opciones del estilo «EZ Flash», «Q-Flash» o similares para aplicar la actualización.
Para hardware antiguo, a veces solo hay disponible un ejecutable de DOS o FreeDOS. En ese caso se crea un USB booteable con FreeDOS, se copia el programa de flasheo y se ejecuta desde la línea de comandos tras arrancar desde ese USB. Es un método menos frecuente hoy en día, pero todavía útil para ciertas placas viejas o dispositivos heredados.
Otra posibilidad, si el fabricante solo distribuye actualizadores para Windows, es recurrir a un entorno Windows temporal (dual boot o Windows PE). Se arranca ese Windows, se ejecuta el instalador oficial de firmware y se deja que haga su trabajo. No es lo ideal para quien vive exclusivamente en Linux, pero a veces es la única vía oficialmente soportada.
Sea cual sea el método elegido, siempre hay unas cuantas reglas de oro: asegurarte de que el equipo está bien alimentado (batería cargada y alimentador conectado en portátiles), verificar que el fichero de firmware corresponde exactamente a tu modelo, leer las instrucciones oficiales con calma y, si es posible, hacer copia de seguridad de la configuración o del propio firmware anterior.
En definitiva, fwupd ha reducido muchísimo la necesidad de recurrir a estos métodos alternativos, pero es bueno tenerlos en la recámara cuando trabajas con hardware exótico o muy antiguo que nunca llegará a LVFS.
Con todo lo anterior, queda claro que fwupd se ha convertido en una pieza central para mantener el firmware al día en sistemas Linux modernos: simplifica el proceso para usuarios domésticos, mejora la trazabilidad y la seguridad en empresas y administraciones, y se anticipa al hardware que está por venir (Chromebooks, nuevos periféricos, servidores específicos). Entender cómo funciona, qué versiones aportan y cómo convivir con los métodos clásicos de actualización te permitirá mantener tu equipo en buena forma sin tener que salir de tu zona de confort en Linux.
