Actualización de BIOS

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page BIOS Update and the translation is 100% complete.

Other languages:
English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎polski • ‎русский • ‎中文(中国大陆)‎

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!

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. 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

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

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

Vea también