Flasher le BIOS d'une carte mère

Quand on n'utilise ni Windows ni MS-DOS

Asdrad TORRES


1. Flasher avec désinvolture ?
2. Flasher le bios d'un système opérationnel
3. Méthode universelle de flashage
3.1. Récupérer le BIOS et le programme de flashage
3.2. Récupérer une disquette bootable
3.3. Composer la disquette de flashage
3.4. Fabriquer le support
3.5. Redémarrer l'ordi et flasher le BIOS
3.6. Configurer le nouveau BIOS
3.7. Synthèse pratique des commandes et opérations

Résumé

Cet article donne une technique universelle permettant de flasher le BIOS d'un PC. Il explique également les opérations à effectuer et discute de l'intérêt d'autres techniques de flashage.

Note

Avant de se lancer dans le flashage d'une carte mère, il est impératif de lire attentivement le chapitre consacré à cette opération, dans la documentation de la carte. Certaines cartes mères proposent des techniques de flashage d'une grande fiabilité et simples à mettre en œuvre (par exemple, l'EZ-Flash d'Asus).

Pour simplement retrouver la syntaxe des commandes sous Ubuntu, aller directement à la section "Synthèse pratique des commandes et opérations".

1. Flasher avec désinvolture ?

Pour une raison ou pour une autre (instabilité, nouvelles fonctionnalités...), on souhaite changer la version du BIOS installée sur la carte mère de son ordi. On se procure alors le nouveau BIOS auprès du fabricant du carte de mère. Ce BIOS se présente sous la forme d'un fichier que l'on peut télécharger sur le site du fabricant. Une fois ce fichier récupérer, on voudra "l'installer" sur la carte-mère, c'est-à-dire copier le contenu du fichier dans la mémoire permanente de la carte mère. Cette opération de copie s'appelle flasher le BIOS. Elle ne pourra être menée à bien que si l'on dispose d'un logiciel de flashage du BIOS.

Une solution simple consiste à installer un logiciel de flashage sur son ordi et à flasher le BIOS, directement depuis son système, entre un relevé de mail et la visualisation d'un diaporama. Cette méthode présente un énorme défaut et deux limitations. Le défaut est que sa simplicité a pour contrepartie une prise de risque élevé. La première limitation est que cette solution ne fonctionnera pas avec toute carte mère. La seconde est qu'elle n'est pas applicable à la carte mère d'un ordi sur lequel sur lequel vous n'avez pas encore installé de système d'exploitation.

Si votre situation concrète vous permet d'envisager la solution simple, vous devriez vraiment vous demander si l'enjeu en vaut la chandelle. En effet, la règle d'or de toute opération de flashage est de limiter au maximum l'activité du matériel concerné par la flashage. Cette règle vaut pour un modem, un routeur, un baladeur MP3, un lecteur de DVD et, bien évidemment, une carte mère ! Flasher la carte mère de son ordi à partir du système tel qu'on l'utilise au quotidien est une violation flagrante de cette règle d'or. Ce faisant, on accroît considérablement les risques d'échec en cours de flashage. Or, une carte mère dont le flashage s'est très mal déroulé deviendra non seulement inutilisable mais irrécupérable. Dans bien des cas, vous ne pourrez même pas la reflasher[1], vous n'aurez pas droit à une deuxième chance ! Elle sera bonne pour la poubelle[2]...

La conséquence la plus immédiate est que votre ordi devient inutilisable. Quant à vos données, vous devrez vous en remettre à vos sauvegardes[3] pour peu que vous les ayez effectuées sur des supports externes (disques externes, CD, DVD, serveur...). Certes, Il sera toujours possible de démonter les disques internes de votre ordi et de les remonter sur autre ou sur un nouvel ordi. Savez-vous le faire avec suffisamment de précision dans risquer d'effacer tout ou partie du contenu de vos disques ? En avez-vous envie ?

