Actualización de BIOS en computadoras Dell usando libsmbios
Importante: La actualización de BIOS si bien no debería traer problemas, no se considera segura. Siempre se recomienda hacer la actualización únicamente si es necesaria, ya que de ocurrir un error se podría dañar permanentemente el hardware del computador
Nota: Esto ha sido una traducción de un articulo en el sitio de Dell, pero actualizado para extraer el firmware de las nuevas actualizaciones de Dell para Windows. Requiere wine para la extracción.
Este articulo describe cómo actualizar el BIOS de tu sistema Dell usando, exclusivamente, utilitarios de Linux. Para lograr esto, instalaremos el libsmbios, un paquete genérico de Linux. Se asume, a lo largo de este documento, que todos los comandos serán ejecutados como el usuario 'root', excepto el paso de descargar el instalador ".EXE" para Windows y la extracción del ".HDR" usando WINE. Usa 'sudo' o 'su' para obtener privilegios de 'root' antes de usar estos comandos o ellos fallarán.
- Instalar libsmbios
# apt-get update
# apt-get install libsmbios-bin - Obtener el archivo ".HDR"
- Usando el archivo ".EXE" de actualización de Windows (Si deseas obtener la última versión)
Nota: Este paso se puede (y se debe) hacer como un usuario regular y no como 'root'.- Descargar el archivo ".EXE" para actualizar el BIOS de tu PC del sitio de soporte técnico de Dell (http://support.dell.com/). Muchas veces aquí encontrarás versiones más actualizadas.
- Extraer el archivo ".HDR" del archivo de instalación ".EXE"
$ wine NOMBRE_DEL_ARCHIVO_DESCARGADO_DE_DELL.EXE -writehdrfile -nopause
Verificar la extracción
$ ls NOMBRE_DEL_ARCHIVO_DESCARGADO_DE_DELL*NOMBRE_DEL_ARCHIVO_DESCARGADO_DE_DELL.EXE NOMBRE_DEL_ARCHIVO_DESCARGADO_DE_DELL.HDR
- Usando el archivo ".HDR" publicado por Dell especialmente para Linux (No se actualiza con frecuencia)
- Obtener el 'System ID'
# getSystemIdLibsmbios: 0.12.1
System ID: 0x01DD <------- ******* Este número es el que buscamos *******
Service Tag: DT6WLB1
Express Service Code: 30063287773
Product Name: Dell DM061
BIOS Version: 2.3.2
Vendor: Dell Inc.
Is Dell: 1 - Descargar el último archivo ".HDR" de BIOS para este sistema. Ir a: http://linux.dell.com/repo/firmware/bios-hdrs/. Buscar un directorio cuyo nombre contenga el 'System ID' encontrado en el paso anterior. Los directorios han sido nombrados (las letras en minúsculas): system_bios_ven_0x1028_dev_SYSTEM_ID_version_BIOS_VERSION. Entrar al directorio con la versión del BIOS que desea instalar y descargar el archivo "bios.hdr".
- Obtener el 'System ID'
- Usando el archivo ".EXE" de actualización de Windows (Si deseas obtener la última versión)
- Cargar el controlador de dispositivos dell_rbu
# modprobe dell_rbu - Actualizar el BIOS
# dellBiosUpdate -u -f NOMBRE_DEL_ARCHIVO_DESCARGADO_DE_DELL.HDRSupported RBU type for this system: (MONOLITHIC, PACKET)
Using RBU v2 driver. Initializing Driver.
Setting RBU type in v2 driver to: PACKET
writing (4096) to file: /sys/devices/platform/dell_rbu/packet_size
Writing RBU data (4096bytes/dot): ...................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Done writing packet data.
Activate CMOS bit to notify BIOS that update is ready on next boot.
Update staged sucessfully. BIOS update will occur on next reboot. - Reiniciar el sistema
# reboot
Posibles problemas
-
Al seguir este proceso, puedes encontrarte con dos problemas comunes:
- Problema: Has seguido las instrucciones, y todo dice que trabajó, pero el BIOS no se actualizó.
- Solución: Normalmente, esto sucede porque el kernel esta haciendo un "cold reboot", lo cual causa problemas con el proceso de actualización. Le diremos al kernel que haga un "warm reboot" agregando "reboot=bios" al final de la línea de comandos del kernel (¿En Grub?). Reinicia para hacer efectivo este cambio, e intenta la actualización nuevamente.
- Problema: Al ejecutar dellBiosUpdate te dice que no puede reservar suficiente memoria (could not allocate enough memory).
- Solución: Algunos sistemas requieren hasta 2MB continuos de memoria *física*, lo cual a veces puede estar escaso, especialmente si el sistema ha estado corriendo por un buen tiempo. Debes reiniciar tu sistema un par de veces e intentar nuevamente la actualización.