Page 1 sur 1

Flasher un BIOS sous Linux :-)

Message Publié : 22 Juil 2015 22:39
par NuxPowa
Brièvement, je voulais flasher la motherboard d'un vieux pc.
La motherboard est une ASUS P5N-D

Le BIOS actuel est bios 1204
Je voulais le mettre sur le dernier BIOS, la 1401
Je vous moquez pas de moi, cette motherboard date de 2009/2010, pas plus tard en tout cas!

Sous windows, je ne trouvais pas moyen de le flasher.
Ou alors, il me fallait un logiciel (je ne sais) pour le flasher ou le flasher depuis le BIOS lui-même avec un logociel qui est sur le cd de la motherboard (que je n'ai plus).
Autre possibilité: mettre un FreeDOS en USB ou Boot CD, mais soit, impossible à faire.

"Sous Linux"? me demandais-je?

Pas compliqué:
Installez le paquet flashrom, ou via apt
apt-get install flashrom

Voir la version du BIOS en cours
dmidecode -s bios-version

Sauvegarder le BIOS
sudo flashrom -r VotreModeledeCM.version.ROM

Flasher la ROM avec un nouveau BIOS
sudo flashrom -w 'FichierROM.NouvelleVersion.ROM'

Rebooter la machine (à faire uniquement si flashrom n'a pas détecté d'erreurs).

Vérifier la version du BIOS

sudo dmidecode -s bios-version


Concretement, en téléchargeant le dernier BIOS chez ASUS, le fichier était en .BIN
Hors, dans le owner's manual, il est écrit fichier .ROM

Que faire? Me disais-je...
Pas compliqué: renommer le fichier .BIN en .ROM, pas plus compliqué que ça... :-)

Celà donne ici:
En installation:
root@AsusP5ND:/home/Alphonse# apt-get install flashrom
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les NOUVEAUX paquets suivants seront installés :
flashrom
0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 140 ko dans les archives.
Après cette opération, 652 ko d'espace disque supplémentaires seront utilisés.
Réception de : 1 http://be.archive.ubuntu.com/ubuntu/ precise/universe flashrom amd64 0.9.5.2+r1517-1 [140 kB]
140 ko réceptionnés en 0s (761 ko/s)
Sélection du paquet flashrom précédemment désélectionné.
(Lecture de la base de données... 196887 fichiers et répertoires déjà installés.)
Dépaquetage de flashrom (à partir de .../flashrom_0.9.5.2+r1517-1_amd64.deb) ...
Traitement des actions différées (« triggers ») pour « man-db »...
Paramétrage de flashrom (0.9.5.2+r1517-1) ...


Le version du BIOS en cours:
root@AsusP5ND:/home/Alphonse# dmidecode -s bios-version
ASUS P5N-D ACPI BIOS Revision 1204

Vérifier si votre ROM est supportée
root@AsusP5ND:/home/Alphonse# flashrom
flashrom v0.9.5.2-r1517 on Linux 3.2.0-87-generic (x86_64), built with libpci 3.1.8, GCC 4.6.3, little endian
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
Found chipset "NVIDIA MCP51". Enabling flash write... OK.
Disabling flash write protection for board "ASUS P5N-D"... OK.
Found Winbond flash chip "W39V080A" (1024 kB, LPC) at physical address 0xfff00000.
No operations were specified.

Sauvegarder le BIOS actuel:
root@AsusP5ND:/home/Alphonse# flashrom -r ASUSP5N-DACPIBIOSRevision1204.ROM
flashrom v0.9.5.2-r1517 on Linux 3.2.0-87-generic (x86_64), built with libpci 3.1.8, GCC 4.6.3, little endian
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
Found chipset "NVIDIA MCP51". Enabling flash write... OK.
Disabling flash write protection for board "ASUS P5N-D"... OK.
Found Winbond flash chip "W39V080A" (1024 kB, LPC) at physical address 0xfff00000.
Reading flash... done.


Renommer le dernier BIOS de chez ASUS de fichier.BIN en fichier.ROM
(Pas compliqué, sous linux):
# mv 1401.BIN 1401.ROM


