Le royaume de Eric Buist >> Informatique >> Configuration informatique
Me contacter Plan du site
<< Mes premiers pas sous Linux Expérience personnelle de mise à jour d'un BIOS La renaissance de ma quête Linux >>

Expérience personnelle de mise à jour d'un BIOS

Qu'est-ce qu'une mise à jour du BIOS?

BIOS signifie Basic Input/Output System, ie. Système d'entrées/sorties de base. C'est en quelque sorte un petit programme qui démarre chaque fois qu'on allume l'ordinateur et qui s'occupe d'initialiser le matériel, d'effectuer quelques tests de base puis de passer la main au système d'exploitation se trouvant sur le disque dur. Lors de mes premières incursions dans le monde PC, je me demandais bien ce qui se passait dans le cas d'un formatage du disque dur. La machine pouvait-elle démarrer de nouveau après l'opération si elle était effectuée de façon mal contrôlée?

L'existence du BIOS m'a confirméUne mise que la réponse était OUI, car le programme primaire, le BIOS, se trouve non pas sur le disque dur mais dans une mémoire spéciale que l'on nomme ROM pour Read Only Memory. Avec le temps, on s'est aperçu que ce type de mémoire n'était pas tout à fait adéquat, car il fallait changer toute la puce mémoire dans le cas d'une mise à jour. Il devenait alors plus simple et moins coûteux de changer la carte mère tout entière plutôt que de modifier le simple petit programme qu'est le BIOS. Par analogie, c'est comme si vous deviez changer le disque dur pour pouvoir mettre Windows à jour!

La mémoire non volatile en lecture seule a évolué et est passée du ROM ou PROM, une mémoire programmable une seule fois. Puis on en est arrivé à l'EPROM, l'Electrically Programmable Read Only Memory. Cette mémoire était inscriptible une seule fois par un courant électrique, mais il fallait des ultra-violets pour l'effacer, pas très commode pour mettre à jour. Les mises à jour ne seront possibles qu'avec l'arrivée des EEPROM (Electrically Eraseable PROM) et les Flash ROM sur les cartes mères de Pentium.

Une mise à jour du BIOS modifie donc le programme exécuté par la machine au démarrage, ce qui peut entraîner des corrections de bogues mais aussi de sérieux problèmes, comme l'impossibilité de démarrer la machine. Dans le cas d'une erreur de mise à jour du BIOS, la machine peut devenir inutilisable et il peut s'avérer nécessaire, si des dispositifs de secours (BIOS minimal, DualBIOS, ...) ne sont pas prévus sur la carte mère.

On tente une mise à jour du BIOS si on veut corriger un bogue dont on est à peu près certain du lien avec le BIOS ou si on veut profiter d'une nouvelle fonctionnalité technologique, telle le support de disques durs plus gros, par exemple.

Le problème qui me poussa à tenter l'expérience

Le problème consistait en un mystérieux bogue avec le graveur du PIII 500. Toute tentative logicielle s'avérait vaine pour résoudre le problème de façon complète.

Une personne non initiée m'aurait dit que le graveur fonctionnait correctement, mais il faut connaître un peu l'arrière du décor pour comprendre le sacrifice qu'il fallait effectuer pour que cela fonctionne bien. La désactivation du DMA, essentielle pour que le vieux graveur fonctionne correctement, entraîne une plus grande charge de travail au CPU lors de la gravure d'un disque. En effet, c'est le processeur qui doit envoyer de façon programmée chaque octet au graveur. Toutefois, ce problème ne constituait pas vraiment un handicap pour la machine, car le lecteur de CD-ROM pouvait fonctionner en mode DMA.