Si la "solution simple" est si dangereuse, on peut se demander à quoi servent les programmes permettant de flasher notre carte mère, directement depuis notre système. La raison tient dans le fait que la "solution simple" propose un utilisation inappropriée de ces programmes. Ces programmes ont été conçu dans l'esprit d'un usage raisonné qui n'est malheureusement pas aussi simple que l'opération "en trois clics" telle que la propose la "solution simple".

2. Flasher le bios d'un système opérationnel

L'usage raisonné s'applique au flashage du BIOS d'une carte mère d'un ordi équipé d'un système opérationnel. En reprenant le contexte d'utilisation (Ubuntu) de la solution simple, nous allons voir comment utiliser correctement le programme de flashage.

L'installation du logiciel de flashage (dans l'exemple, flashrom) ne soulève aucune difficulté particulière. On l'installe comme on a l'habitude d'installer ses logiciels : ligne de commande (apt-get install), synaptic, adept... Dans la foulée, dans un terminal, on lance la commande permettant de s'assurer que ce logiciel prend bien en charge notre carte mère. Les similitudes s'arrêtent là.

Pour procéder au flashage, nous allons devoir redémarrer l'ordinateur et passer en mode de récupération (recovery mode). La documentation de ce mode est bien faite. Plusieurs types de sessions de récupération sont proposées ; il faut choisir root. Dans une logique de réduction des risques, il faut également débrancher tout équipement raccordé à l'ordi (imprimante, disque, réseau...). Si, pour une raison ou une autre, il n'est pas possible de démarrer l'ordinateur dans ces conditions (netboot, système sur disque externe, etc.), il est préférable d'utiliser la méthode universelle présentée plus loin.

Note

Ce sous-mode root du mode récupération a un équivalent dans la plupart des systèmes ou distributions Linux (single user, utilisatrice privilégiée...)

En mode root, on se retrouve dans un cas d'utilisation réduite des ressources de l'ordi et donc de faible sollicitation du système et de la carte mère. On peut alors procéder au flashage proprement dit, en ligne de commande, en suivant les instructions de la solution simple. S'agissant d'une session root, l'utilisatrice n'a pas à précéder ses commande de "sudo".

Cette méthode est moins risquée qu'un flashage au cours d'une session de travail ordinaire, mais elle est encore loin d'offrir le maximum de fiabilité possible. La bonne solution, purement Linux, consisterait à configurer un noyau minimum ne contenant que les composants du système nécessaires au flashage et à les conditionner sur un support bootable[4] sur son ordi (disque, clé USB, CD...). Les personnes passionnées par cette solution devraient facilement trouver sur le Web des explications sur les différentes manières d'y parvenir. Mais comme cette technique resterait tributaire des deux limites mentionnées en introduction, il est préférable de se tourner vers la méthode universelle.

3. Méthode universelle de flashage

Puisqu'il faut mettre ne œuvre une technique de flashage le Bios d'une carte mère, autant en utiliser une que l'on pourra répéter en toutes circonstances :

  • que l'ordi soit ou non équipé d'un système opérationnelle (par exemple, un ordi en cours de d'assemblage ou un ordi déjà assemblé dont on ne sait rien et que l'on compte reconfigurer intégralement),

  • que la carte-mère soit ou pas compatible avec le logiciel générique de flashage,

  • que l'ordi (de type PC) soit équipé d'un système opérationnel que l'on sait ou non utiliser (Linux, BSD, Windows, MacOS...).

Cette méthode se décompose en une suite d'opérations qu'il faudra réaliser pour chaque modèle de carte-mère dont on souhaitera flasher le BIOS :

Pour les quatre première étapes, on utilisera son environnement de travail habituel (graphique, bureau, émulateur, réseau, périphériques...). On travaille à l'aise. Les deux dernières étapes nous obligeront à passer dans un mode travail particulier.

Nous allons commencer par présenter chaque étape, expliquer sa raison d'être et la détailler. Cette présentation sera suivie d'une synthèse pratique indiquant précisément les commandes à taper, sur un système de type Ubuntu Linux, en ligne de commande.

