LinuxParty
Linux permite conocer el fabricante, la versión y la fecha del firmware sin reiniciar el ordenador ni entrar en la configuración de la placa base
Conocer la versión de la BIOS o UEFI instalada puede resultar necesario para solucionar problemas de compatibilidad, comprobar vulnerabilidades, instalar un procesador nuevo o determinar si el fabricante ha publicado una actualización importante.
Aunque esta información suele aparecer al encender el ordenador o dentro del menú de configuración del firmware, en Linux podemos consultarla directamente desde el terminal. No es necesario reiniciar el equipo ni pulsar ninguna tecla durante el arranque.
Existen varios métodos para hacerlo. Los más útiles emplean dmidecode, los archivos disponibles en /sys, la herramienta hostnamectl o el servicio de actualización de firmware fwupd.
Consultar la versión mediante dmidecode
dmidecode es una herramienta que lee la información incluida por el fabricante en las tablas DMI o SMBIOS del equipo.
Para mostrar solamente la versión de la BIOS podemos ejecutar:
sudo dmidecode -s bios-version
Un posible resultado sería:
F.28
Para conocer la fecha de publicación o compilación:
sudo dmidecode -s bios-release-date
Y para consultar el fabricante:
sudo dmidecode -s bios-vendor
Podemos reunir los tres datos ejecutando:
sudo dmidecode -s bios-vendor sudo dmidecode -s bios-version sudo dmidecode -s bios-release-date
El resultado podría ser similar al siguiente:
American Megatrends International, LLC. F23 03/22/2024
En este ejemplo, el fabricante del firmware es American Megatrends, la versión instalada es la F23 y su fecha es el 22 de marzo de 2024.
Mostrar toda la información de la BIOS
Si necesitamos un informe más completo podemos utilizar:
sudo dmidecode --type bios
También podemos escribir la forma abreviada:
sudo dmidecode -t bios
La salida puede contener información como:
BIOS Information Vendor: American Megatrends International, LLC. Version: F23 Release Date: 03/22/2024 Address: 0xF0000 Runtime Size: 64 kB ROM Size: 16 MB Characteristics: PCI is supported BIOS is upgradeable UEFI is supported
Además del fabricante, la versión y la fecha, esta información puede indicar el tamaño de la memoria del firmware y algunas de las tecnologías admitidas por la placa.
La salida completa de dmidecode es bastante extensa. Si ejecutamos la aplicación sin opciones, mostrará información sobre la placa base, el procesador, la memoria, las ranuras de expansión y otros componentes:
sudo dmidecode
Para consultar únicamente los datos relacionados con el sistema:
sudo dmidecode --type system
Y para identificar la placa base:
sudo dmidecode --type baseboard
Esto puede resultar útil porque, para buscar una actualización, normalmente necesitaremos conocer tanto la versión actual de la BIOS como el modelo exacto del ordenador o de la placa base.
Instalar dmidecode
La herramienta suele venir instalada en muchas distribuciones. Si el sistema indica que no encuentra el comando, podemos instalarla desde los repositorios.
En Debian, Ubuntu, Linux Mint y derivados:
sudo apt update sudo apt install dmidecode
En Fedora:
sudo dnf install dmidecode
En openSUSE:
sudo zypper install dmidecode
En Arch Linux y derivados:
sudo pacman -S dmidecode
La lectura directa de las tablas DMI puede necesitar privilegios administrativos, razón por la que los ejemplos utilizan sudo.
Consultar la BIOS sin utilizar sudo
El kernel de Linux expone numerosos datos del sistema mediante el sistema de archivos virtual sysfs. En muchos equipos, la información de la BIOS puede consultarse sin permisos de administrador.
Para mostrar la versión:
cat /sys/class/dmi/id/bios_version
Para conocer el fabricante:
cat /sys/class/dmi/id/bios_vendor
Y para consultar la fecha:
cat /sys/class/dmi/id/bios_date
También podemos ejecutar los tres comandos seguidos:
cat /sys/class/dmi/id/bios_vendor cat /sys/class/dmi/id/bios_version cat /sys/class/dmi/id/bios_date
Si queremos que la salida resulte más clara:
printf 'Fabricante: '; cat /sys/class/dmi/id/bios_vendor printf 'Versión: '; cat /sys/class/dmi/id/bios_version printf 'Fecha: '; cat /sys/class/dmi/id/bios_date
Este método resulta especialmente cómodo para utilizarlo dentro de scripts, ya que cada archivo contiene un dato concreto y normalmente no es necesario filtrar una salida extensa.
Podemos consultar todos los campos DMI disponibles mediante:
ls /sys/class/dmi/id/
Dependiendo del equipo, encontraremos archivos como:
bios_date bios_vendor bios_version board_name board_vendor board_version product_name product_version sys_vendor
Para identificar conjuntamente el ordenador y su firmware podemos utilizar:
printf 'Fabricante: '; cat /sys/class/dmi/id/sys_vendor printf 'Modelo: '; cat /sys/class/dmi/id/product_name printf 'BIOS/UEFI: '; cat /sys/class/dmi/id/bios_version printf 'Fecha: '; cat /sys/class/dmi/id/bios_date
Obtener información con hostnamectl
En distribuciones que utilizan systemd, el comando hostnamectl puede mostrar información adicional del hardware y del firmware:
hostnamectl
Dependiendo de la versión de systemd y de los datos facilitados por el fabricante, la salida puede incluir campos relacionados con el proveedor, el modelo y la versión del firmware.
No todos los sistemas presentan esos datos mediante hostnamectl. Si no aparecen, podemos recurrir a dmidecode o leer directamente los archivos de /sys/class/dmi/id/.
Saber si Linux arrancó en modo UEFI
Tener instalado un firmware UEFI no significa necesariamente que Linux se haya iniciado utilizando ese modo. Algunos equipos permiten arrancar mediante una modalidad de compatibilidad conocida como Legacy BIOS o CSM.
Para comprobar cómo se inició el sistema podemos ejecutar:
if [ -d /sys/firmware/efi ]; then echo "El sistema ha arrancado en modo UEFI" else echo "El sistema ha arrancado en modo BIOS tradicional o Legacy" fi
También podemos comprobarlo directamente:
ls /sys/firmware/efi
Si el directorio existe y contiene información, Linux se ha iniciado en modo UEFI. Si no existe, normalmente ha arrancado en modo BIOS tradicional o mediante el modo de compatibilidad.
Esta prueba indica el modo de arranque utilizado, no la versión del firmware.
Consultar el firmware mediante fwupdmgr
Muchas distribuciones modernas utilizan fwupd para consultar e instalar actualizaciones de firmware distribuidas mediante LVFS, el servicio de firmware para vendedores de Linux.
Podemos mostrar los dispositivos compatibles mediante:
fwupdmgr get-devices
Si el fabricante admite la actualización de la BIOS desde Linux, podría aparecer una sección semejante a:
System Firmware Current version: 1.18.0 Vendor: Lenovo Update State: Success
Para actualizar la información disponible:
sudo fwupdmgr refresh
Y comprobar si existen actualizaciones:
fwupdmgr get-updates
Estos comandos no instalan por sí solos una actualización. Para iniciar la instalación se utiliza:
sudo fwupdmgr update
No debemos ejecutar una actualización de firmware sin revisar antes los cambios, conectar el portátil a la corriente y asegurarnos de que la batería dispone de carga suficiente.
También es recomendable guardar una copia de los datos importantes. Una interrupción durante la actualización podría impedir que el equipo arrancase, aunque muchos ordenadores modernos incorporan mecanismos de recuperación.
La versión mostrada puede no ser completamente fiable
Las herramientas de Linux leen la información que el fabricante ha guardado en las tablas SMBIOS. Si esos campos están vacíos, desactualizados o contienen valores genéricos, Linux no puede corregirlos automáticamente.
En algunos equipos pueden aparecer resultados como:
Default System BIOS To Be Filled By O.E.M. Not Specified
Esto no significa necesariamente que el firmware esté dañado. Indica que el fabricante no cumplimentó correctamente ese campo.
En una máquina virtual, dmidecode suele mostrar el firmware y los datos proporcionados por el hipervisor, no los de la máquina física que aloja el sistema.
Por ejemplo, puede identificar fabricantes como:
- QEMU.
- VMware.
- VirtualBox.
- Microsoft Corporation.
- Xen.
- Amazon EC2.
En contenedores también es posible que los archivos DMI no existan o que muestren información del servidor anfitrión, dependiendo del aislamiento configurado.
Cómo saber si existe una versión más reciente
Una vez identificadas la versión de la BIOS y el modelo del equipo, debemos consultar la página oficial del fabricante.
Para recopilar la información necesaria:
sudo dmidecode -s system-manufacturer sudo dmidecode -s system-product-name sudo dmidecode -s system-version sudo dmidecode -s bios-version sudo dmidecode -s bios-release-date
En un ordenador montado por componentes resultará más útil identificar la placa base:
sudo dmidecode -s baseboard-manufacturer sudo dmidecode -s baseboard-product-name sudo dmidecode -s baseboard-version
Después debemos buscar el modelo exacto en la sección de soporte del fabricante.
No conviene descargar una BIOS correspondiente a un modelo parecido. Una misma familia de ordenadores puede contener revisiones diferentes de la placa base que necesiten archivos de firmware distintos.
¿Es necesario actualizar siempre la BIOS?
No debemos actualizar la BIOS únicamente porque exista una versión más reciente. Antes hay que leer las notas de publicación y comprobar qué problemas corrige.
Una actualización puede resultar recomendable cuando:
- Soluciona una vulnerabilidad de seguridad importante.
- Añade compatibilidad con un procesador nuevo.
- Corrige problemas de estabilidad.
- Resuelve fallos con la memoria RAM.
- Mejora la compatibilidad con determinados dispositivos.
- Corrige errores en el arranque UEFI.
- El fabricante la considera crítica.
Si el ordenador funciona correctamente y la actualización no aporta ninguna mejora necesaria, puede ser preferible mantener la versión actual.
El método más rápido
Para una consulta rápida, normalmente bastará con ejecutar:
sudo dmidecode -s bios-version
Si además necesitamos conocer el fabricante y la fecha:
sudo dmidecode -s bios-vendor sudo dmidecode -s bios-version sudo dmidecode -s bios-release-date
Y si queremos evitar sudo:
cat /sys/class/dmi/id/bios_vendor cat /sys/class/dmi/id/bios_version cat /sys/class/dmi/id/bios_date
Linux permite así comprobar la versión de la BIOS o UEFI en pocos segundos, sin abandonar el escritorio ni reiniciar el ordenador.
¿Necesitas conocer la versión de la BIOS o UEFI sin reiniciar el ordenador? Te mostramos cómo consultar desde Linux el fabricante, la versión y la fecha del firmware utilizando dmidecode, /sys, hostnamectl y fwupdmgr.
Fuentes
- Artículo de referencia publicado por Cyberciti
- Página del manual de sysfs
- Documentación oficial de fwupd
-
Hardware
- Comprobar la versión de la BIOS o UEFI desde Linux
- ¿RAMageddon? Se informa que la capacidad de memoria para 2027 está agotada
- Cuando tu Linux va lento y no sabes por qué: el cuello de botella puede estar en el disco
- Comprobar el estado de los discos duros en linux
- Después de 30 años, puedes comprar un nuevo 'Commodore 64 Ultimate' por $299
- Sony sigue siendo terca respecto al tamaño de sus cámaras
- El masivo ataque con drones en Ucrania fue impulsado por software de código abierto
- Linus Torvalds regresa al teclado mecánico tras cometer demasiados errores tipográficos
- Linux se despide de los procesadores Intel 486 y Pentium: el fin de una era tecnológica
- No puedo desmontar mi USB en Linux: “Hay archivos abiertos” — Solución paso a paso
- Cómo instalar y configurar un servidor SAN en Red Hat / AlmaLinux
- ¿Qué son los entornos SAN y NAS y cómo distinguirlos?



