Actualización de BIOS

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page BIOS Update and the translation is 72% complete.
Outdated translations are marked like this.

Este artículo describe cómo aplicar una actualización BIOS en un sistema Gentoo.

Los fabricantes de hardware a menudo proveen actualización de BIOS y de otros tipos de firmware. Aplicar (comúnmente se dice "flash") las actualizaciones no es siempre una tarea sencilla en sistemas GNU/Linux. Suele requerir algo de trabajo extra.

Advertencia
Si no tenemos problemas operativos con el hardware no suele haber necesidad de realizar una actualización de BIOS. Si algo va mal podemos dañar de forma permanente el BIOS o el firmware del sistema, lo que puede ocasionar una pérdida de la garantía del hardware. ¡Proceder con precaución!
Nota
The most prominent and widely used system has historically been the x86-based IBM PC compatible computer and its BIOS, which is why system firmware is sometimes called a BIOS even when it is not an IBM PC compatible BIOS, such as the AlphaBIOS of the DEC Alpha architecture or the OpenBIOS, an implementation of Open Firmware (IEEE-1275). EFI/UEFI, the successor of the PC BIOS, is also often called "(U)EFI-BIOS". Hence, the term "BIOS update" often refers to a system firmware update that is not really a PC BIOS.

This article focuses on the PC BIOS and early versions of its successor EFI/UEFI. On x86 (U)EFI System Class 1 and Class 2 have a BIOS compatible mode called "Legacy BIOS" or "CSM" (short for Compatiblity Support Module), which makes the UEFI behave like a PC BIOS. UEFI System Class 3, the standard since around 2020, no longer has a CSM.

On other firmwares the process of updating the system firmware may have similarities, but can also be completely different.

Obtener información del sistema

Primero averiguamos el fabricante y modelo de la placa madre. Revisa el manual de usuario que viene con el sistema. La mayor parte de la información puede ser encontrada en el manual de usuario.

El paquete sys-apps/dmidecode puede ser usado para obtener información adicional del sistema. dmidecode mira en la tabla DMI de la placa madre para encontrar detalles más valiosos acerca del firmware y de los componentes de hardware.

root #dmidecode -t bios -t baseboard

Finalmente, si es posible el acceso físico a la placa madre, la información necesaria puede encontrarse directamente en la misma.

Advertencia
¡Acceder a la placa madre puede anular la garantía!

Luego de buscar la actualización de firmware del fabricante, hay que proceder a descargar el paquete necesario para actualizar el hardware. Es normal que los fabricantes guarden los paquetes de actualización de firmware en ficheros de extensión .zip, .exe o .iso.

user $unzip 7235v1A.zip
Archive:  7235v1A.zip
   creating: 7235v1A/
inflating: 7235v1A/7235v1x.txt
inflating: 7235v1A/AWFL865.EXE
inflating: 7235v1A/How to flash the BIOS.DOC
inflating: 7235v1A/W7235IMS.1A0

Opciones de BIOS

Muchos BIOS tienen la opción de leer la nueva imagen binaria desde una memoria externa o un disco interno. Entrar a la configuración del BIOS y buscar la opción. Si el BIOS no soporta esto, continúa a la siguiente sección.

Boot-CD

A veces los fabricantes ofrecen una imagen de CD-ROM como medio de arranque. El fichero tiene que tener extensión .iso y debe ser grabado en un CD-R(W) vacío. Una herramienta para esto es cdrecord:

root #cdrecord BOOT-CD.iso
Nota
cdrecord es provisto por dos paquetes. Elige uno de los siguientes: app-cdr/cdrtools o app-cdr/cdrkit.

Elige desde el menú de arranque del BIOS el arranque desde CD y sigue las intrucciones de la web del fabricante o del manual de usuario.

Entornos FreeDOS

Nota
Existe un arranque adecuado FreeDOS en el SystemRescueCD que funciona correctamente y ahorrará mucho trabajo permitiendo que los lectores se salten esta sección. Lea la nota al final de la sección Usar SystemRescueCD para arrancar FreeDOS para obtener los detalles.

FreeDOS puede ser utilizado para ejecutar herramientas de actualización basadas en DOS. Una imagen "personalizada" de FreeDOS que incluya las herramientas de BIOS necesarias debe ser creada. Luego de generar la imagen personalizada, debes arrancar desde la imagen siguiendo uno de los métodos descritos abajo.

Descargar FreeDOS y las herramientas:

  • FreeDOS - Descargar el archivo fdboot.img.
  • FreeDOS bootsector - Descargar el archivo sys-freedos-linux.zip.
  • El programa DOS-Flash y el nuevo BIOS desde la web del fabricante.

Crear una imagen personalizada de FreeDOS

Primero descargar el software necesario y habilitar el soporte para dispositivos loopback en el kernel:

KERNEL enable loopback device
Device Drivers  --->
    [*] Block devices  --->
        <M>   Loopback device support

Si el módulo no fue cargado usa modprobe para cargarlo:

root #modprobe loop

Instala el software necesario:

root #emerge --ask dev-lang/nasm app-arch/unzip sys-fs/dosfstools

Crea una imagen de ~20MB usando el comando dd. El nombre debe ser freedos.img:

root #dd if=/dev/null of=freedos.img bs=1024 seek=20480

Formatea la imagen:

root #mkfs.fat freedos.img

Escribe el sector de arranque del arhivo de imagen:

root #unzip sys-freedos-linux.zip && ./sys-freedos.pl --disk=freedos.img

Ahora copia los archivos de FreeDOS a la nueva imagen.

Crea los puntos de montaje:

root #mkdir -p /mnt/freedos /mnt/freedos_new

Monta la imagen original:

