fwupd es el servicio de Linux para actualizar firmware de forma segura: BIOS/UEFI, SSD NVMe, controladoras Thunderbolt, docks y otros dispositivos. Descarga el firmware firmado por los fabricantes desde LVFS (Linux Vendor Firmware Service) y lo instala sin herramientas propietarias ni pendrives de arranque. En este tutorial usarás fwupdmgr en Ubuntu 24.04 para ver qué dispositivos se pueden actualizar, comprobar si hay versiones nuevas, instalarlas con seguridad, verificar el resultado y volver a la versión anterior si algo no va bien.

Requisitos previos

  • Un servidor físico o un equipo con Ubuntu 24.04 LTS arrancado en modo UEFI. Las actualizaciones de BIOS se entregan como cápsulas UEFI y no funcionan en arranque legacy.
  • Un usuario no root con privilegios sudo.
  • Acceso a Internet hacia cdn.fwupd.org.
  • Una ventana de mantenimiento y copia de seguridad reciente si vas a actualizar la BIOS: el servidor se reiniciará y no debe perder la alimentación durante el proceso.

Comprueba que el sistema arrancó en modo UEFI:

[ -d /sys/firmware/efi ] && echo "UEFI" || echo "BIOS legacy"
UEFI

Paso 1: Instalar fwupd

fwupd viene instalado en la mayoría de imágenes de Ubuntu 24.04. Si no lo tienes, instálalo:

sudo apt update
sudo apt install fwupd

Comprueba la versión:

fwupdmgr --version
runtime   org.freedesktop.fwupd         1.9.16
compile   org.freedesktop.fwupd         1.9.16

No hace falta habilitar ningún servicio: el demonio fwupd se activa solo cuando fwupdmgr lo necesita.

Paso 2: Ver los dispositivos que fwupd puede gestionar

Lista los dispositivos detectados:

sudo fwupdmgr get-devices
PowerEdge R650
│
├─System Firmware:
│     Device ID:          a45df35ac0e948ee180fe216a5f703f32dda163f
│     Current version:    1.12.1
│     Vendor:             Dell Inc. (DMI:Dell Inc.)
│     GUIDs:              cf5a3b8e-47b8-4d0d-a1f6-9b6b4ae0f8f1
│     Device Flags:       • Internal device
│                         • Updatable
│                         • System requires external power source
│                         • Needs a reboot after installation
│
└─SAMSUNG MZQL2960HCJR-00A07:
      Device ID:          71b677ca0f1bc2c5b804fa1d59e52064ce589293
      Current version:    GDC5602Q
      Vendor:             Samsung Electronics Co Ltd (NVME:0x144D)
      Device Flags:       • Internal device
                          • Updatable

Para cada dispositivo fíjate en:

  • Device ID: el identificador que usarás para actuar sobre un dispositivo concreto.
  • Current version: la versión de firmware instalada.
  • Updatable: solo los dispositivos con este flag se pueden actualizar con fwupd.
  • Needs a reboot after installation: la actualización se aplica en el siguiente arranque (típico de la BIOS).

Si tu BIOS no aparece como Updatable, fwupd no puede actualizarla en este modelo y tendrás que usar la herramienta del fabricante o la BMC.

Paso 3: Descargar los metadatos de LVFS y buscar actualizaciones

fwupd necesita el catálogo de firmware de LVFS para saber qué versiones existen. Descárgalo:

sudo fwupdmgr refresh
Updating lvfs
Downloading…             [***************************************]
Successfully downloaded new metadata: 1 local device supported

Consulta qué actualizaciones hay para tus dispositivos:

sudo fwupdmgr get-updates
PowerEdge R650
│
└─System Firmware:
  │   Device ID:          a45df35ac0e948ee180fe216a5f703f32dda163f
  │   Current version:    1.12.1
  │
  └─PowerEdge R650 System BIOS:
        New version:      1.14.1
        Remote ID:        lvfs
        Release ID:       118204
        Summary:          Firmware for the Dell PowerEdge R650
        Variant:          Dell
        Urgency:          High
        Vendor:           Dell Inc.
        Description:      
        This stable release fixes the following security issues: CVE-...

Lee siempre la descripción: indica qué corrige la versión y si incluye parches de seguridad. Si no hay nada nuevo, el comando responde que no hay actualizaciones disponibles.

Ubuntu ya descarga los metadatos de forma periódica con un temporizador de systemd. Compruébalo con:

systemctl list-timers fwupd-refresh.timer

Paso 4: Instalar las actualizaciones

Antes de actualizar, anota las versiones actuales del paso 2 y asegúrate de tener copia de seguridad. En un servidor, actualiza los dispositivos de uno en uno para saber qué ha cambiado en cada reinicio. Pasa el Device ID del dispositivo:

