Cómo acceder y actualizar la configuración de firmware (BIOS/UEFI) desde Linux con systemctl y systemd

Última actualización:
Autor:
  • El acceso al firmware desde Linux es más fácil gracias a UEFI y systemd.
  • Actualizar BIOS/UEFI y microcódigo requiere precauciones y fuentes oficiales.
  • systemctl reboot --firmware-setup permite, cuando está soportado, reiniciar directamente al firmware setup.

bios uefi

En el mundo de los sistemas operativos, acceder a la configuración de firmware (BIOS/UEFI) desde Linux, especialmente mediante comandos como systemctl reboot --firmware-setup, es un recurso cada vez más demandado. Con la llegada de arranques ultrarrápidos, métodos tradicionales como pulsar repetidamente una tecla al encender el equipo pueden resultar ineficaces o poco prácticos. Así, los usuarios buscan formas directas, seguras y modernas para interactuar con el firmware desde distribuciones modernas con systemd.

En este artículo te mostraré de forma detallada y exhaustiva todo lo relativo al acceso, la gestión y la actualización del firmware (BIOS/UEFI) y microcódigo en sistemas Linux contemporáneos. Además, aprenderás a entender el proceso de arranque, la función de UEFI, el rol de systemd y los riesgos y precauciones asociadas, para que puedas manipular tu sistema con seguridad y precisión. A lo largo del texto encontrarás consejos avanzados, trucos útiles y explicaciones claras adaptadas tanto para usuarios noveles como para administradores de sistemas avanzados.

¿Qué es el firmware y por qué es importante?

El firmware es el software básico integrado en tu hardware que controla su funcionamiento a bajo nivel. Entre los tipos de firmware más conocidos encontramos la BIOS (Basic Input/Output System) o su sucesora UEFI (Unified Extensible Firmware Interface). Además, cada componente de tu equipo —disco duro, tarjeta de red, CPU, etc.— puede tener su propio firmware.

Actualizar el firmware, así como acceder a su configuración, es fundamental para garantizar que el hardware funcione de manera óptima, segura y compatible con las nuevas versiones de los sistemas operativos y las aplicaciones.

¿Qué es UEFI y cómo ha cambiado todo?

La llegada de UEFI ha supuesto una revolución frente a la antigua BIOS. UEFI no solo incluye nuevas funcionalidades, sino que introduce un proceso de arranque más seguro, rápido y flexible. Entre sus principales ventajas están la compatibilidad con discos de gran tamaño, el sistema de partición ESP (EFI System Partition) y la posibilidad de ejecutar aplicaciones EFI externas, funcionalidades extendidas y configuraciones más avanzadas que la BIOS tradicional jamás pudo ofrecer.

Además, UEFI permite que el sistema operativo tenga cierto control sobre el arranque y la administración del firmware incluso desde el propio sistema, lo que facilita, por ejemplo, la reinicialización directa al setup del firmware sin necesidad de estar rápido pulsando una tecla específica durante el arranque.

Proceso de arranque en sistemas Linux modernos

El arranque de un sistema Linux es un proceso estructurado en varias fases:

  • Firmware (BIOS/UEFI): inicializa y comprueba el hardware.
  • Gestor de arranque (como GRUB2): carga el núcleo del sistema operativo y el initramfs/initrd.
  • Inicialización del sistema: mediante systemd en la mayoría de distribuciones actuales, gestiona los servicios y unidades de sistema y usuario.

En máquinas con UEFI, todo empieza con el firmware leyendo la partición ESP para encontrar el cargador de arranque. Una vez cargado el núcleo, se activa systemd como PID 1, el proceso padre de todos los servicios.

  reg.exe y regini.exe: Qué son, para qué sirven y cómo usarlos en Windows

systemd, systemctl y el acceso al firmware

systemd es hoy el sistema de inicio y gestión de servicios por defecto en muchas distribuciones Linux (Debian, Ubuntu, Arch, Fedora, etc).

El comando systemctl reboot --firmware-setup permite, en equipos con soporte, reiniciar directamente el sistema para entrar en la configuración del firmware UEFI, sin pulsar teclas extrañas ni interrumpir el arranque.

No todos los equipos soportan esta función. Depende de la implementación del firmware y de si tu distribución y tu núcleo han sido compilados con la opción habilitada. Aun así, es una mejora enorme en términos de usabilidad y accesibilidad.

Pasos para acceder a la configuración de firmware UEFI desde Linux con systemctl