Toutefois, en raison de ce bogue, je ne pouvais pas installer la gestion d'énergie ACPI de Windows 98. Cette gestion s'avère encore une fois d'une piètre utilité, mais j'ai lu que Windows 2000 en avait besoin pour fonctionner. Si je ne pouvais pas utiliser ACPI sur cette machine, je pensais que je ne pourrais pas lui installer, dans un futur loin pour le moment, Windows 2000, encore moins Windows XP. Il se pouvait également que je ne puisse pas non plus lui installer Windows ME! Ainsi, la machine, après seulement un an, se voyait limitée au niveau du système d'exploitation et ce n'était pas bon signe. Si je ne pouvais pas faire tourner Windows ME, 2000, toute version future de Windows, comme Windows XP, si performante soit-elle (peu probable qu'elle soit performante, mais on peut espérer...) risquait fort d'être inutilisable!

Un bon jour, je tentai de trouver des informations au sujet de la carte mère de la machine et je parvins, en utilisant un petit utilitaire, à extraire le Award BIOS ID qui me donna enfin le fabriquant de la carte: FICA. Je consultai son site dans la section des mises à jour de BIOS au cas où et je trouvai des informations au sujet d'un bogue avec le mode Ultra DMA. La carte mère ne supportait que le Ultra DMA 33, mais si on lui donnait un disque dur Ultra DMA 66, elle détectait mais le gérait mal, provoquant des plantages.

Je me suis dit qu'il pourrait y avoir un lien, ou que le correctif de la prochaine version du BIOS pourrait solutionner le problème, mais pendant bien longtemps, cette information demeurait trop vague pour valoir le coup d'une tentative.

De plus, les dates ne coïncidaient pas avec celle de mon propre BIOS et je craignais ainsi un terrible problème de fonctionnement à la suite de la tentative de mise à jour. Si je commettais une erreur, si je flashais le mauvais BIOS, je ne pouvais pas être à 100% certain de pouvoir «ressusciter» la machine!

La nouvelle version du BIOS, la MI415, ne fonctionnait que sur la carte version PCB 1.4, mais je ne savais pas quelle version j'avais entre les mains et pour l'obtenir, il aurait fallu ouvrir le boîtier de l'ordinateur et lire une petite étiquette sur la carte mère, ce qui me semblait pas mal pénible... L'idée resta toutefois en suspens, continuant à me trotter dans la tête de temps en temps. Parfois, je retournais visiter le site du manufacturier: pas de nouvelles informations.

De la théorie à la pratique

Dimanche soir, le 22 avril 2001, je relisais la partie au sujet du bogue du graveur, au cas où je ne trouverais pas quelques informations à rajouter. Et c'est là que m'est revenue l'idée: il fallait que je tente la mise à jour! Je suis retourné sur le site du manufacturier de la carte mère et j'ai commencé à lire tout ce que je trouvais au sujet de la mise à jour du BIOS. J'ai fini par apprendre que seules les cartes PCB 1.4 supportaient les Pentium III et cela écarta un doute par logique: la machine familiale est un Pentium III. Je lus et relus les procédures de mise à jour, surtout la procédure de récupération d'urgence, la seule façon de remettre sur pied la machine si quelque chose devait mal tourner. Il ne semblait pas y avoir de cavaliers (jumpers) à modifier pour flasher le BIOS ou appliquer la procédure d'urgence, heureusement!

Toutefois, je savais que cette procédure devait se faire à l'aveuglette. Le Boot Block BIOS, un espèce de BIOS minimal de secours, était trop élémentaire pour contenir du code d'initialisation des périphériques PCI et AGP, ce qui exclut la carte graphique. Si on ne veut pas effectuer la procédure d'urgence sans ne rien voir, il faut ouvrir la tour et enficher une vieille carte graphique ISA qui, elle, fonctionnera!

Je sais que j'aurais pu, en cas de problème, effectuer la procédure, mais si une erreur se produisait, je n'aurais pas vu le message et jamais je n'aurais su ce qui n'allait pas! De plus, le Boot Block BIOS se met en marche automatiquement, donc il peut décider que le BIOS flashé est correct et ne rien faire, même si la machine ne démarre pas et que l'écran reste noir!

Il y avait aussi les données Plug-and-Play, CMOS et DMI qui pouvaient devenir invalides suite à la mise à jour! Je craignais de pouvoir démarrer le BIOS, mais que la machine se fige en affichant Verifying DMI Pool Data.... Malgré les lectures précédentes dans des livres traitant du BIOS, ainsi que celles effectuées sur le site du manufacturier de la carte mère, je ne me sentais pas prêt à affronter toute situation problématique. Je craignais que le vendeur de la machine ne me soit lui aussi d'aucun secours, profitant de ce bogue pour me vendre une nouvelle carte mère plutôt que m'aider!

Entre dimanche et lundi après-midi, j'étais très nerveux. À quelques reprises, j'ai pensé renoncer à la mise à jour trop risquée, mais je me disais que l'idée reviendrait et qu'un jour, il me faudrait la tenter. Les premières tentatives de jouer dans les fichiers de configuration tels autoexec.bat et config.sys me rendaient nerveux et c'est normal. Mettre le BIOS à jour constituait seulement une nouvelle étape qu'il fallait franchir.

Lundi, le 23 avril 2001, vers 14h, je commençai le travail de prévention pour limiter l'impact négatif en cas de problème. Je me suis créé deux disquettes systèmes, une qui contenait le BIOS MI415 et son programme de flashage flash73 et une seconde qui contenait MI413 et son programme flash703. Sur chaque disquette, je créai un fichier restore.bat qui appellerait flash73 ou flash703, selon la disquette, de façon à pouvoir effectuer automatiquement et à l'aveuglette la restauration si je devais me retrouver dans la procédure d'urgence.

La disquette du BIOS MI415, par exemple, contenait flash73 mi413.bin /py/sn dans le fichier restore.bat. En cas de problème, la machine devait démarrer sur la disquette système, sans affichage, et je devrais taper restore dès que la diode du lecteur s'éteindrait, taper Enter et prier... Le paramètre /py indiquait au programme d'effectuer la reprogrammation et /sn, de ne pas sauvegarder sur disquette le BIOS en EEPROM avant la reprogramme, BIOS qui ne fonctionnerait pas dans le cas de la procédure d'urgence.

Je me dirigeai ensuite vers la machine familiale, celle qui allait subir la mise à jour, mais je me rendis compte que j'avais oublié d'effectuer les sauvegardes des données sensibles. Si la machine ne démarrait plus après la tentative et que la seule solution restante avait été de faire vérifier l'ordinateur, voire faire changer la carte mère, il aurait fallu que mon portable ou mon Faucon de Fer prennent la relève en attendant que la machine familiale ne revienne.

Les sauvegardes effectuées, je revins à la charge, disquette système en main, je redémarrai la machine avec la disquette puis je tapai la commande fatidique: flash73 mi415.bin. Inutile de mentionner que j'avais chaud! Un écran apparut et on me demandait si je voulais effectuer une sauvegarde de l'ancien BIOS. J'appuyai sur y pour signifier Yes et le programme me demanda dans quel fichier je voulais effectuer la sauvegarde. Je tapai a:\mi413.bin, le nom du BIOS actuel tel que vu au démarrage. Le programme se mit à lire et écrivit le BIOS sur la disquette.

Ensuite, il me demanda si je voulais vraiment reprogrammer le BIOS. Après une brève hésitation, j'appuyai sur y et une barre de progression m'indiqua la progression de l'opération. Au bas de l'écran figurait une avertissement de ne pas éteindre ni redémarrer a machine pendant la procédure.

Le fichier de 256k fut finalement complètement écrit dans l'EEPROM et le programme m'offrait maintenant de redémarrer, je le fis et l'écran devint noir...

Les conséquences de la mise à jour pour le système

Pendant une fraction de seconde, je crus que ça y était, que la machine ne redémarrerait plus. Mais telle ne fut pas ma joie de voir l'écran se rallumer et le système afficher la progression de la vérification de la mémoire! La machine redémarra ensuite sous Windows, comme si de rien n'était. Dans ma joie d'avoir réussi, j'avais oublié de vérifier si la nouvelle version du BIOS était bien MI415, je dus redémarrer pour vérifier: c'était bien le cas.

Tout d'abord, je prévoyais laisser la machine dans cet état, attendant de savoir si tout fonctionnait bien. Plus tard, je réactiverais le transfert DMA et je verrais si cela fonctionnait bien avec le graveur. Ensuite, finalement, la réinstallation de Windows aurait lieu en mode ACPI et on verrait bien si tout fonctionne...

Mais que se passerait-il si, par exemple, le DMA fonctionnait mais pas ACPI? Il me fallait bien savoir si Windows détecterait à présent automatiquement ce mode. Avant la mise à jour, il me fallait taper setup /p j au lieu de setup lors de l'installation de Windows pour qu'il utilise ACPI. Mais qu'en était-il à présent?

Pour le savoir, il suffisait d'appeler la commande Ajout de nouveau matériel du Panneau de Configuration. Windows allait ainsi détecter le BIOS ACPI et m'offrir de l'installer. J'annulerais la procédure avant qu'il ne la commence et je saurais ensuite pour ACPI. Si aucun nouveau matériel n'était détecté, cela signifierait que je pourrais rester en APM aussi longtemps que bon me semblerait, même après réinstallation de Windows.

La détection du matériel se termina enfin et Windows m'offrait d'installer le nouveau matériel, à présent. Je m'attendais, en cliquant sur Terminer, à voir la liste des composantes à installer, mais malheur, il amorça l'installation! Il m'aurait fallu utiliser le bouton Détails puis ensuite annuler, pas le bouton Terminer! Windows me demanda d'insérer le CD pour y lire des fichiers. Au lieu de le faire, j'annulai, ne voulant pas passer tout de suite en mode ACPI! Mais c'était une erreur, il était déjà trop tard pour revenir en arrière.

Windows m'offrit de redémarrer, je dis non et je me mis à vérifier si le matériel était toujours là. Dans le Gestionnaire de Périphériques, il n'y avait plus de cartes réseaux, plus de carte son, carte graphique, et bien des périphériques systèmes avaient disparu! Je tentai à tout hasard une nouvelle détection du matériel, mais elle se solda par un redémarrage spontané de la machine! Au retour de ce reboot imprévisible digne d'un vieux 486 en train de rendre l'âme, l'affichage était en 16 couleurs et Windows me disait que la carte graphique n'était pas bien installée.

Le démarrage était devenu très lent, car le contrôleur Bus Master IDE avait disparu lui aussi! Je tentai une troisième détection du matériel, sans succès: seul le Partage de connexion Internet était détecté comme nouveau «matériel»!

Je tentai une nouvelle fois la détection, cette fois en lui disant que le Partage n'était pas le matériel que je recherchais. Windows recommença sa détection et trouva quelques composantes mais pas toutes! Le contrôleur ne se trouvait toujours pas là et l'ajouter manuellement ne provoquait tout bêtement aucun effet! Les pilotes pour la carte graphique et la carte son seraient à réinstaller et la machine ne détectait pas de port USB! Cela aurait empêché le reconfiguration du scanner! Je commençais à m'énerver un peu, là...

Bref, le système d'exploitation, et peut-être même la machine, était irrécupérables et il fallait tenter la réinstallation de Windows. Je dus formater le C: et tout réinstaller, craignant chaque seconde que même après le travail, il manque toujours des périphériques. Il était maintenant 15h30 et je voulais l'ordinateur en voie de redevenir fonctionnel à 17h, à l'arrivée de mon frère qui voudrait peut-être travailler dessus durant la soirée!

Fort heureusement, la réinstallation fit ressurgir les composantes disparues et je tentai à tout hasard d'activer le transfert DMA pour le graveur. Tout cela fut inutile, car le bogue du graveur persista. Il n'y eut aucune solution qu'attendre la mort subite de ce graveur pour ensuite le remplacer.