Flasher le BIOS de la carte mère sans installer windows ?

Le flash d'un BIOS est une opération simple mais surtout délicate, comme chacun sait. Pour les portables, il est préférable (voire nécessaire, certains constructeurs mettant des protections) de les brancher sur le secteur. Par ailleurs, il est très important de veiller à ne pas redémarrer votre ordinateur pendant la mise à jour du BIOS et de bien attendre jusqu'à la fin de l'opération. Certains constructeurs mettent en garde étant donné que le flashage du BIOS est potentiellement risqué, si vous ne rencontrez pas de problèmes avec la version actuelle du BIOS, il est recommandé de ne pas flasher le BIOS. Pour flasher le BIOS, faites-le avec prudence. Un flashage du BIOS inadéquat peut entraîner un dysfonctionnement du système.
AVIS DE NON-RESPONSABILITÉ : La Communauté Ubuntu-fr ne prend pas en charge le déverrouillage des appareils volés ou appartenant à des entreprises. Les informations fournies ici sont destinées à un usage personnel uniquement. C'est-à-dire vous avez accidentellement défini un mot de passe sur votre propre machine, vous avez oublié le mot de passe que vous avez défini il y a longtemps, ou vous avez mal tapé le mot de passe lors de sa définition, et vous ne pouvez plus entrer dans le BIOS en mode administrateur.
Sur les cartes mères récentes, il suffit de télécharger la dernière version en date du BIOS sur le site du constructeur et de la mettre sur une clé USB au format FAT 32/16 en n’utilisant qu’une seule partition. Puis d’insérer la clé USB contenant le fichier BIOS sur l’un des ports USB de votre ordinateur, de démarrer et d'aller dans le BIOS…(voir le manuel de votre carte mère pour plus d'informations).

Avec FreeDOS (clé USB)

Nous allons utiliser FreeDOS pour flasher le BIOS à partir d'un fichier .exe, non-exécutable sous Linux… mais exécutable sous DOS. Vous trouverez les archives de FreeDOS ici.

Préparation de la clé USB

  • Lancer UNetbootin et cocher Distribution et choisissez FreeDOS. En bas (Drive:), sélectionner la clé USB. Puis faites OK.

  • Fermer UnetBootIn, ouvrir la clé dans Nautilus, y copier simplement le/les fichier(s) de flashage récupérés sur le site du constructeur. La clé est prête pour flasher.

Flash du BIOS

  1. Booter sur la clé. Le système va charger FreeDOS.
  2. Choisir la seule option possible: Default.
  3. Une sorte de grub s'affiche, choisir FreeDOS Safe Mode (don't load any drivers).
  4. Un prompt s'affiche, par défaut sur le disque A
  5. Si les fichiers ajouté ne s'affichent pas sur le disque A:, Aller dans le disque C: en tapant « C: »
  6. Taper la commande dir qui vous listera le contenu de la clé. Vérifier que votre fichier de flashage apparaît bien dans la liste.
  7. Taper le nom complet, avec l'extension, du fichier de flashage.
  8. Taper Entrée.
  9. Le flashage du BIOS commencera et prendra quelques secondes ou minutes, puis il sera vérifié.
  10. Il est possible qu'il y ait un redémarrage un peu brutal à la fin du flashage, mais ça redémarre bien.

Le BIOS est flashé. Au redémarrage, aller dans le BIOS, et effectuer les directives fournies par le constructeur (en général load setup defaults). Paramétrer le BIOS, sauvegarder, et redémarrer.

Si les fichiers stockés sur la clé usb ne sont pas accessibles sur les lecteurs A: ou C:, veuillez suivre le tutoriel Comment créer un live-USB contenant FreeDOS.