3.1. Récupérer le BIOS et le programme de flashage

Tout flashage du BIOS d'une carte mère débute avec la récupération du BIOS que je l'on veut installer sur la carte. On se le procurera sous la forme d'un fichier, disponible sur un support (disquette, CD-ROM) fourni avec la carte ou téléchargé depuis le site Web du fabricant de la carte mère. Cette dernière solution est à privilégier car elle donne accès aux dernières versions du BIOS et à la documentation la plus à jour.

Sur le même support (CD, disquette, site Web), on se procurera également le programme de flashage adapté à ce BIOS et à cette carte mère[5]. C'est alors que les choses se compliqueraient si la communauté du logiciel libre n'avait pas travaillé pour nous.

Note

Pour simplifier la vie des utilisatrice et éviter les erreurs, les BIOS sont souvent proposé au téléchargement sous la forme d'un archive zip (un fichier .zip) qui le fichier du BIOS et le fichier de programme de flashage.

On constate rapidement que le programme de flashage est un fichier .exe. Autrement dit, c'est un programme qui ne peut fonctionner qu'avec un système compatible MS-DOS. Les systèmes Windows contiennent des utilitaires pour fabriquer de telles disquettes. Si l'on utilise Linux ou un autre système d'exploitation libre, notre principal problème devient : comment fabriquer la fameuse disquette DOS.? Et si notre ordi n'est pas équipé d'un lecteur de disquette, doit-on définitivement renoncer ?

3.2. Récupérer une disquette bootable

On récupère ensuite un fichier qui nous permettra de réaliser une disquette bootable. C'est un fichier particulier qui contient une copie numérique intégrale non seulement du contenu d'une disquette système mais aussi de son organisation. Autrement dit, ce fichier contient les fichiers et le formattage de la disquette si bien qu'on pourrait produire une disquette utilisable sans avoir à la formatter !

Ce fichier est ce que l'on appelle une "image disque". Nous voulons qu'il contienne un système d'exploitation minimum qui permettra de démarrer l'ordinateur et de flasher le BIOS. Dans la section précédente, nous avons vu qu'il fallait que ce système soit compatible MS-DOS. À l'heure actuelle, la meilleure solution est d'utiliser le système d'exploitation libre FreeDOS. On en veut pas un système complet, juste une disquette minimale permettant de booter (démarrer) l'ordi. Le site de fdos.org propose au téléchargement un fichier d'image disque parfaitement adapté à ce que l'on souhaite en faire.

Avertissement

Il ne faut pas ouvrir ce fichier. On se contentera de l'enregistrer où bon nous semble, dans un de nos répertoires de travail, sur le disque.

3.3. Composer la disquette de flashage

Au point où nous en sommes, nous avons collecté tout de dont nous avions besoin : le BIOS, le programme de flashage et le système minimum permettant de démarrer l'ordi. Il nous reste à les réunir. La difficulté apparente vient de ce que ces trois fichiers sont complètement opaque pour nous, utilisatrices de Linux. Le fichier BIOS est un fichier à un format inconnu. Le programme de flashage est un programme MS-DOS. L'image disque de la disquette système qui devra, à terme, tout contenir est illisible telle quelle. On en voit pas comment on pourrait lui ajouter les deux fichiers précédents.

La solution tient dans la "magie" du montage des images disques. Une image disque est un fichier qui va se comporter comme un disque externe :

  • on crée un nouveau répertoire où l'on veut

  • on monte l'image disque sur ce répertoire ; on peut alors visualiser le contenu de l'image disque, comme tout répertoire de notre espace de travail

  • on modifie le contenu du répertoire, par exemple en copiant et en y collant le fichier BIOS et le programme de flashage ; cette opération modifie de contenu du fichier image car le répertoire n'est qu'une représentation de ce fichier

  • on démonte l'image disque

  • le fichier image disque peut alors être dupliqué, expédié en pièce jointe d'un mail ; un aure utilisateur pourra alors le monter sur son ordi et il verra exactement ce qui se trouvait dessus, lors du dernier démontage.

