La eterna disputa de los fabricantes por impedir el acceso a sus registros de BIOS es constante desde hace años. Si bien es cierto que en algunos momentos han sido más permisivos y han hecho la vista gorda otras muchas veces, desde Pascal y ahora con Turing todo se ha vuelto más austero, pero no más complicado. Así que ¿cómo se flashea una BIOS en una GPU NVIDIA?
El flasheo en GPUs NVIDIA sigue siendo bajo MSDOS
Por desgracia, el software que necesitamos para flashear BIOS en tarjetas gráficas NVIDIA sigue siendo sin interfaz gráfica y por comandos bajo MSDOS. La parte buena de todo esto es que es sencillo y siempre es repetitivo, pero no estaría mal una interfaz en un futuro que lo haga más amigable.
De momento todo se resume a usar el programa NVIDIA NVFlash que podremos descargar tanto para Windows como para Linux desde el siguiente enlace.
Una vez descargado según nuestro sistema operativo procederemos a descomprimirlo en la raíz de nuestro disco duro, que normalmente es el disco duro C.
Por número de usuarios vamos a centrarnos solamente en Windows a partir de ahora para realizar los procesos. A continuación tendremos que acceder a MSDOS como administradores del sistema, esto se consigue pinchando sobre el icono del programa con el botón derecho y seleccionando «ejecutar como administrador».
Una vez abierto MSDOS, nos moveremos a la raíz del disco duro con el comando «CD..» (sin comillas). Como habrá visto al descomprimir el programa en la raíz de su HDD o SSD se asentaron 3 archivos, uno de ellos es la versión para 64 Bits de NVFlash, por lo que tendremos que usar ese si nuestro SO es acorde (NVFlash64.exe).
Si nuestro SO es de 32 bits usaremos el archivo NVFlash.exe. Para usarlos desde MSDOS tendremos que escribir NVFlash o NVFlash64 para poder ejecutar la tarea que a continuación le digamos.
Después de este paréntesis volvamos a MSDOS donde ya estaremos en C: listos para empezar. Vamos a suponer que usamos la versión de 64 bits del programa para todas las acciones.
Lo primero que necesitamos es quitar la protección contra escritura que tienen las tarjetas gráficas en sus BIOS. Para ello escribiremos:
- NVFlash64 –protectoff (ojo con las mayúsculas y las minúsculas en todos los procesos que hagamos a partir de ahora, no se preocupe si su pantalla parpadea o se produce un sonido)
Con este comando ya tenemos la protección caída. Ahora tendremos que buscar la BIOS correspondiente a nuestra tarjeta gráfica. En este punto hay que ser precisos y específicos. No todas las BIOS valen para todas las tarjetas gráficas aunque ambas tengan el mismo chip gráfico.
Es decir, una BIOS de una MSI GTX 1080 Ti Lightning no es compatible con una tarjeta Asus Strix GTX 1080 Ti. Y no lo es por varias razones, diferentes PCBs, diferentes versiones de BIOS, diferentes versiones ID en su EPROM, diferentes ASIC y así un largo etc …
Normalmente solo hay un caso que es perfectamente compatible (no es una regla como tal, sino una norma) y es las tarjetas gráficas que comparten PCB exacto, como pueden ser las versiones de referencia o modelos custom donde la única diferencia es la frecuencia de las tarjetas.
En cualquier caso el riesgo y responsabilidad es de cada usuario a la hora de flashear cada tarjeta, si no sabe lo que está haciendo no lo haga, infórmese antes de su modelo de GPU, de su versión de BIOS (GPU-Z por ejemplo lo muestra) y haga un backup de la misma (GPU-Z lo hace de forma sencilla y os lo recomendamos) por si el proceso falla.
En cualquier caso Hardzone no se hace responsable de posibles problemas derivados de este tutorial, ya que es responsabilidad única y exclusiva del usuario.
La lista de BIOS podremos encontrarla en Techpowerup, donde normalmente las tienen todas disponibles para su descarga. Una vez descargada la BIOS que queremos flashear, tendremos que situarla en la misma carpeta donde descargamos el NVFlash. En nuestro caso en la raíz del disco duro C.
El siguiente paso es renonbrar la BIOS a un nombre más sencillo, BIOSGPU.rom por ejemplo (de nuevo ojo a las mayúsculas y minúsculas). No cometer el error de llamarla BIOSGPU.rom.rom. El punto ROM es la extensión de archivo de la BIOS, no es necesario ponerla en el nombre como tal, al igual que a una foto no le ponemos vacaciones.jpg.jpg por ejemplo, sino vacaciones.jpg.
El siguiente paso es el flasheo de la BIOS, para ello tendremos que poner el siguiente comando:
- NVFlash64 -6 BIOSGPU.rom (donde BIOSGPU.rom es el nombre que hemos puesto anteriormente a dicha BIOS). Recalcamos que usamos NVFlash64 por usar un SO de 64 bits, si su SO es de 32 tendrá que usar NVFlash a secas.
Haciendo un inciso antes de continuar, los más puritanos dirán que antes de este paso no hemos recomendado entrar en el administrador de dispositivos y deshabilitar la GPU antes de su flasheo de BIOS, pero es que este paso ya lo hace automáticamente en las nuevas versiones el propio NVFlash.
Si se quiere hacer manualmente no hay inconveniente en hacerlo y una vez terminado el flasheo habilitarla de nuevo.
El proceso de actualización no se debe interrumpir
Siguiendo con el tutorial, una vez escrito el comando superior tendremos los datos de referencia de la BIOS de la tarjeta con una serie de parámetros y la pregunta ¿Update Display adapter firmware? a la que tendremos que responder pulsando la tecla Y.
Cabe decir que este proceso no se debe parar de ninguna manera ya que si no tendremos lo que se conoce como Brick o bloqueo.
Una vez terminado le pedirá que es aconsejable reiniciar. Si no hemos deshabilitado manualmente la tarjeta gráfica desde el administrador de dispositivos podremos hacerlo sin problema.
Si en cambio somos de la vieja escuela, tendremos que habilitar la GPU de nuevo y posteriormente reiniciar. En ambos casos y una vez hecho, nuestra GPU será de nuevo reconocida por Windows y por los drivers de NVIDIA, así que debe ser instalada (proceso automático si ya teníamos drivers instalados, algo lógico en el 99% de los casos).
No tema si tiene unos cuantos parpadeos de pantalla porque esto se debe a la instalación de nuevo del driver que ya tenía para con su tarjeta.
Una vez que la instalación (silenciosa en segundo plano) termine podremos usar nuestra tarjeta de nuevo.
Actualización para sistemas SLI o Multi-GPU
Si tenemos varias GPUs que queremos flashear en un mismo PC, el proceso es prácticamente el mismo, salvando que tendremos que hacer el –protectoff con cada tarjeta y flashear una a una la BIOS correspondiente.
Para saber que tarjeta estamos flasheando tendremos que incluir antes del parámetro –protectoff el parámetro –list, es decir:
- NVFlash64 –list (así vemos el número que el programa asigna a cada tarjeta, normalmente empieza por el cero)
- Una vez sepamos cual es la tarjeta que queremos quitar la protección escribimos: NVFlash64 -i(número de la GPU) –protectoff —> NVFlash -i0 o i1 o i2 etc –protectoff para que se entienda.
- Mismo proceso para cada GPU a la hora de flashear donde lo único que variará será el número después de la «i»: NVFlash64 i0 -6 BIOSGPU.rom
- El proceso se repetiría para cada iX que tuviésemos como tarjeta gráfica, i0, i1, i2, i3 etc …