Avec FreeDOS (création d'une image ISO à graver sur cd)

C'est un peu long car on part d'une image ISO pour en recréer une nouvelle.

  1. Télécharger l'image ISO de FreeDOS ( Lien direct vers l'image ISO de FreeDOS). Puis dans un terminal à laide des lignes de commandes suivantes:
  2. (Facultatif) Vérifier le checksum d'après celui du site officiel de FreeDOS
    sha256sum fdbasecd.iso
  3. Monter l'image pour en récupérer le contenu
    sudo modprobe loop
    mkdir tmp
    sudo mount fdbasecd.iso tmp -t iso9660 -o loop
  4. Récupérer le contenu dans un nouveau dossier
    mkdir freedosmod
    cp -ra tmp/* freedosmod/
    sudo umount tmp
    rmdir tmp
  5. Y copier les fichiers du BIOS
    cp /chemin_vers_votre_bios/* freedosmod/
  6. Créér l'image ISO
    cd freedosmod
    chmod u+w ./isolinux/isolinux.bin
    mkisofs -o ../freedos_biosupdate.iso -q -l -N \
       -boot-info-table -iso-level 4 -no-emul-boot \
       -b isolinux/isolinux.bin \
       -publisher "FreeDOS" \
       -A "FreeDOS 1.0" -V FDOS_1 -v .
    cd ..
  7. (Facultatif) Tester l'iso, voir [kvm] pour plus d'infos
    kvm -cdrom freedos_biosupdate.iso -boot d -m 512
  8. Graver le fichier image.iso sur un CD réinscriptible
  9. Si tout est OK, faire le ménage
    rm -r freedosmod
    rm freedos_biosupdate.iso
  10. Redémarrer la machine, et booter sur le CD
  11. Au premier menu, choisir "1" pour lancer FreeDOS
  12. Au deuxième menu, choisir "1" pour INSTALL (Contrairement à ce que l'on pourrait croire, ça n'installe rien à cette étape)
  13. Au troisième menu, choisir "Français" pour avoir le clavier azerty.
  14. Au quatrième menu, choisir "Run from CD"
  15. Un prompt s'affiche, taper dir et vérifier la présence de nos fichiers
    dir
  16. Lancer votre exécutable, en respectant le mode d'emploi du fabricant.

Avec une image DR-DOS (création d'une ISO à graver sur CD)

FIXME Il semble que DR-DOS n'existe plus et soit remplacé par FreeDOS (cf. topic sur Yahoo Answers ou lien direct vers DRDOS 7.03 sur OldDOS.net et topic sur DRDOS Wiki). À confirmer. En tout cas le lien de téléchargement ci-dessous est mort.

Regarder si vous n'avez pas un utilitaire dans le BIOS directement. Sinon :

  • Télécharger l'image du dos lien direct vers DRDOS.net ou lien direct vers OlDOS.net, dans notre cas d'exemple le DR-DOS 7.03 (qui fonctionne à merveille), l'utilitaire pour flasher le BIOS (par exemple AWDFASH.EXE), et le fichier biosupdate.file correspondant au BIOS de votre carte mère, téléchargeables sur le site du constructeur.
  • Exécuter les commandes suivantes
cd <répertoire de téléchargement>
mkdir tmp
sudo mount -o loop -t vfat DRDOS703.IMG tmp
sudo cp AWDFASH.EXE biosupdate.file tmp
sudo umount tmp
mkisofs -o image.iso -b DRDOS703.IMG DRDOS703.IMG
  • Graver le fichier image.iso sur un CD
  • Démarrer sur le CD, et à l'invite A:\ lancer votre utilitaire (par exemple : AWDFASH biosupdate.file)
<logiciel>.exe

Avec Flashrom

Flashrom est un logiciel qui permet de flasher le BIOS directement depuis votre système (utilisable sous Linux, FreeBSD, DragonFly BSD, Solaris, Mac OSX, etc).

Flashrom ne se lance pas sur les ordinateur portables: « Laptops, notebooks and netbooks are difficult to support and we recommend to use the vendor flashing utility. The embedded controller (EC) in these machines often interacts badly with flashing. »
  • Voir la version du BIOS en cours
 sudo dmidecode -s bios-version 
  • Vérifier si votre ROM est supportée
 sudo flashrom 

La commande doit renvoyer le message suivant :

Calibrating delay loop... OK.
No coreboot table found.
Found chipset "NVIDIA MCP51", enabling flash write... OK.
Found chip "PMC Pm49FL004" (512 KB) at physical address 0xfff80000.
No operations were specified. 
Flashrom vérifie uniquement la possibilité pour la puce du BIOS d'intégrer les données brutes du fichier ; il n'effectue aucune vérification quant à l'intégrité du code contenu, que ce soit au niveau d'éventuels bogues logiciels ou bien au niveau de l'adéquation de modèle et de version. Bien veiller à vérifier que la mise à jour correspond à votre type de BIOS en précisant votre modèle complet dans la page de recherche de mises à jour sur le site du constructeur.
  • Sauvegarder le BIOS
 sudo flashrom -r VotreModeledeCM.version.ROM 
 Calibrating delay loop... OK.
No coreboot table found.
Found chipset "NVIDIA MCP51", enabling flash write... OK.
Found chip "PMC Pm49FL004" (512 KB) at physical address 0xfff80000.
Reading flash... done. 
  • Flasher la ROM avec un nouveau BIOS
 sudo flashrom -w 'FichierROM.NouvelleVersion.ROM' 
 Calibrating delay loop... OK.
No coreboot table found.
Found chipset "NVIDIA MCP51", enabling flash write... OK.
Found chip "PMC Pm49FL004" (512 KB) at physical address 0xfff80000.
Flash image seems to be a legacy BIOS. Disabling checks.
Programming page: 0007 at address: 0x00070000 
  • 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 

FIXME: Sur un T420, cette manipulation provoque un accès administrateur au BIOS sans son mot de passe, pendant la période d'une session1).

À partir du moment où vous avez pu faire vos modifications sans le mot de passe administrateur dans le BIOS, ou pas. Ou si vous démarrez de nouveau sur votre o/s Ubuntu, ça ne fonctionnera plus, il faudra réitérer les commandes.

La seule chose que nous pouvons pas faire, c'est de modifier le mot de passe courant, sauf si vous êtes en possession de ce dernier. En ce moment, merci d'utiliser votre mot de passe, et de ne pas employer cette méthode !2).

Sâchez aussi que dans le cas présent, nous exploitons un bug dans le firmware du BIOS. Si vous voulez reset le mot de passe administrateur de votre T420, il vous faudra le démonter.

À ce jour je suis incapable de dire si ce bug concerne que les T420 de la marque ThinkPad, ou si l'ensemble des laptops ayant NVRAM chez ThinkPad a ce problème !.

BeAvEr

Une mauvaise manipulation dans votre ThinkPad Setup (BIOS) en administrateur, et votre laptop ThinkPad peut être totalement inutilisable3) au prochain boot. Veillez à bien faire attention à vos modifications dans le BIOS !.
Pour que l'astuce fonctionne, vous devez au préalable absolument supprimer le splash screen de votre ThinkPad. Pour se faire, veuillez vous rendre dans votre ThinkPad Setup (BIOS) via la touche F1, et dans : Startup > Boot Mode, veuillez y sélectionner "Diagnostics". Cette manipulation ne nécessite pas le mot de passe administrateur.

Sur la version du firmware du BIOS suivant :

$  sudo dmidecode -s bios-version 
$  83ET82WW (1.52 )

Veuillez ouvrir un terminal avec pour contenu :

  1. Nous écrivons des zéros dans NVRAM :
    sudo dd if=/dev/zero of=/dev/nvram
  2. Vous devez aussi y ajouter cette commande :
    printf "\xff" | sudo dd of=/dev/nvram bs=1 seek=32
  3. Nous redémarrons notre ordinateur, pensez à accéder4) à votre BIOS :
    sudo reboot

Vous aurez un résultat semblable à celui là :

dd: écriture vers '/dev/nvram': Aucun espace disponible sur le périphérique
1+0 enregistrements lus
0+1 enregistrements écrits
114 octets copiés, 0,000870344 s, 131 kB/s
 
1+0 enregistrements lus
1+0 enregistrements écrits
1 octet copié, 0,000220398 s, 4,5 kB/s


1)
Un reboot, ou une extinction de la machine.
2)
Elle vous sera d'aucune utilité.
3)
Même après un flash du BIOS !.
  • flasher_le_bios.txt
  • Dernière modification: Le 11/09/2022, 11:43
  • par moths-art