3.4. Fabriquer le support

Nous avons parlé de disquette système mais nous n'avons fait que manipuler des fichiers, en l'occurrence, l'image disque d'une disquette système. Jusqu'ici, notre disquette n'a pas grand chose à voir avec le bout de plastique rectangulaire que l'on peut insérer dans un lecteur de disquettes... Notre disquette est virtuelle. Nous allons devoir fabriquer une "disquette" réelle, à partir de cette disquette virtuelle (l'image disque) qui contient désormais tout ce nous voulions y voir figurer.

Dans ce passage du virtuelle au réel, nous allons pouvoir choisir le type de support physique qui va matérialiser notre "disquette". Nous pourrons opter pour un vraie disquette physique, utilisable sur un ordi muni d'un lecteur de disquettes. Elle ne nous servira à rien si notre ordi, ne dispose pas de lecteur de disquette, comme c'est désormais le cas. Mais nous pouvons aussi décider de matérialiser cette "disquette" sur un CD. C'est un gâchis de place (une disquette contient 1,44 Mo alors qu'un CD en contient 700) mais peu importe. L'avantage est que nous pourrons l'utiliser notre disquette système, devenir CD système, sur tout ordi muni d'un lecteur de CD. De la même manière nous pourrions matérialiser notre "disquette" sur une clé USB (nous n'aborderons pas ce cas concret).

3.5. Redémarrer l'ordi et flasher le BIOS

Une fois notre disquette de démarrage matérialisée, il ne reste plus qu'a démarrer effectivement l'ordi à l'aide du système minimum qu'elle contient. On se retrouvera alors avec un système très rudimentaire, sans interface graphique, ne comprenant que les commandes tapées au clavier. Qui plus est, nous ne connaissons pas ce système ! Heureusement, nous n'aurons qu'une seule commande à taper, en recopiant caractère à caractère, le texte indiqué dans la documentation du fabricant de la carte mère (rubrique flasher le bios).

3.6. Configurer le nouveau BIOS

Une fois l'opération de flashage terminée, il ne reste plus qu'à suivre les indications de la documentation du fabricant. Il s'agira toujours, grosso modo, des mêmes opérations :

  1. éjecter la disquette ou le CD

  2. redémarrer l'ordi et empêcher le démarrage complet pour afficher les écrans de configuration du BIOS (en enfonçant la touche Del, ou F1, ou F2, ou Esc, ou ...).

  3. installer les réglages par défaut et les enregistrer

  4. redémarrer complètement l'ordi, votre système, lancer ses applications favorites, et s'assurer du parfait fonctionnent de l'ensemble ; en particulier vérifier que les dysfonctionnements qui nous ont incités à flasher le BIOS on bien disparu et que de nouveaux ne sont pas apparus

  5. si un réglage plus fin du BIOS est souhaitable ou nécessaire, répéter autant de fois qu'on je juge utile, un cycle : démarrage partiel, réglages, démarrage complet et tests.

Si les réglages par défaut ne suffisent pas, l'étape de configuration peut s'avérer particulièrement fastidieuse. Il n'est même pas certain que l'on retrouve les performances de son ordi, avant l'installation du nouveau BIOS. Ce n'est qu'une raison de plus pour ne pas changer de BIOS comme on met à jour sa version de Firefox, par exemple.

Flasher un BIOS dans de bonnes conditions et le configurer correctement reste une opération complexe. Même en prenant toutes les précautions, le risque d'une perte irrémédiable de la carte mère ne peut être totalement écarté. Une manière de rappeler qu'on ne doit flasher le BIOS de sa carte mère que parce que cela s'avère indispensable.

3.7. Synthèse pratique des commandes et opérations