Flasher la ROM avec un nouveau BIOS:
root@AsusP5ND:/home/Alphonse# flashrom -w 1401.ROM
flashrom v0.9.5.2-r1517 on Linux 3.2.0-87-generic (x86_64), built with libpci 3.1.8, GCC 4.6.3, little endian
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
Found chipset "NVIDIA MCP51". Enabling flash write... OK.
Disabling flash write protection for board "ASUS P5N-D"... OK.
Found Winbond flash chip "W39V080A" (1024 kB, LPC) at physical address 0xfff00000.
Flash image seems to be a legacy BIOS. Disabling coreboot-related checks.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.


Vérifier que le BIOS a été mis à jour:
root@AsusP5ND:/home/Alphonse# dmidecode -s bios-version
ASUS P5N-D ACPI BIOS Revision 1401
root@AsusP5ND:/home/Alphonse#


Voilà, BIOS flashé de la Revision 1204 à la 1401
Soulagé ;-)

Re: Flasher un BIOS sous Linux :-)

Message Publié : 23 Juil 2015 19:09
par Pierre.
Les .BIN .ROM c'est un classique chez Asus !
C'est cool de pouvoir flasher un BIOS sous Linux... Quand je dois flasher un firmware sur ma machine, en général il n'y a pas de procédure pour Linux alors je le fais depuis une clé usb bootable en FreeDOS.

Bon à savoir, merci pour le partage :bier:

Re: Flasher un BIOS sous Linux :-)

Message Publié : 24 Juil 2015 16:26
par mackguil
Pierre. a écrit :C'est cool de pouvoir flasher un BIOS sous Linux... Quand je dois flasher un firmware sur ma machine, en général il n'y a pas de procédure pour Linux alors je le fais depuis une clé usb bootable en FreeDOS.

Bon à savoir, merci pour le partage :bier:

+1 pour freedos en usb.

Re: Flasher un BIOS sous Linux :-)

Message Publié : 14 Oct 2017 23:31
par NuxPowa
Deux ans plus tard...
Je viens encore de flasher une tour HP avec flashrom, avec quelques différences point de vue utilisation (MAJ du programme plus récente):
Premièrement: voir la version de Bios installée actuellement sur le pc:
root@Pavillon:/# dmidecode -s bios-version
5.21
root@Pavillon:/#


Ensuite,
Code : Tout sélectionner
root@Pavillon:/# flashrom --programmer internal


shrom v0.9.9-rc1-r1942 on Linux 4.11.0-14-generic (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Calibrating delay loop... OK.
Found chipset "Intel ICH7DH".
Enabling flash write... OK.
Found Winbond flash chip "W25X40" (512 kB, SPI) mapped at physical address 0x00000000fff80000.
No operations were specified.


Faire un backup du Bios:
Code : Tout sélectionner
flashrom --programmer internal -r backup.rom


Ensuite: flasher le nouveau Bios
Code : Tout sélectionner
flashrom --programmer internal -w 523.rom


Et voila, bios flashé à partir d'une MAJ d'un fichier .exe à la base (qu'il faut d'abord décompresser pour obtenir ledit fichier .rom)

Voila, juste vérifier après si la MAJ s'est bien effectuée:
root@Pavillon:/# dmidecode -s bios-version
5.23
root@Pavillon:/#

Re: Flasher un BIOS sous Linux :-)

Message Publié : 14 Oct 2017 23:41
par mackguil
Et hop, dans les tips. :jap:

Re: Flasher un BIOS sous Linux :-)

Message Publié : 15 Oct 2017 10:50
par rodrigue7973
salut mac!
j'ai une questions
est ce que la compilé d'un danger au flash bios sous nunux ?
merci
roro-san

Re: Flasher un BIOS sous Linux :-)

Message Publié : 15 Oct 2017 16:53
par mackguil
rodrigue7973 a écrit :salut mac!
j'ai une questions
est ce que la compilé d'un danger au flash bios sous nunux ?
merci
roro-san


Que veux tu dire?

Re: Flasher un BIOS sous Linux :-)

Message Publié : 15 Oct 2017 18:31
par rodrigue7973
hello mack
quand faire un flashé du bios mais danger sous linux ?
amicalement
Roro-san

Re: Flasher un BIOS sous Linux :-)

Message Publié : 15 Oct 2017 20:25
par mackguil
rodrigue7973 a écrit :hello mack
quand faire un flashé du bios mais danger sous linux ?
amicalement
Roro-san


Comme sur un autre OS, ni plus ni moins, le périphérique connecté à un onduleur est un plus afin d'éviter les problèmes.