Sigue estos pasos para asegurarte de poder acceder a la configuración de tu firmware desde Linux:

  1. Verifica que tu equipo arranca en modo UEFI. Puedes comprobarlo ejecutando ls /sys/firmware/efi; si aparece contenido, estás usando UEFI.
  2. Abre una terminal con privilegios de administrador. En la mayoría de distribuciones, esto puedes hacerlo usando sudo antes de los comandos.
  3. Ejecuta:
    sudo systemctl reboot --firmware-setup

    El sistema debería reiniciarse y entrar automáticamente en la pantalla de configuración del firmware UEFI.

  4. Si el comando no funciona, puede que tu firmware no lo soporte o que tu kernel/distribución no estén actualizados. Consulta la documentación específica de tu placa base y considera actualizar el sistema.

Otras formas de entrar en BIOS/UEFI desde Linux, Windows y Mac

Existen alternativas para acceder al firmware, tanto desde otros sistemas operativos como mediante métodos manuales:

  • Desde Windows 10/11: Ve a Configuración → Actualización y seguridad → Recuperación → Inicio avanzado. Tras el reinicio, selecciona Solucionar problemas → Opciones avanzadas → Configuración de firmware UEFI.
  • Desde un Mac: Apaga el equipo, pulsa el botón de encendido y mantén presionadas las teclas CMD+OPT+O+F al arrancar para acceder al prompt.
  • Método tradicional: Pulsar la tecla específica durante el arranque (Supr, F2, Esc, F10, etc.), dependiendo del fabricante. Este método sigue siendo válido, pero puede fallar si el arranque es demasiado rápido o si tienes Fast Boot activado.

Teclas comunes para acceder al firmware según el fabricante

  • Clónicos y ASRock, ASUS, Acer, Gigabyte, MSI, Zotac: F2 o Supr (Del)
  • Dell: F2 o F12
  • HP: F10
  • Lenovo: Portátiles: F2/Fn+F2; Sobremesas: F1; ThinkPads: Intro+F1
  • Microsoft Surface: Mantener Volumen +
  • Samsung, Toshiba, Sony VAIO: F2 o F1 (según modelo)

Consideraciones y riesgos antes de actualizar el firmware

Actualizar el firmware o flashear la BIOS/UEFI no está exento de riesgos. Aunque la probabilidad de dañar el equipo es cada vez menor, un fallo durante la actualización (por ejemplo, un apagón eléctrico inesperado) puede derivar en un «brick», dejando el equipo inutilizable.

Consejos clave antes de actualizar:

  • Descarga siempre el firmware de fuentes oficiales o la web del fabricante de tu equipo. Nunca te fíes de archivos de procedencia dudosa.
  • Verifica que el firmware sea específico para tu modelo. Usar un binario incorrecto puede hacer que el sistema no arranque.
  • Si es posible, usa un SAI (Sistema de Alimentación Incondicional) al actualizar para evitar problemas en caso de cortes eléctricos.
  • Haz una copia de seguridad de tu configuración.

Cómo saber la versión actual de tu firmware

En Linux, puedes consultar la versión del BIOS/UEFI y otros datos del firmware fácilmente:

  • Herramientas gráficas: AIDA64, CPU-Z, CPU-X, Hardinfo.
  • Desde la terminal:
    • Usa dmidecode -t bios para obtener información detallada del BIOS/UEFI.
    • Usa sudo dmesg | grep -i firmware para buscar mensajes relacionados.

Actualizar el firmware desde Linux y desde Windows

Desde Windows

  1. Accede al firmware (BIOS/UEFI) para anotar la versión actual.
  2. Consulta la web del fabricante buscando una versión más nueva.
  3. Descarga el archivo de actualización, habitualmente en formato ZIP.
    • Si es un ejecutable: ejecuta el programa y sigue las instrucciones, cerrando previamente todas las aplicaciones y el antivirus.
    • Si es un archivo para actualizar desde el propio UEFI: descomprime en un USB (formateado en FAT32), arranca el PC y utiliza la utilidad de actualización de la BIOS/UEFI desde el menú correspondiente.
  4. Reinicia y verifica que el cambio ha sido efectivo.

Desde GNU/Linux

  1. Descarga el archivo del firmware desde la web oficial del fabricante (ZIP, imagen o binario).
  2. Instala flashrom si no lo tienes:
    sudo apt install flashrom
  3. Haz copia de seguridad de tu firmware actual:
    sudo flashrom -p internal -r backup_bios.bin
  4. Flashea el firmware nuevo:
    sudo flashrom -p internal -w firmware_nuevo.bin
  5. Reinicia el sistema y comprueba la versión.

Herramientas adicionales recomendadas: fwupd, BIOSDisk, UEFITool, FWTS.