Nous déroulons ici l'ensemble des commandes qui ont été nécessaires pour flasher un nouveau BIOS sur une carte mère AsRock K7VT2, en utilisant un ordi tournant avec Ubuntu Linux. Cette décision était motivée par le fait qu'il s'agissait d'une carte mère d'occasion qui devait équiper un futur serveur de sauvegarde. Il paraissait donc impératif de s'assurer d'un état parfait du BIOS, avant de lui confier une tâche où la fiabilité est un impératif.

Créer un répertoire de travail :

moi@linux:~$ cd
moi@linux:~$ mkdir k7vt2
moi@linux:~$ cd k7vt2

Télécharger le bios :

moi@linux:~$ wget "http://europe.asrock.com/downloadsite/bios/462/K7VT2(1.30).zip"

Décompresser l'archive zip :

moi@linux:~$ unzip K7VT2\(1.30\).zip
Archive:  K7VT2(1.30).zip
  inflating: K7VT2_1.30
  inflating: ASRFLASH.EXE

on constate que l'archive contient non seulement le fichier du BIOS mais aussi le programme de flashage.

Pour des raisons de configuration de clavier (américain, suisse, français...), renommer ces fichiers en leur donnant des noms insensibles aux claviers les plus courants :

moi@linux:~$ mv K7VT2_1.30 BIOS
moi@linux:~$ mv ASRFLASH.EXE PROG.EXE

Télécharger un fichier image d'une disquette de boot :

moi@linux:~$ wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz

Décompresser l'archive gz pour obtenir un fichier image utilisable :

moi@linux:~$ gunzip FDOEM.144.gz

Créer un répertoire temporaire sur lequel on pourra monter l'image disque :

moi@linux:~$ mkdir /tmp/floppy

Monter l'image (requiert une délégation des droits de super-utilisatrice) :

moi@linux:~$ sudo mount -t vfat -o loop FDOEM.144 /tmp/floppy

on peut enfin voir ce que contient l'image de la disquette bootable...

moi@linux:~$ ls /tmp/floppy
autoexec.bat  command.com  config.sys  kernel.sys  readme  sys.com

Ajouter le fichier du BIOS et le programme de flashage à notre image disquette :

moi@linux:~$ sudo cp BIOS PROG.EXE /tmp/floppy

si aucun message d'erreur n'apparaît, on peut raisonnablement supposer que l'ajout s'est bien passé ; on vérifiera quand même que les fichiers que l'on a ajoutés n'ont pas excédé l'espace disponible sur notre image disquette

moi@linux:~$ df /tmp/floppy
Sys. de fich.           1K-blocs       Occupé Disponible Capacité Monté sur
/dev/loop0                1424       644       780  46% /tmp/floppy

tout va bien, on constate qu'il reste 46% d'espace disponible (1% aurait suffit ).

Démonter l'image disque :

moi@linux:~$ sudo umount /tmp/floppy

Variante Disquette - Pour créer une disquette réelle, insérer une disquette (3,25 pouces HD) dans le lecteur de disquettes de l'ordi. Puis lancer la commande de copie de l'image disquette sur la disquette :

moi@linux:~$ dd if=FDOEM.144 of=/dev/fd0
2880+0 enregistrements lus
2880+0 enregistrements écrits
1474560 octets (1,5 MB) copiés, 84,5213 s, 17,4 kB/s

c'est un peu long (les disquettes c'est lent !) mais tout s'est bien passé puisque le nombre d'enregistrements lus et écrits sont identiques et correspondent exactement à la taille du fichier image. On peut éjecter manuellement la disquette sans se préoccuper de rien.

Variante CD - Pour créer un CD, on convertit l'image disquette en image CD ::

moi@linux:~$ mkisofs -o bootcd.iso -b FDOEM.144 FDOEM.144

puis on utilise son programme de gravure de CD préféré (par exemple, K3b) en mode "graver un image ISO de CD", pour graver le fichier image bootcd.iso.

Note