sudo fwupdmgr update a45df35ac0e948ee180fe216a5f703f32dda163f

fwupdmgr muestra la versión que va a instalar y pide confirmación. En la BIOS, descarga el archivo, lo prepara como cápsula UEFI y te pide reiniciar:

Upgrade System Firmware from 1.12.1 to 1.14.1?
...
Perform operation? [Y|n]: y
Downloading…             [***************************************]
Scheduling…              [***************************************]
Successfully installed firmware
An update requires a reboot to complete. Restart now? [y|N]: 

Puedes reiniciar en ese momento o responder N y hacerlo dentro de la ventana de mantenimiento:

sudo systemctl reboot

Durante el reinicio el firmware aplica la cápsula antes de cargar Ubuntu. El servidor puede tardar varios minutos más de lo normal y reiniciarse más de una vez: no lo apagues.

Si prefieres actualizar todo lo pendiente de una vez, ejecuta sudo fwupdmgr update sin argumentos.

Paso 5: Verificar la actualización

Cuando el sistema vuelva a arrancar, consulta el historial de fwupd:

sudo fwupdmgr get-history
└─System Firmware:
      Device ID:          a45df35ac0e948ee180fe216a5f703f32dda163f
      Previous version:   1.12.1
      Update State:       Success
      Last modified:      2026-09-25 03:12
      ...

Update State: Success confirma que el firmware se aplicó. Contrasta la versión de BIOS con la que informa el propio firmware:

sudo dmidecode -s bios-version
1.14.1

Si ves Update State: Failed, el campo Update Error explica el motivo. Revisa también sudo journalctl -u fwupd -b para ver el registro del arranque actual.

Paso 6: Volver a una versión anterior

Si tras una actualización aparece un problema, fwupd permite instalar una versión anterior siempre que el fabricante la mantenga publicada en LVFS y el dispositivo acepte downgrades. Consulta las versiones disponibles para el dispositivo:

sudo fwupdmgr get-releases a45df35ac0e948ee180fe216a5f703f32dda163f

Y ejecuta el downgrade, que te ofrecerá las versiones anteriores para que elijas:

sudo fwupdmgr downgrade a45df35ac0e948ee180fe216a5f703f32dda163f

Algunas BIOS bloquean la vuelta atrás por seguridad (protección anti-rollback). En ese caso fwupd no ofrecerá versiones anteriores y la única opción es el soporte del fabricante.

Paso 7: Revisar la seguridad de la plataforma (opcional)

fwupd también evalúa la configuración de seguridad del firmware: Secure Boot, protección de la SPI flash, cifrado de memoria y otras medidas, agrupadas en niveles HSI (Host Security ID):

sudo fwupdmgr security
Host Security ID: HSI:1! (v1.9.16)

HSI-1
✔ BIOS firmware updates:         Enabled
✔ SPI write:                     Disabled
✘ UEFI secure boot:              Disabled
...

Las líneas con ✘ son medidas desactivadas. No todas aplican a un servidor, pero sirven como lista de revisión de la configuración de la BIOS.

Solución de problemas

No detected devices o la BIOS no aparece. El sistema arrancó en modo legacy, el fabricante no publica ese firmware en LVFS o estás en una máquina virtual. Comprueba el modo UEFI como en los requisitos y consulta si tu modelo está en fwupd.org/lvfs/devices.

El dispositivo aparece pero no se actualiza. Revisa Device Flags y Update Error en sudo fwupdmgr get-devices. Mensajes como requires AC power o Battery level is too low bloquean la actualización hasta que se cumple la condición.

La actualización de BIOS se programa pero nunca se aplica. La cápsula se carga desde la partición EFI con el binario de fwupd. Comprueba que /boot/efi está montado con findmnt /boot/efi y que Secure Boot no rechaza el cargador: en Ubuntu el paquete fwupd-signed aporta la versión firmada.

Error al descargar metadatos. Comprueba la hora del sistema con timedatectl (una fecha incorrecta invalida las firmas) y el acceso a cdn.fwupd.org. Después repite sudo fwupdmgr refresh --force.

Conclusión

Con fwupd puedes mantener actualizados la BIOS y el firmware de los dispositivos compatibles desde la propia línea de comandos, con firmware firmado por el fabricante, historial de cambios y posibilidad de volver atrás. Como siguientes pasos:

  • Incluye sudo fwupdmgr get-updates en tu revisión periódica de parches y agrupa las actualizaciones de BIOS en ventanas de mantenimiento.
  • Actualiza el firmware de la BMC y de las controladoras RAID con las herramientas del fabricante cuando no estén en LVFS.
  • Vigila la salud de los discos con smartmontools después de actualizar el firmware de un SSD.