La liste | L'agenda | L'association | Plan du site | Espace privé
Accueil | Actions | Association | Liens | Technique
Accueil > Technique

Flasher un bios de portable sous Linux

Comment flasher son bios sans lecteur de disquette ni système Windows installé sur votre machine ? (mais avec les mains quand même)
mardi 31 juillet 2007 par Etilem
Je me suis retrouvé il y a quelques jours à vouloir faire une mise à jour du bios de mon portable, deux écueils se sont alors présentés : je n’avais pas de lecteur de disquette et ma bécane est entièrement sous Linux, sachant que le programme de flashage fourni par le constructeur est un exécutable Windows.

Sommaire Exemple proposé

Dans mon cas, j’ai opéré sur un Acer Aspire 9300, j’ai fais la mise à jour du bios vers la version 1.17 à l’aide d’un cdrom ’bootable’.

Sommaire Ingrédients

- le firmware et le programme de flashage.
- un noyau Linux compilé avec la possibilité de monter une image de disquette ou de cdrom (mount -o loop).
- une image de disquette de secours pour Windows ME, d’autres sont dispos sur le site bootdisk.com.
- le programme mkisofs ainsi que de quoi graver un cd.

Sommaire Préparation

Il faut tout d’abord créer un répertoire "bac à sable" et se déplacer dedans :

On va ensuite télécharger les deux archives avec ’wget’ et les décomprimer avec ’unzip’ :

On créé enfin deux répertoires qui serviront respectivement à monter notre image de disquette et à établir le contenu du cdrom :

Sommaire Bistouri siouplait

C’est maintenant qu’il ne faut pas se rater...

Je commence par monter le fichier WINME.IMG (l’image de disquette) dans le répertoire ’disk’ en indiquant un système de fichier FAT32 :

Je fais un peu le ménage dans cette image de disquette, vu que le firmware du bios que l’on va placer tout à l’heure fait allègrement ses 1Mo.

En fait, on ne garde que les fichiers ’command.com’, ’io.sys’ et ’msdos.sys’ et on recréé deux fichiers vides ’autoexec.bat’ et ’config.sys’ :

On en arrive au plus difficile : repérer comment le programme de flashage va s’occuper de mon bios et intégrer tout ça dans ma disquette virtuelle.

Je décomprime le zip qui contient mon firmware :

Et je jette un oeil à l’unique fichier batch (extension .bat) qui serait, selon mon intime conviction, en charge de lancer l’opération de flashage :


@echo off

set NVROM=MAM117.wph

cls
if (%OS%)==(Windows_NT) goto WindowsMode

:DOSMode
echo ***************** Myall_M BIOS Flash Utility *****************
REM ***************************************************************
REM *** Just modify the above part ********************************
echo Notice:
echo 1. This procedure may replace your BIOS!
echo    If you don't want to do it, press Ctrl-C to cancel.
echo 2. Make sure you plug in the AC adapter before flashing BIOS.
echo    If not, DO NOT flash!
echo 3. This utility will check if the battery capacity is over 30%%.
echo    If not, it will stop to flash the BIOS.
pause


ACERACDC
if errorlevel 255 goto MyallM
goto end

:MyallM
phlash16 /x /s /mode=3 /BBL %NVROM%
goto end

:end

cd ..

Qu’est-ce que nous avons là ?

- une variable NVROM à laquelle on affecte un nom de fichier => le firmware très certainement,

- une série d’echo qui affichent un avertissement avant de mettre en pause le programme => à conserver, on est pas des brutes,

- une ligne de commande commençant par ’phlash16’ utilisant la variable de tout à l’heure => c’est le lancement du flashage.

Bon, et bien allons-y, on copie d’abord le firmware et le programme de phlashage ;) dans la disquette virtuelle :

Et voici ce que je vais placer dans le fichier ’autoexec.bat’, qui je vous le rappelle est démarré au lancement de toute disquette de secours pour Winblow :

Enfin, on démonte la disquette virtuelle :

Notre disquette est fin prête pour être gravée sur le cdrom, pour rappel, elle réside dans le fichier ’WINME.IMG’.

Sommaire Burn baby, burn !!!

Tout d’abord, on copie notre disquette virtuelle dans le cdrom virtuel :

Puis, on créé une image de cdrom, en indiquant qu’il s’agit d’un cdrom bootable :

Et Voilà !

Y a plus qu’à graver l’image ’acer_bios_1.17.iso’ sur un cd vierge et à redémarrer le PC avec ce même cd dans son lecteur !



Forum

No Software Patents
Site réalisé avec SPIP
Ce site est hébergé par Ouvaton
Libérez-vous
Utilisez Firefox!
Utilisez Thunderbird