Actualización de microcódigo de la CPU

El microcódigo es el firmware interno de la CPU. Puede actualizarse automáticamente junto con la BIOS/UEFI, a través de actualizaciones del sistema operativo o mediante paquetes específicos.

Las actualizaciones de microcódigo suelen instalarse automáticamente con las actualizaciones del sistema operativo. En sistemas ARM o RISC-V, consulta el soporte de tu fabricante específico.

Herramientas de gestión y diagnóstico del firmware

  • FWTS (Firmware Test Suite): permite comprobar el estado de salud del firmware y detectar errores o incompatibilidades.
  • UEFITool: facilita la manipulación y gestión de imágenes de firmware.
  • journalctl: útil para consultar los logs del sistema (journalctl -b para ver el último arranque, o journalctl --file=/ruta/var/log/journal/ para analizar registros en discos desmontados).
  • dmesg: para consultar mensajes de arranque y problemas relacionados con el hardware y el firmware. La opción dmesg --pager puede paginar automáticamente la salida.

Configurar y entender systemd para gestionar el arranque

systemd es un gestor de servicios que organiza el proceso de arranque en unidades y dependencias declarativas, no mediante scripts de procedimiento como el antiguo SysVinit.

  • Las unidades principales están en /lib/systemd/system y /etc/systemd/system.
  • El comando systemctl sirve para consultar, activar, detener y reiniciar servicios, dispositivos, sockets y objetivos (targets). Este artículo sobre arranque dual puede ser útil para entender cómo gestionar diferentes sistemas en tu equipo.
  • Para ver el estado de un servicio (por ejemplo, NetworkManager): systemctl status NetworkManager

systemd ofrece compatibilidad con scripts antiguos de /etc/init.d/ y permite la conversión fácil hacia unidades modernas. Además, incorpora sistemas de logging avanzados a través de systemd-journald, almacenando logs tanto de kernel como de servicios.

Otros aspectos clave sobre el arranque y la gestión de módulos

La inicialización del sistema incluye también la carga de módulos del kernel (drivers y controladores) para el soporte de hardware:

  • modprobe: permite cargar y descargar módulos manualmente.
  • lsmod: muestra los módulos cargados en el sistema.
  • modinfo: proporciona información detallada sobre un módulo concreto.
  • La configuración de carga automática de módulos se gestiona en /etc/modprobes.d/ y /etc/modules.

El sistema udev detecta automáticamente el hardware y puede cargar los módulos necesarios.

Acceso y actualización del firmware de otros dispositivos (routers, impresoras, etc.)

El firmware de routers, impresoras y otros dispositivos suele requerir su propio procedimiento de actualización:

  1. Identifica la IP del dispositivo (habitualmente 192.168.1.1 o 192.168.0.1 para routers), usando ipconfig en Windows, ip route show en Linux o desde los ajustes de red en sistemas móviles.
  2. Accede con el usuario y contraseña correspondiente (suele estar en una etiqueta bajo el dispositivo o ser valores por defecto del fabricante).
  3. En la web de configuración, busca la sección «Firmware Update» o similar.
  4. Descarga el firmware específico para tu modelo del sitio oficial, descomprime si es ZIP, y usa la opción «Examinar/Actualizar» para cargarlo.
  5. Espera a que el proceso termine y reinicia el dispositivo si es necesario.
  6. Verifica la versión del firmware tras el proceso.

Muchos fabricantes ofrecen utilidades o centros de software específicos para facilitar la actualización y gestión de drivers y firmware en sus dispositivos.

Seguridad y mantenimiento del sistema después de las actualizaciones

Tras una actualización de firmware, BIOS/UEFI o microcódigo, es recomendable comprobar que el sistema arranca correctamente y que no hay alertas ni errores en los logs. Usa dmesg y journalctl para monitorizar posibles avisos. Si detectas problemas, intenta restaurar el firmware previo desde tu copia de seguridad.

La gestión y actualización de firmware y microcódigo en Linux ha avanzado significativamente, permitiendo a los usuarios mantener sus sistemas seguros y actualizados mediante herramientas y comandos cada vez más sofisticados y accesibles. La compatibilidad con systemd y systemctl ha facilitado la incorporación de funciones que antes requerían métodos manuales o de reinicios, ahorrando tiempo y minimizando riesgos en el proceso.

windows bootloader: Cómo cambiar el sistema operativo predeterminado si tienes arranque dual-0
Artículo relacionado:
Arranque dual en Windows y Linux: cómo elegir el sistema operativo predeterminado
  Cuando estés configurando para Windows, no apagues el ordenador.[FIX]

Deja un comentario