"Después del juego es antes del juego"
Sepp Herberger

Mostrando entradas con la etiqueta bios. Mostrar todas las entradas
Mostrando entradas con la etiqueta bios. Mostrar todas las entradas

miércoles, 10 de septiembre de 2025

Actualizar BIOS desde FreeDOS+USB

Me ha pasado varias veces que actualizando hardware en equipos algo antiguos he tenido que actualizar la BIOS. El problema viene cuando esa actualización necesita usar MS-DOS (no hay forma de actualizar usando Linux, Windows o a través de la propia BIOS) y el equipo no tiene disquetera ni lector de CD (y además y no ya no tengo ni disquetes ni CDs). Otra opción es arracancar un sistema MS.DOS por red usando PXE, pero es demasiado rebuscdao.

En ese caso la solución más sencilla que he encontrado es bajar una imagen de FreeDOS (clon libre de MS-DOS), meter en ella los ficheros necesarios para la actualización y grabarla en un pendrive usando Rufus (Unetbootin me ha dado casi siempre problemas con este tipo de imágenes).

Vamos a ver un ejemplo práctico. Quiero actualizar una placa base Gigabyte GA-H61M-DS2 (rev. 2.0) a la BIOS versión F9. La descargo desde aqui y las descomprimo. Los ficheros son:
Efiflash.exe
h61mds22.f9
autoexec.bat
Ahora descargo la imagen FreeDOS desde aqui: https://freedos.org/download/. Descargamos la imagen FullUSB y descomprimos el .zip extrayendo el fichero FD12FULL.img.

Este fichero contiene dentro una imagen de anrranque FreeDOS. Hay que montarla y meter dentro los 3 ficheros anteriores para que al arrancar podamos disponer de ellos. Como está en un formato de imagen FreeDOS no se monta con un simple "mount -o loop", hay que hacer alguna operación adicional. Lo primero es hacer
# fdisk -l FD14FULL.img
FD14FULL.img1 * 63 2096639 2096577 1023,7M c W95 FAT32 (LBA)
Esto nos dice que dentro hay una partición FAT32 (LBA), que empieza en el sector 63 y como sector tiene normalmente 512 bytes, tenemos que calcular el offset:

offset = 63 * 512 = 32256

Entonces el comando para montar la imagen sería:
# sudo mount -o loop,offset=32256 -t vfat FD14FULL.img /mnt
/mnt es el directorio donde se montará la imagen. Evidentemente se puede cambiar por otro. -t vfat indica que es FAT32. offset le dice a mount en que punto del fichero .img comienza la partición como tal. Si no se indica el comando mount no puede montarla.

Hecho esto podemos acceder en /mnt al contenido de la imagen. Haremos
# cd /mnt
# mkdir BIOSH61M
# cd BIOSH61M
# cp ...../Efiflash.exe .
# cp ...../h61mds22.f9 .
# cp ...../autoexec.bat .
# cd /root
# umount /mnt
Con esto ya tenemos el fichero IMG con el contenido correcto dentro. Desde un Windows y usando Rufus metemos la imagen IMG en un pendrive..



Luego arrancamos en el PC con ese pendrive y se cargará el FreeDOS. Nos preguntará si queremos instalar FreeDOS pero no, cancelamos la instalación y nos lleva al prompt X:\> de los viejos tiempos. Una vez allí hacemos;
CD BIOS...
EFIFLASH.EXE H61MDS22.F9
Dejamos que acabe y listo, ya tenemos la BIOS actualizada...

viernes, 8 de noviembre de 2024

Baterías genéricas para HP x360 310 G2

Nuestros ordenadores "HP x360 310 G2" llevan ya muchos años con nosotros y las báterías modelo HV03XL que tienen están empezando a fallar. De momento se pueden encontrar baterías genéricas sobre 35-40€ (usualmente de marca Voltistar) y originales de HP por mas de 80€.

Después de comprar e instalar varias baterías genéricas sin tener problemas de repente me encontré con que en algunos portátiles no se reconocían. Al ponerlas el equipo se encendía pero no lograba arrancar, se quedaba colgado sin avanzar en los mensajes de arranque de la BIOS. Después de dar muchas vueltas comprobé la versión de la BIOS y me di cuenta de que tengo portátiles con BIOS F35 y otros con BIOS F57A. Los que tienen esta última BIOS no admiten baterías genéricas. Una vez más, HP ha hecho de las suyas y ha puesto un firmware que rechaza productos no certificados por ellos simplemente porque son así de malvados.

Bueno, pues la solución es hacer un downgrade de la BIOS, desde F57A a F35. Y aquí surgen nuevos problemas:
  1. En la web de HP la BIOS mas antigua que puede descargarse fácilmente la F54A. Esa BIOS también rechaza baterías genéricas.
  2. Anteriormente, HP tenía un sitio FTP donde podías buscar software antiguo (ftp.hp.com/pub/softpaq/). Este sitio ya no está disponible usando protoclo FTP desde hace unos años y es imposible hacer una búsqueda sobre él.
  3. El software de actualización de las BIOS de HP no permite hacer downgrade de BIOS. No podemos instalar BIOS anteriores a la que ya tenemos.
Contra HP rendirse no es una opción. Tras preguntar en los foros de soporte de HP, gestionados por voluntarios, me dan la pista que me permite llegar hasta el firmware F48 (y luego F44, aunque no descarto encontrar algun día la F35). Las rutas son: La descarga se hace cambiando el .html final por .exe. Es un fichero descomprimible que tiene las BIOS y el software. La BIOS para nuestra máquina está en el fichero 08074.bin.

El siguiente problema es como hacer el downgrade de la BIOS en los equipos que tienen F57A. Esto lo cuentan aquí: https://www.bios-mods.com/forum/showthread.php?tid=40777. Enlazan una versión "adaptada" del software de HP que si permite escribir BIOS anteriores a la actual, saltando la restricción de HP.

He juntado aquí todo: https://drive.google.com/file/d/1RNHaK0esv-Xz_2dpepKwLQ6NZnoW_FvF. Ahi está el fichero InsydeFlash625 y el fichero con la bios F48 (08074.fd, que es el 08074.bin comentado antes con la extensión cambiada). Las instrucciones son:
  1. En el portátil donde queremos cambiar la BIOS, arrancamos con Windows y con un usuario administrador descargamos el fichero anterior y lo descomprimimos.
  2. Ejecuta el fichero HPFlashWinx64.exe. Paciencia, se toma su tiempo. Verás como te avisa de que vas a bajar la BIOS a la F48. Sigue los pasos y asegurate de que el portátil está conectado a la corriente y que no se va a interrumpir el proceso.
  3. La escritura de la BIOS se hace en parte en Windows, luego el portátil se apaga y al encenderlo a mano se realiza la segunda fase de actualización.
Una vez comprobado que tenemos la BIOS F48(o F44 en su caso) ponemos la batería genérica y podremos comprobar que ya funciona. Chuparos esa HdeP.