Ceci est une ancienne révision du document !


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) d'en brancher l'alimentation 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.

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.

Préparation de la clé USB

  • Formater une clé USB en fat32.
  • Lancer UNetbootin: ApplicationsOutils systèmeUNetbootin.

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. 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 reboot un peu brutal à la fin du flashage, mais ça reboote bien.

Le BIOS est flashé. Au reboot, 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 rebooter.

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

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

sha256sum fdbasecd.iso
  • Monter l'image pour en récupérer le contenu
sudo modprobe loop
mkdir tmp
sudo mount fdbasecd.iso tmp -t iso9660 -o loop
  • Récupérer le contenu dans un nouveau dossier
mkdir freedosmod
cp -ra tmp/* freedosmod/
sudo umount tmp
rmdir tmp
  • Y copier les fichiers du BIOS
cp /chemin_vers_votre_bios/* freedosmod/
  • 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 ..
  • (Facultatif) Tester l'iso, voir [kvm] pour plus d'infos
kvm -cdrom freedos_biosupdate.iso -boot d -m 512
  • Graver le fichier image.iso sur un CD réinscriptible
cdrecord -v blank=fast dev=/dev/cdrom freedos_biosupdate.iso
  • Si tout est OK, faire le ménage
rm -r freedosmod
rm freedos_biosupdate.iso
  • Redémarrer la machine, et booter sur le CD
  • Au premier menu, choisir "1" pour lancer FreeDOS
  • Au deuxième menu, choisir "1" pour INSTALL (Contrairement à ce que l'on pourrait croire, ça n'installe rien à cette étape)
  • Au troisième menu, choisir "Français" pour avoir le clavier azerty.
  • Au quatrième menu, choisir "Run from CD"
  • Un prompt s'affiche, taper dir et vérifier la présence de nos fichiers
dir
  • 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. ici ou et ). À 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 ici ou , dans notre cas d'exemple le DR-DOS 7.03 (qui fonctionne à merveille), l'utilitaire pour flasher le bios (chez moi 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 <repertoire de telechargement>
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 (chez moi : 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. »
 sudo apt-get install flashrom 
  • 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. 
FIXME (Gagnerait à être plus clair)
Flashrom ne vérifie que si la taille du fichier contenant le BIOS correspond à la taille de la puce du BIOS et ne vérifie pas le contenu de ce fichier. Il faudra donc veiller à ce que ce fichier corresponde bien au BIOS.
  • Sauvegarder le BIOS
 sudo flashrom -r A7Tversion.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 A7TNouvelleVersion.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 
  • flasher_le_bios.1347795328.txt.gz
  • Dernière modification: Le 16/09/2012, 13:35
  • par vrinse