root #mount -o loop fdboot.img /mnt/freedos

Monta la nueva imagen:

root #mount -o loop freedos.img /mnt/freedos_new

Copia los archivos de sistema de FreeDOS a la nueva imagen:

root #cp -ar /mnt/freedos/* /mnt/freedos_new/

Ahora copia el programa de actualización y la nueva BIOS a la imagen:

root #cp -ar FLASH-PROGRAM BIOS-UPDATE /mnt/freedos_new

Desmonta las dos imágenes:

root #umount /mnt/freedos_new /mnt/freedos
Nota
DOS solo puede mostrar nombres de un tamaño máximo de 8 caracteres. Es una buena idea renombrar algunos de los archivos si el nombre es más largo que ese límite.

Usando SystemRescueCD para arrancar FreeDOS

SystemRescueCD viene con una versión de FreeDOS. Esta versión puede reemplazar la imagen original y crear una memoria usb booteable que contenga los programas necesarios para actualizar el firmware.

Descargar SystemRescueCD y preparar el LiveUSB

Crear la memoria usb booteable

Usar el método predeterminado para crear el medio de arranque de SystemRescueCD, el script usb_init.sh proveerá una guía durante la instalación.

Advertencia
¡Esto borrará toda la información de la memoria usb! ¡Asegúrate de hacer un respaldo de cualquier información importante que tuvieras en ella!

Crear el directorio en /mnt:

root #mkdir /mnt/SysRescueCD

Montar la imagen de CD:

root #mount -o loop systemrescuecd-x86-VERSION.iso /mnt/SysRescueCD

Ejecutar el script de instalación:

root #/mnt/SysRescueCD/usb_inst.sh

Desmontar la imagen de CD:

root #umount /mnt/SysRescueCD
Nota
Si simplemente desea actualizar su BIOS, no hay necesidad de entretenerse con la imagen de FreeDOS en SystemRescueCD. Después de crear el dispositivo arrancable de SystemRescueCD tal y como se describe arriba, monte el disco USB en un directorio. Copie la actualización del BIOS allí y ¡Ha terminado!. Arranque desde el dispositivo USB y seleccione "DOS Tools ---> FREEDOS" desde el menú de arranque de SystemRescueCD. Encontrará el nombre truncado de su actualización BIOS en el directorio A:. Si no lo ve, pruebe con C:. No creo que esto dañe la instancia de SystemRescueCD en el dispositivo USB pero si esto ocurre, es bastante fácil recrearlo cuando haya terminado.

Reemplazar la imagen de FreeDOS

Ahora reemplazamos la imagen original de FreeDOS en la memoria con SystemRescueCD.

Montamos el usb de SystemRescueCD (/dev/sdX1 tiene que ser reemplazado por el nombre del dispositivo correspondiente a la memoria usb):

root #mount /dev/sdX1 /mnt/SysRescueCD

Reemplazar el archivo freedos.img:

root #cp freedos.img /mnt/SysRescueCD/bootdisk/

Desmontar la memoria usb:

root #umount /mnt/SysRescueCD

Iniciar la imagen de FreeDOS directamente desde el GRUB

Para iniciar FreeDOS sin ningún medio externo, usa la herramienta memdisk de syslinux para autorizar a grub (u otro gestor de arranque) a iniciar la imagen de FreeDOS directamente.

root #emerge --ask sys-boot/syslinux

Montar la partición de /boot si es necesario:

root #mount /boot

Copiar el binario de memdisk y la nueva imagen de FreeDOS a /boot:

root #cp /usr/share/syslinux/memdisk /boot
root #cp freedos.img /boot

Agregar la entrada para FreeDOS en /boot/grub/grub.conf:

ARCHIVO /boot/grub/grub.confExample grub.conf entry
title FreeDOS (BIOS update)
kernel /boot/memdisk floppy
initrd /boot/freedos.img

Actualización de BIOS

Reiniciar y seleccionar el arranque desde la memoria usb o desde la nueva entrada de grub. Si usamos SystemRescueCD, poner en la línea de comandos de GRUB:

freedos

Esto iniciará la nueva imagen de FreeDOS. Debe aparecer el prompt de DOS:

CÓDIGO
C:\

Ahora ejecuta la actualización del BIOS siguiendo las instrucciones del fabricante. Algunos comandos de DOS útiles:

cd <dir>
Cambiar de directorio.
dir
Listar el contenido del directorio actual.
type [drive][path]filename
Mostrar el contenido de un archivo.

Flashrom

Algunos motherboards soportan la actualización directamente desde el sistema (usando el paquete sys-apps/flashrom). En este caso el único componente que necesitamos es la imagen del BIOS. Antes de seguir este camino, primero debemos revisar la lista de hardware soportado.

Si el hardware es soportado, verificar la nueva imagen de BIOS:

root #flashrom -v W7235IMS.1A0

Si todo está bien, entonces porcedemos a actualizar:

root #flashrom -vw W7235IMS.1A0

UEFI Firmware Capsule

Nota
Since EFI/UEFI is the successor of the PC BIOS on x86, the same tools as for BIOS updates were often used on early (U)EFI systems.

For modern UEFI, firmware updates can be upgraded using UEFI Capsules (introduced with UEFI 2.0[1]). This method is available on Linux and Windows.[2] Vendors have to provide firmware updates for the use with Linux, which they do via the Linux Vendor Firmware Service (LVFS).[3]

Refer to fwupd for further details.

Vea también

  • BIOS — the standard firmware of IBM-PC-compatible computers until it was phased out in 2020.
  • Bootable DOS USB stick — describes how to prepare a bootable USB stick which loads DOS using tools available in Gentoo.

References