====== Mise à jour du firmware d'un disque dur ======
>**Sujet** : Mise à jour du firmware d'un disque dur d'un ordinateur portable [[http://www.dell.ch|Dell]] sous GNU/Linux
>**Niveau** : Difficile
>**Auteur** : [[utilisateurs:waver]] (2 novembre 2005)
===== Introduction ======
Un problème classique quand on est passé complètement à GNU/Linux c’est la [[http://users.linuxbourg.ch/waver/blog/index.php?2005/10/04/59-mise-a-jour-d-un-bios-pour-dell|mise à jour du bios]] ou d'un autre composant comme le disque dur car souvent cela nécessite d’exécuter des ''.exe'' dans un DOS. Quid quand on est sous GNU/Linux et qu’on n’a plus de partition Windows/DOS ni même de lecteur disquette sur la machine?
La solution que j'ai pu trouver n'est pas tout à fait libre, car j'ai fait appel à un ami sous Windows pour l'extraction du firmware qui est en ''.exe''. Il faut qu'on trouve une image d’un système DOS libre et la graver sur un CD-ROM en y ajoutant les fichiers pour mettre à jour le firmware.
Un petit résumé de ce que fait ce nouveau firmware : (C'est vrai qu'avec cette mise à jour j'ai plus de le bruit clique au niveau du disque dur)
* Titre de la version : IDE / EIDE: Western Digital Scorpio 40GB 5400rpm Mobile HDD, Scorpio 60GB 5400rpm Mobile HDD, Scorpio 80GB 5400rpm Mobile HDD, Firmware, Windows 2000, Windows XP, English, Multi System, v.11.07D11, Rev A1
* Date de la version : 29.08.2005
* Description : Western Digital Firmaware patch corrects an intermittent clicking noise issue on the following models: 40G - X7571 - WD400VE-75HDT0 60G - C8579 - WD600VE-75HDT0 80G - W7962 - WD800VE-75HDT0
===== Procédure =====
- On va télécharger une image de [[http://www.freedos.org/|FreeDos]]; on récupère l’image ''[[http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/old/beta9rc5/fdos1440.img|fdos1440.img]]''. J’ai utilisé une version beta9rc5 qui est maintenant disponible dans les archives. Cette version est différente de la version actuelle (beta9sr1) car elle ne propose plus de charger le driver CD-ROM pour ensuite aller en ligne de commande.
- On va télécharger le firmware chez [[http://www.dell.ch|Dell]]. J'ai téléchargé le fichier ''[[http://ftp.us.dell.com/ide/R107305.EXE|R107305.EXE]]'' et je l'ai envoyé à un ami pour l'extraction puis il m'a renvoyé les fichiers. J'ai crée une archive de ces fichiers et je vous la met à disposition [[http://users.linuxbourg.ch/waver/tmp/Software/R107305.tar.bz2|ici]] son empreinte md5 est : 9b7a7753a817dde2f1df721db30bd37b .
- On crée le lieu de travail et on commence:23:57 waver@Jupiter ~% mkdir /tmp/hdd && cd /tmp/hdd
23:57 waver@Jupiter /tmp/hdd% wget fdos1440.img (http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/old/beta9rc5/fdos1440.img)
23:57 waver@Jupiter /tmp/hdd% wget R107305.tar.bz2 (http://users.linuxbourg.ch/waver/tmp/Software/R107305.tar.bz2)
23:57 waver@Jupiter /tmp/hdd% md5sum R107305.tar.bz2
9b7a7753a817dde2f1df721db30bd37b R107305.tar.bz2
23:57 waver@Jupiter /tmp/hdd% tar xfj R107305.tar.bz2
23:59 waver@Jupiter /tmp/hdd% ls -l
total 3,6M
-rw------- 1 waver waver 8,8K 2005-10-31 00:14 DLGLICE.TXT
-rw-r--r-- 1 waver waver 1,5M 2004-04-20 05:17 fdos1440.img
-rw-r--r-- 1 waver waver 1,1M 2005-10-31 23:48 R107305.tar.bz2
-rw------- 1 waver waver 1,2M 2005-10-31 00:14 wddel023.exe
-rw------- 1 waver waver 601 2005-10-31 00:14 wddel023.txt
0:02 waver@Jupiter /tmp/hdd% mkdir firm
0:02 waver@Jupiter /tmp/hdd% mv DLGLICE.TXT fdos1440.img wddel023.exe wddel023.txt firm
0:02 waver@Jupiter /tmp/hdd% ls -l firm
total 2,6M
-rw------- 1 waver waver 8,8K 2005-10-31 00:14 DLGLICE.TXT
-rw-r--r-- 1 waver waver 1,5M 2004-04-20 05:17 fdos1440.img
-rw------- 1 waver waver 1,2M 2005-10-31 00:14 wddel023.exe
-rw------- 1 waver waver 601 2005-10-31 00:14 wddel023.txt
- Générons une image ''iso9660'' bootable que l’on nommera ''firmhdd.iso'' :0:05 waver@Jupiter /tmp/hdd% mkisofs -o firmhdd.iso -b fdos1440.img ./firm/*
INFO: ISO-8859-1 character encoding detected by locale settings.
Assuming ISO-8859-1 encoded filenames on source filesystem,
use -input-charset to override.
Size of boot image is 2880 sectors -> Emulating a 1440 kB floppy
Total translation table size: 2048
Total rockridge attributes bytes: 0
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 21000
1469 extents written (2 MB)
0:06 waver@Jupiter /tmp/hdd% ls -l
total 4,0M
drwxr-xr-x 2 waver waver 4,0K 2005-11-01 00:02 firm/
-rw-r--r-- 1 waver waver 2,9M 2005-11-01 00:06 firmhdd.iso
-rw-r--r-- 1 waver waver 1,1M 2005-10-31 23:48 R107305.tar.bz2
- Montons l’image pour s’assurer qu’elle soit bien construite et lisible: 0:06 waver@Jupiter /tmp/hdd% sudo mount -o loop,rw firmhdd.iso ~/tmp/iso
0:08 waver@Jupiter /tmp/hdd% ls -l ~/tmp/iso
total 2,6M
-r-xr-xr-x 1 root root 2,0K 2005-11-01 00:06 boot.cat*
-r-xr-xr-x 1 root root 8,8K 2005-10-31 00:14 dlglice.txt*
-r-xr-xr-x 1 root root 1,5M 2004-04-20 05:17 fdos1440.img*
-r-xr-xr-x 1 root root 1,2M 2005-10-31 00:14 wddel023.exe*
-r-xr-xr-x 1 root root 601 2005-10-31 00:14 wddel023.txt*
0:08 waver@Jupiter /tmp/hdd% sudo umount ~/tmp/iso
- Il n’y a plus qu’à graver l’image ''firmhdd.iso'' et booter votre ordinateur portable sur le nouveau disque créé en **laissant votre secteur AC branché** : 0:11 waver@Jupiter /tmp/hdd% /usr/bin/cdrecord.mmap -v gracetime=2 dev=/dev/hdd speed
=48 -dao driveropts=burnfree -eject -overburn -data /tmp/hdd/firmhdd.iso
Une fois que j'ai booté sur le cd j'ai dû répondre au question de cette façon:
* FreeDos (speedup, 386+)
* 1. Boot without XMS, attempt cdrom loading
* 3) I give up. please drop me to the commandline.
- Une fois en ligne de commande, il ne vous reste plus qu'à lancer ''wddel023.exe'' moi j'ai du faire directement: X:\> wddel023 /D1
- Le contenu du fichier ''wddel023.txt'': Syntax:
WDDEL023 [/A][/Dn][/S][/?]
If no command line options are provided, an interactive user interface will display a list of drives and whether a drive update is available. The user can choose which drive(s) to update.
Optional parameters (usage indicates acceptance of the license agreement):
/A Automatically update all attached drives.
/Dn Update drive number .
/S Scan and report attached devices only.
/? This help screen.
===== Liens =====
* http://users.linuxbourg.ch/waver/blog/index.php?2005/10/31/65-mise-a-jour-du-firmware-d-un-hdd-depuis-linux