L'ordi dont on veut flasher le BIOS n'est pas toujours celui qui nous a servi à créer notre disquette/CD de boot. Les instructions suivantes s'appliquent donc à l'ordinateur où se trouve la carte mère dont on veut flasher le BIOS.

Quelque que soit la variante utilisée, on dispose alors d'un support permettant de redémarrer l'ordi dont on veut flasher le BIOS et de procéder au flashage du BIOS :

Note

Certaines cartes mères permettent de choisir le périphérique de démarrage, lors du démarrage de l'ordi (par exemple, en maintenant la touche Échap enfoncée, pendant le démarrage). On insère alors le support retenu (disquette ou CD) et on impose à l'ordi de démarrer à partir du lecteur choisi. Ceci nous conduit directement à l'affichage de l'invite du système.

  • redémarrer l'ordi

  • dès qu'il tente de démarrer, bloquer son démarrage pour passer sous le contrôle du BIOS, en maintenant une touche enfoncée (ici, la touche F2)

  • consulter les écrans du BIOS (dans ce cas, Boot Menu Setup -> Boot device priority) et s'assurer qu'il est configuré de manière à ce l'ordi démarre en priorité à partir du support que l'on a choisi (lecteur du disquette ou lecteur de CD) ; le réglage par défaut des priorités est souvent : disquette, lecteur de CD, disques dur interne, disques externes (USB, clés USB...). Modifier si nécessaire afin que la disquette ou le CD de boot soit prioritaire.

  • insérer le support choisi (disquette ou CD), enregistrer les réglages et redémarrer l'ordi (s'il éjecte le support au redémarrage le réinsérer immédiatement)

  • laisser l'ordi démarrer à partir de notre support, jusqu'à l'affichage de l'invite du système qu'il contient :

Welcome to FreeDOS (http://www.freedos.org)!
A:\>

Taper la commande qui va enfin flasher le BIOS (suivre les indications de la documentation de la carte mère et adaptant aux noms des fichiers renommés) :

A:\>PROG BIOS

Une fois le flashage terminé, redémarrer l'ordi pour passer à la configuration du BIOS :

  • comme indiqué précédemment, bloquer le démarrage du système et afficher les écrans du BIOS

  • recharger les réglages par défaut (ici, Exit Menu -> Load Default Settings)

  • enregistrer les réglages et redémarrer l'ordi

  • revenir au BIOS et s'assurer qu'il détecte bien toute la mémoire installée ainsi que les disques et autres lecteurs internes (se reporter à la documentation de la carte mère)

Ce sont des contrôles minimaux. Le fait que la bonne quantité de mémoire soit détectée ne veut pas dire que la carte mère puisse l'utiliser en situation réelle, ni que la mémoire est en bon état. Idem pour les disques et lecteurs internes. La suite des opération dépendra de la situation concrète dans laquelle on se trouve.

Dans l'exemple, il s'agit d'un ordi qui vient d'être assemblé. Il est dépourvu de tout système et n'a pas été testé. La première opération va être un test de la mémoire. Pour ce faire, forcer l'ordi à redémarrer à partir du CD d'installation d'Ubuntu et choisir l'option "Tester la mémoire".

Pour effectuer des tests plus poussés, il faut se placer en situation réelle d'utilisation et donc installer le système d'exploitation définitif.



[1] La documentation de la carte mère précisera sous quelles conditions un reflashage est possible, s'il l'est.

[2] En pratique ! Parce qu'en théorie, il existe souvent des solutions dont la complexité technico-administrative et/ou le coût sont dissuasifs.

[3] Les hyper-optimistes qui seront tentéEs par la "solution simple" ne font généralement pas de sauvegardes... Pour la même raison ;-)

[4] Contenant un système d'exploitation permettant à l'ordinateur de démarrer sans faire appel à ses disques internes ou externes, au réseau, etc.

[5] Pour une même carte mère il faut parfois utiliser un programme de flashage différent, suivant la version du BIOS que l'on installe ou suivant la version du BIOS déjà présent !