Bonjour à tous,
Voici l’histoire de ma petite galère de la journée d’hier : le fabriquant de la carte mère qui équipe mon petit serveur de données basse consommation, MSI pour ne pas le nommer, ne fournit pas les dernières images de ses EFI.
Les dernières versions ne sont disponibles que sous la forme d’un utilitaire windows (.exe), qui permet uniquement le flashage depuis cet OS. Cela malgré le fait que l’EFI de l’engin en question possède un outil de flashage intégré.
C’est dommage et pas très "other OS fiendly". Le problème je n’ai aucune envie de démonter la machine pour le moment, elle est occupée à faire du partage de fichiers et encore moins de devoir installer rapidement un windows pour cela (une blague est cachée dans cette phrase, sauras-tu la retrouver ?).
Le démontage est programmé pour la semaine prochaine lorsque les nouveaux disques NVMe et les cartes adaptatrices PCIe seront arrivées, raison même de la mise à jour du BIOS, la dernière version annonçant un meilleur support de ce type de matériel.
Souvent dans ce genre de cas il reste quelques solutions simples :
A. Il y a un paramètre à passer en ligne de commande pour extraire l’image du BIOS/EFI.
B. On lance avec WINE et on arrive à récupérer le fichier en question dans un dossier temporaire.
C. On ouvre le .exe avec un utilitaire d’archivage type 7z qui reconnaît la présence d’une archive et permet d’extraire le fichier.
Spoiler alert : aucune de ces méthodes ne fonctionne et Murphy fait sa loi.
A. Exécution du fichier depuis la console WINE avec /?, je tente aussi le traditionnel /extract, malheureusement il se lance systématiquement en mode graphique sans donner de réponse dans la console. Raté, trop simple.
B. Lors de l’exécution du fichier par WINE il m’affiche directement une popup qui me demande de le lancer depuis une clé USB. Allumage de KVM, recherche de clé USB, sauvegardage, formatage puis passage de cette dernière à la VM et éxécutage : Rien. C’était évident on est pas sur le bon modèle de carte mère. Aucun fichier temporaire à se mettre sous la dent, là j’ai du Garou qui m’arrive dans la tête "Si tu crois que c’est fini, JAMAAAIIIISSS ! C’est juste une pause un rééééépiiiss"… Bref je sens que ca va être long. Je profite de ce moment de calme et de zenitude pour envoyer une petite malédiction des familles aux ingés de chez MSI qui ont pris la décision de pondre cette mer…veille.
C. Aucun utilitaire n’a réussi à identifier une archive dans le .exe. À ce point là, je n’en doutais pas une seconde. Je me fais donc un grand café.
Changement de méthode. Approche dite de la débrouille pour rester poli, je vous ai déjà potentiellement mit du Garou dans la tête, on va pas en rajouter :
D.1. Analyse du fichier .exe avec wrestool pour voir si la ROM est liée comme une ressource de l’exe. Pas de bol aucun n’est assez gros pour correspondre.
D.2. Analyse du fichier .exe avec wxHexEditor. Première étape récupération d’une ancienne version de l’EFI disponible sous la forme d’une ROM pour savoir ce que l’on cherche. Petit tour sur le grand ternet et récupération sur un site sans aucun rapport avec MSI.
Ouverture du fichier avec l’éditeur hexa et on peut constater qu’on a du padding à base de 0xFF sur pas mal d’octets (128k très exactement) puis une séquence. Je copie la séquence dans la recherche de mon éditeur hexa et recherche "FF AA 55 AA 55 00 00 00 00 00 00 00 00 00 00 00 00". Ringo ! On a un match. Je relève la position du premier 0xAA, auquel je soustrais les 128k de 0xFF (2 999 197 - 131 072) et me rends donc à la position 2 868 125, re-ringo on est au premier 0xFF après une autre séquence et il n’y a que ça jusqu’à la position 2 999 197. On a trouvé le début de notre EFI.
Reste à voir où se trouve la fin. On reprend le fichier d’origine, il fait 8M. Donc on se rend à la position 11 256 733 (2 868 125, notre départ + 8 388 608, les 8Mo). Re-re-ringo on est pile poil à la fin du fichier .exe. L’EFI est donc empilé à la fin du fichier .exe contentant l’utilitaire. Extraction de cette partie, j’utilise un tail -c 8388608 > A88XG43-BIOSv3C.rom
. Il ne reste plus qu’à vérifier le résultat, aucune envie de sortir la pince à griffe et le programmateur à la suite d’un mauvais flashage dans quelques jours. J’utilise donc un petit utilitaire disponible sur GitHub nommé UEFITool (https://github.com/LongSoft/UEFITool/). Là il est possible de vérifier que ce qui a été sorti du .exe correspond bien à ce que l’on attend en comparant avec l’ancienne version.
Le fichier de l’ancien EFI dans UEFITool :
Le fichier extrait :
J’ai passé en revue les différentes entrées et on est très proche, bien entendu il y a un peu plus de contenu dans la nouvelle version mais tout me semble propre, je suis confiant pour flasher la semaine prochaine.
Et voilà comment une opération qui devait prendre moins de 2 minutes a pris au final près de 3 heures.
Pour résumer si vous devez flasher une carte mère MSI sans windows vous pourrez tenter de sortir le fichier rom de la fin de l’exe. Résultat à suivre ici week end prochain et j’en profiterai pour parler de l’ajout de disque NVMe dans une ancienne machine.
Bon dimanche à vous.
# Commentaire supprimé
Posté par Anonyme . Évalué à 6.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: La réponse D
Posté par Chris K. . Évalué à 3. Dernière modification le 02 mai 2021 à 15:47.
C'est ce que j'ai tenté en D.1 avec wrestool, malheureusement il ne me listait aucune ressource de 8Mo, tout ce qui était dans le listing était bien plus petit.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: La réponse D
Posté par Chris K. . Évalué à 3.
Vu que le fichier .exe s'est lancé avec un profil WINE vierge qui n'a pas de framework .Net installé, comme dans la VM d'ailleurs j'avais éliminé directement cette possibilité.
J'ai dû télécharger le framework .Net pour lancer l'utilitaire en lien afin de m'assurer de ne pas être passé à coté d'une méthode plus simple et comme attendu rien de concluant. Uniquement deux fichiers .ressources de 1ko.
# Si un modo passe par ici...
Posté par Chris K. . Évalué à 4.
Deux petits loupés à corriger qui viennent de me sauter au visage :
s/Exécution du fichier avec depuis la console WINE/Exécution du fichier depuis la console WINE/
s/Extraction de cette partie, j’utilise avec un /Extraction de cette partie, j’utilise un/
Merci d'avance.
[^] # Re: Si un modo passe par ici...
Posté par gUI (Mastodon) . Évalué à 3.
Corrigé, merci
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Si un modo passe par ici...
Posté par Chris K. . Évalué à 2.
Merci à toi gUI.
# Hachoir-subfile
Posté par Benjamin Henrion (site web personnel) . Évalué à 6.
Tu as essaye de passer hachoir-subfile sur ton .exe pour voir si il trouve un .bin dedans?
[^] # Re: Hachoir-subfile
Posté par Chris K. . Évalué à 7.
Non j'y avais pas pensé, je n’avais jamais utilisé hachoir même si j'en avais déjà entendu parler ici.
Voilà ce que ça donne :
Je ne retrouves malheureusement pas les positions sur lesquelles je suis tombé avec l'éditeur hexa.
[^] # Re: Hachoir-subfile
Posté par Benjamin Henrion (site web personnel) . Évalué à 5. Dernière modification le 02 mai 2021 à 22:38.
Peut-etre aussi avec uwfirmforce?
http://uwfirmforce.wikidot.com/
Il y a aussi binwalk:
https://github.com/ReFirmLabs/binwalk
[^] # Re: Hachoir-subfile
Posté par Chris K. . Évalué à 3.
J'ai testé pour voir.
Malheureusement aucun des deux ne trouve les positions.
binwalk :
Pour UWfirmforce je vais éviter de poster la sortie ici… elle fait 6 390 957 lignes.
# Donner le exe directement depuis le BIOS ?
Posté par cg . Évalué à 5.
Je comprend ton désarroi.
Sur des machines HP, j'ai pu mettre à jour les images BIOS en allant dans le BIOS, puis en choisissant "flash bios image", et je lui donne le .exe qui est sur une clé USB. Cette combine fonctionne peut-être aussi sur ta carte MSI.
[^] # Re: Donner le exe directement depuis le BIOS ?
Posté par Chris K. . Évalué à 5.
Je me suis posé la même question<… j'ai presque envie de tenter la semaine prochaine pour la science et voir si ça fonctionne mais je voulais avoir une solution toute faite sous la main car je ne suis sur place que quelque heures.
Je ne te caches pas que j'ai peur qu'il le prenne, que ça déconne et que je doive tout de même sortir la pince a griffe.
Je pense que je vais tenter si j'ai le temps et que la puce est bien listée comme supportée par le programmateur car j'ai pas spécialement envie de repartir pour 2h de galère sur le sujet ^^.
[^] # Re: Donner le exe directement depuis le BIOS ?
Posté par cg . Évalué à 5.
Tu ne dis pas quelle châssis accueille la carte mère, mais clairement si tu n'as que quelques heures, le plus prudent est d'avoir un châssis de rechange avec toi, quitte à échanger les disques d'un serveur à l'autre pendant l'opération.
Flasher un binaire plus ou moins random sur une puce en mode speed, c'est… pas prudent. [mais super tentant ;) ]
Ptet que le support MSI peut te fournir le bin ?
[^] # Re: Donner le exe directement depuis le BIOS ?
Posté par Chris K. . Évalué à 7.
Je vais sauvegarder l'efi d'origine avant pour ne pas trop me mettre dedans. Malheureusement je n'ai pas de chassis de rechange et il faut que je case le nettoyage, le remplacement des ventillos qui hurlent a la mort et surtout le transfert du raid logiciel sur disque dur standard actuel vers le NVMe et que j'arrive à faire booter le système.
J'aurai aimé pouvoir contacter le support mais il faut un compte et quand j'ai essayé de le créer hier j'ai eu droit à une erreur 500 du serveur j'avais oublié ça dans ma liste des galères.
[^] # Re: Donner le exe directement depuis le BIOS ?
Posté par vpo . Évalué à 1.
Pareil chez dell.
On peut fournir directement le .exe pour flasher l'UEFI sans passer par l'OS. Bien pratique quand après un changement de carte mère sur un laptop, un banal disque SSD Crucial n'est plus reconnu.
# Aucun lien, fils unique
Posté par gUI (Mastodon) . Évalué à 8. Dernière modification le 02 mai 2021 à 18:21.
Alors ça va pas t'aider, mais la dernière carte mère que j'ai monté (marque ASRock, pub gratuite), je vais immédiatement dans l'UEFI lors du premier boot. Je me balade dans les différents menus, je fais 3 réglages comsétiques, et je vois l'option "mettre à jour UEFI".
Sans trop savoir pourquoi j'y vais, alors que j'avais rien préparé de spécial… Et là j'ai le choix entre mettre à jour depuis une clé USB et mettre à jour directement depuis Internet.
Quoi ????
Je branche un câble réseau, je clique… 3mn plus tard je reboote avec le nouveau UEFI.
Moi je dis : la classe.
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Aucun lien, fils unique
Posté par Chris K. . Évalué à 3. Dernière modification le 02 mai 2021 à 18:26.
Oui c'est beau le progrès :) La CM est de 2014 donc pas d'option de ce type malheureusement.
# Blague à part
Posté par woffer 🐧 . Évalué à 2.
Non, je n'ai pas su. Je suis nul à ce genre de jeu, par contre je suis curieux.
[^] # Re: Blague à part
Posté par Chris K. . Évalué à 7. Dernière modification le 02 mai 2021 à 21:24.
Tout est dans le mot clé rapidement. Il y a le temps d'installation et le temps d'installation une fois le système démarré.
Le premier est tout à fait correct et comparable à nos habitudes sous Linux. Puis il y a le second avec les séries de questions sur la vie privée et des roues qui tournent avec des "veuillez patienter", "plus que quelques instant" (super longs) en dessous.
Ça a été très long sur une machine moderne (3900x, 32Go DDR4, disques NVMe) alors sur un vieux vélo type APU AMD bi-coeur FM2+ équipé d'un ancien disque dur de récupération pour l'opération je n'ose même pas imaginer le temps que cela va prendre.
[^] # Re: Blague à part
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
moi j'ai trouvé ceci : « Windows … rapidement » (il y a donc eu du progrès depuis ?)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# Flashrom
Posté par Gwen Gaumend . Évalué à -3.
Et en glissant l'exécutable dans flashrom ?
https://www.flashrom.org/Flashrom
[^] # Re: Flashrom
Posté par Chris K. . Évalué à 3.
Flashrom étant pas vraiment fait pour ça, il risque de flasher le contenu du .exe directement.
# Es-tu sûr ?
Posté par Christie Poutrelle (site web personnel) . Évalué à 1.
J'ai une carte mère MSI, une récente, et les mises à jour de BIOS/UEFI sont aussi fournies sous forme de fichier .zip, que tu mets sur n'importe quelle clé ou disque dur USB, tu rebootes et vas dans l'interface de l'UEFI, tu passes en mode "update" et il trouve le fichier tout seul.
J'aurais cru qu'ils fournissent les upgrades de la sorte pour toutes leurs cartes mères, je suis étonné du contraire. Il y a aussi un upgradeur en .exe, pour Windows, mais la variante .zip marche très bien aussi (et pas besoin de Windows).
Pour info, j'ai enregistré ma carte mère dans leur site de support, et depuis ce dernier, une fois connecté, les updates sont disponibles sous forme de fichier .zip.
[^] # Re: Es-tu sûr ?
Posté par Chris K. . Évalué à 3. Dernière modification le 04 mai 2021 à 02:59.
Le seul fichier zip disponible sur leur site contient uniquement un .exe.
Je vais même tenter de flasher le .exe (voir commentaire plus haut), le problème c'est que ce n'est documenté nulle part, la seule info bien visible dit :
https://www.msi.com/Motherboard/support/A88X-G43
Avec un .exe le lancer sous windows ca me semble intuitif, le passer à un utilitaire de flash beaucoup moins.
[^] # Re: Es-tu sûr ?
Posté par Christie Poutrelle (site web personnel) . Évalué à 2. Dernière modification le 04 mai 2021 à 16:07.
Ah oui, c'est étonnant, je viens d'aller voir sur la page de support de ma CM est c'est effectivement différent https://www.msi.com/Motherboard/support/B450-GAMING-PLUS-MAX
D'ailleurs l'upgrade pour Windows semble m'avoir seulement été proposée quand je vais sous Windows et j'utilise un outil fourni avec le driver, qui permet de télécharger les upgrades.
Tu as sûrement raison, c'est l'âge du matériel / mises à jour qui joue en ta défaveur très probablement.
[^] # Re: Es-tu sûr ?
Posté par Chris K. . Évalué à 2.
Oui c'est aussi ce que gUI remontait dans son commentaire, visiblement sur des cartes plus récentes c'est bien moins chiant.
[^] # Re: Es-tu sûr ?
Posté par Christie Poutrelle (site web personnel) . Évalué à 1.
C'est même carrément facile ! Ils ont fait des progrès de ouf.
# Fichier à flasher
Posté par Gwen Gaumend . Évalué à -4.
Sur le site MSI, il y a un fichier .zip contenant un fichier .txt, un fichier .exe, et un fichier nommé E7793AMS.350.
C'est ce dernier fichier qui est à flasher. Il n'a pas d'extension.
C'est vrai que le flashage de carte mère avec MSI, ce n'est pas la panacée.
Je préférai utiliser l'utilitaire AMI que leur propre utilitaire dédié sous Windows.
Bon flashage.
[^] # Re: Fichier à flasher
Posté par Chris K. . Évalué à 4.
Oui c'est une ancienne version il me faut la 3.C pas la 3.5, ce qui m'intéresse c'est "- Improved PCIE M.2 compatibility."
La 3.5, c'est même la version que j'ai utilisé pour savoir quoi chercher et comparer.
[^] # Re: Fichier à flasher
Posté par Gwen Gaumend . Évalué à -4.
Et en récupérant l'utilitaire AFUDE238 présent dans l'archive 7793v35.zip, puis en suivant la procédure indiquée par MSI ici : https://storage-asset.msi.com/files/pdf/How_to_flash_the_BIOS.pdf (deuxième partie)
en vérifiant qu'il reconnait le fichier E7793V3C.exe
Sinon, je m'adresserais directement au support de MSI pour savoir s'ils peuvent me fournir le fichier E7793AMS.3C0 à flasher.
[^] # Re: Fichier à flasher
Posté par Gwen Gaumend . Évalué à -4.
En suivant la deuxième méthode de flashage, c'est à dire "Flash AMI UEFI BIOS by USB Disk Under DOS Mode", et après avoir extrait le fichier 7793v3C.zip à la racine de la clé USB bootable, la commande à exécuter devrait être la suivante :
C:\7793v3C\E7793V3C
À essayer.
[^] # Re: Fichier à flasher
Posté par Chris K. . Évalué à 2. Dernière modification le 04 mai 2021 à 18:01.
La procédure en question prend une image de la rom, pas un exécutable windows. Tout le problème est que ce fichier n'existe pas dans l'archive.
Pour l'utilitaire de flashage DOS je ne vois pas trop l'intérêt quand il y en a un intégré à l'EFI.
[^] # Re: Fichier à flasher
Posté par Gwen Gaumend . Évalué à -4.
L'intérêt du flashage DOS, c'est justement de prendre en considération un exécutable Windows, quand le fichier du bios en question n'est pas extractible, mais présent dans l'exécutable lui-même.
C'est une alternative sérieuse quand M-Flash ne peut pas avoir accès au fichier du BIOS, semble-t-il.
Sinon, pourquoi donc MSI ne fournirait pas ce fichier binaire ?
[^] # Re: Fichier à flasher
Posté par Chris K. . Évalué à 4. Dernière modification le 04 mai 2021 à 20:27.
Il faut faire attention avec ce genre de choses, tu spécules sur le fait que l'utilitaire DOS fournit avec une version précédente est capable de prendre en charge un .exe qui contient un utilitaire de flashage pour windows embarquant l'EFI d'une version suivante. Ce n'est pas ce qu'indique la documentation en lien où l'exemple donné prend une image de la ROM.
Cette carte mère n'a pas de dual BIOS/EFI, donc si ça se passe mal, c'est à dire qu'un des utilitaires prend l'exe et écrit son contenu sans se poser de questions tu te retrouves avec une carte mère qui ne démarre plus.
Je peux me permettre de prendre le risque de tenter de passer l'exe dans M-Flash car je suis équipé pour récupérer la situation si cela venait à mal tourner et encore je ne le ferai qu'après avoir vérifié que mon programmateur reconnait bien le modèle de la puce qui équipe la carte mère.
Il ne faut pas jouer avec ce genre de choses et se dire que ça va passer au risque de se retrouver avec du matériel hors service.
[^] # Re: Fichier à flasher
Posté par Gwen Gaumend . Évalué à -3.
Je suis entièrement d'accord avec toi.
Je contacterais le support MSI avant de procéder ainsi.
En tout cas merci, cela m'a permis de me mettre à niveau pour le flashage de carte MSI.
Si je me suis permis d'essayer de t'aiguiller, c'est que j'ai toujours flashé mes appareils, graveur DVD, cartes mère, routeur, composants PC et téléphone portable avec succès, de préférence à l'aide d'un onduleur.
On est jamais trop prudent.
Bonne continuation.
# Solution alternative
Posté par OtterFHantome . Évalué à 3.
J'ai eu le même problème avec un portable Acer. Ça fait des années que je repousse le problème mais la lecture de ton journal m'a poussé à prendre le temps de faire la mise à jour. J'ai trouvé une solution utilisant une clé USB sous FreeDOS sur https://wiki.archlinux.org/title/Flashing_BIOS_from_Linux.
Pour résumer les étapes, il faut:
- Télécharger une image FreeDOS (c'est très léger)
- La copier sur la clé USB (là aussi, c'est très rapide)
- Copier le fichier sur la clé USB
- Booter sur la clé
- Choisir la langue
- Lancer le .exe
Ça a fonctionné parfaitement dans mon cas. C'est toujours trop d'efforts pour une simple mise à jour du BIOS, même sur un appareil un peu vieux, mais ça me semble plus simple et plus rapide que d'extraire le fichier rom.
[^] # Re: Solution alternative
Posté par Chris K. . Évalué à 2.
Ça peut être une solution dans pas mal de cas oui, là malheureusement il s'agit d'un exécutable pour windows.
[^] # Re: Solution alternative
Posté par legranblon (site web personnel) . Évalué à 1.
Peut-être qu'au lieu de se fader une install windows, un reactos sur un disque externe suffirait ?
[^] # Re: Solution alternative
Posté par Chris K. . Évalué à 8.
Une fois que tu as la méthode, à savoir une simple ligne de commande pour extraire la rom du .exe, c'est hyper simple par rapport à une installation ou même un boot sur un windows pe.
Spoiler alert tout à fonctionné à merveille avec le fichier extrait, les détails dans un prochain journal.
# Hiren's Boot CD
Posté par baduk . Évalué à 1.
Faudrait voir si l'utilitaire fonctionne avec Hiren's Boot CD.
Comme c'est un petit Windows 10, tu boot dessus et tente de lancer l'exe avec ça
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.