Introduction

Pré requis:

Ce dossier fait référence aux dossiers suivants:

Connaissances:

  • Un logiciel de récupération de pilotes déjà installés peut-être utile.
  • Gestion des noms de fichiers longs en ligne de commande.
A/ Introduction :

Windows XP possède en natif les pilotes de plusieurs centaines de périphériques en tout genre leur permettant d’être opérationnels dès la première utilisation.
Néanmoins, de nouveaux produits sont sortis après Windows XP et certains drivers ont été mis à jour.
Ceci est mis en évidence par les icônes présents Image dans votre gestionnaire de périphériques:


Image


Ce dossier va donc traiter de l’intégration de pilotes de périphériques non pris en charge par Windows au sein du CD d’installation.
La méthode d’installation d’une carte RAID lors du début de l’installation en mode texte sera aussi détaillée, elle pourra être portée sur les configuration SCSI et SATA.

Les exemples seront les suivants:

Carte RAID sous Windows

ForceWare NVidia 53.03 fr WHQL (Cet exemple reste valable avec les versions 56.64 et 56.72 sorties depuis). La méthode reste néanmoins identique pour tous les périphériques.

B/ Modification de l’arborescence OEM:

Nous allons créer un sous-dossier nommé pilotes\ dans le dossier $1\ afin d’y placer tous les pilotes à intégrer lors de l’installation, chaque périphérique aura son propre sous-dossier. Un dossier textmode\ sera créé pour la prise en compte de la carte RAID en mode texte (Pour l'utilisation de la seconde méthode, voir chapitre E):

Image

C/ Récupération des pilotes :

Actuellement, la majorité des pilotes proposés par les constructeurs de matériels sont livrés sous la forme de fichiers exécutables pour éviter les manipulations au sein du gestionnaire de périphériques.

Evidemment, il ne convient pas de garder ce format car la méthode d’intégration nécessite d’avoir les fichiers des pilotes afin qu’il soient exploitables par Windows.

Les fichiers de pilotes ont obligatoirement les extensions .inf et .sys , mais d’autres fichiers peuvent être aussi présents (.hlp, .cat, .cpl, etc.).

Intégrer les pilotes des périphériques

Plusieurs méthodes sont possibles pour récupérer ces fichiers :

1. Le pilote est fourni tel quel sur une disquette ou un CD (cas de la carte RAID):

Image


Leur installation sous Windows par le gestionnaire de périphériques est donc obligatoire (la méthode n’étant pas l’objet du dossier, elle n’est pas détaillée).
La manipulation à effectuer consiste uniquement à copier tous les fichiers dans le dossier de l’arborescence OEM correspondante:

Image


Remarque: Lorsque l'on analyse le fichier principal, SiL680r.inf; on constate qu'il ne fait appel qu'à certains fichiers, les autres ne sont donc pas utiles. Dans le doute, il faut mieux les laisser.

2. Le pilote est fourni dans un exécutable (Cas de la carte graphique):

Image


Intégrer les pilotes des périphériques -2

2.1. Il faut exécuter le fichier afin de récupérer les fichiers utiles et les copier dans le dossier de l’arborescence OEM correspondante:

Image


Accepter le contrat de licence...

Image


Noter le nom du dossier temporaire...

Image


Extraction des fichiers...

Image


... et début de l'installation.

Intégrer les pilotes des périphériques -3

Image


A ce stade de l'installation, tous les fichiers utiles ont été extraits dans le dossier temporaire:

Image

On peut se rendre compte ici qu’il n’y a pas que deux fichiers utiles : en effet, Nvidia propose un installeur (.exe) un assistant de configuration (.exe), un élément du panneau de configuration (.cpl) , des fichiers d’aides dans de multiples langues et d’autres éléments.

Cette méthode de récupération peut être valable pour d’autres pilotes, selon les cas, les fichiers pourront être stockés dans le dossier temporaire de votre profil (l’accès facile à ce dossier se fait en exécutant %TEMP%) :

Image

Intégrer les pilotes des périphériques -fin

2.2. Il est parfois possible d'utiliser un utilitaire tel que Winrar et d’utiliser la décompression pour récupérer les fichiers:

Image

Quelle que soit la méthode utilisée, tous les fichiers sont à placer dans le répertoire correspondant, ici F:\XPMSTUTOGNT\$OEM$\$1\pilotes\gpu.

Remarque: Pour gagner de la place sur le CD (~11Mo), il est possible de ne pas copier les fichiers .dll et .hlp traduits dans les langues autres que votre version de windows.
Ces fichiers se nomment:

  • nvrsLG.dll
  • nvwrsLG.dll
  • nvcpLG.hlp
  • nvwcpLG.hlp
Où "LG" correspond au langage. Il est cependant conseillé de garder la langue anglaise (eng) ainsi que les langues installées pour l'interface graphique (ici fr).

Le fichier nv4_disp.inf doit être également modifié pour ne plus faire référence aux fichiers effacés:
C'est la section [nv_CoInstaller_AddReg] qui contient les lignes à effacer.


3. Le pilote n’est pas exploitable:


Il arrive des cas ou l’exécutable ne passe pas par la phase de décompression ou soit compressé auquel cas il y a impossibilité de récupérer les fichiers. La méthode consiste dans ce cas à installer le pilote sur votre ordinateur et à utiliser un utilitaire de récupération des pilotes:

My Drivers 2.21 ou WinDriver Ghost 2.02 (français): Lien

WinDriversBackup (anglais)

Une fois le(s) pilote(s) installé(s), lancer l’application puis sauvegarder les pilotes voulus: tous les fichiers seront stockés dans un sous-dossier différent:

Ici, la totalité des pilotes non gérés par Windows en natif installés sur une machine et récupérés par Windriver Ghost :

Image


Remarque
: Les fichiers .inf peuvent être de nom différent par rapport à la version originale mais cela n’est pas dérangeant.

On peut conclure ce chapitre en remarquant que chaque pilote doit être décompressé dans un dossier spécifique, si il est impossible de le faire ou bien encore inutile (certains pilotes sont fournis avec un utilitaire d'installation sous Windows), il convient d'utiliser la méthode manuelle.

De plus, certains périphérique notamment les périphériques USB ont une installation en deux temps avec le branchement de l'appareil au cours de l'installation, pour cette raison, il convient de rester prudent sur la méthode décrite dans ce dossier.

Modifications des fichiers de réponses.

D/ Modification des fichiers de réponses de l’installation de Windows:

Lors d’une installation de Windows, le programme va chercher dans le dossier %windir%\inf les fichiers de pilotes. La méthode va consister ici à modifier les fichiers de réponses afin de permettre au programme d'installation d’élargir le champ de ses recherches aux dossiers nouvellement créés contenant les pilotes récupérés.

La politique de Microsoft sera aussi prise en compte afin de ne pas avoir de problèmes si certains pilotes ne sont pas certifiés (non WHQL).
Le fichier clean.bat sera aussi modifié afin de supprimer le dossier \pilotes et son contenu une fois les pilotes installés.


1. Modification des fichiers de réponses unattend.txt, winnt.sif et winnt32.sif:


Afin de faire prendre en compte les pilotes ajoutés, il suffit de rajouter les lignes suivantes dans la section [Unattended]:

DriverSigningPolicy=Ignore
OemPnPDriversPath="pilotes\raid;pilotes\gpu"

Explications:
La commande DriverSigningPolicy=… permet de contrôler la certification des pilotes selon la norme Microsoft WHQL; les valeurs acceptées sont les suivantes:

Ignore: Installe les drivers quelle que soit la certification (installation de versions bêta, …),
Warn: Pose la question si le setup rencontre un pilote non certifié,
Block: Empêche toute installation de pilotes non certifiés.

La commande OemPnPDriversPath=”…” permet au programme d'installation de Windows d’étendre la recherche des pilotes dans les dossiers spécifiés.


Remarques:

- Il faut noter un à un les chemins à partir de $1\ en les séparant par un ;
- La chaîne n’accepte pas un nombre illimité de caractères (attention en cas de nombreux dossiers de pilotes)



2. Modification de clean.bat


La ligne de commande suivante est à rajouter au fichier à la suite de la suppression du dossier pilotes\ copié sur le disque dur :

cmd /c rd /s /q %systemdrive%\pilotes\

Listing de clean.bat:

@echo off
echo Suppression des répertoires temporaires ...
cmd /c rd /s /q %systemdrive%\msapps\
cmd /c rd /s /q %systemdrive%\patchs\
cmd /c rd /s /q %systemdrive%\pilotes\
echo.
echo Terminé.

Note: Les fichiers cmdlines.txt, msapps.bat et patchs.bat n’ont pas besoin d’être modifiés.

Lors d'une installation sous Windows, on obtient donc dans le gestionnaire de périphériques:


Image

Modifications des fichiers de réponses -2

E/ Intégration des drivers en mode texte:

De plus en plus d’utilisateurs possèdent des cartes mères compatibles avec la technologie Serial ATA, SCSI ou RAID ou des cartes PCI gérant ces protocoles. Or, nombre de pilotes supportant ces technologies ne sont pas implémentés lors de l’installation de Windows (technologies plus récentes, diversité des modèles, etc. ). Ceci à pour effet l’impossibilité de pouvoir installer Windows sur le ou les disques durs reliés à ces périphériques:

Dans cette vue, seul le disque dur IDE apparaît (atapi):

Image

Une méthode consiste à appuyer sur la touche "F6" lors du démarrage de l’installation et à insérer la disquette fournie avec la carte, méthode impossible à faire quand on a un portable ou encore en l’absence d’un lecteur de disquette sur la configuration:

Image

Image


Il existe cependant d'autres méthodes pour pouvoir intégrer automatiquement ces pilotes sur le CD de Windows, méthodes trouvant uniquement leur utilité lors de l’installation du système d'exploitation sur ce type de périphérique :

IMPORTANT:

Pour la prise en compte des ports IDE RAID ou SATA intégrés à la carte mère, il convient avant toute chose de modifier les paramètres du BIOS afin de déclarer ces ports "enable".

L’exemple qui suit concerne une carte PCI RAID Silicon Image mais la méthode est valable pour tout autre type ou marque de carte.

Modifications des fichiers de réponses -fin

Méthode de la modification des fichiers de déclaration de Windows :

Nous avons donc les pilotes fournis avec la carte sur une disquette, ou encore dans l'arborescence OEM pour l'installation sous Windows. il est également possible de télécharger la dernière version sur le site Internet du constructeur (veiller à décompresser les fichiers en cas de pilotes fournis zippés):

Image


Cette méthode est basée sur la déclaration des pilotes comme si ils étaient fournis par Microsoft sur le CD original de Windows; il suffit pour cela d'éditer le fichier txtsetup.sif situé dans i386\ .


1/ Modification de \i386\txtsetup.sif

Ce fichier contient entre autres les données permettant à Windows de charger lors de l'installation en mode texte toute une série de pilotes permettant de fournir une base minimum à l'installation de Windows. Se sont pour la grande majorité des pilotes de disques durs, PCMCIA, de contrôleurs SCSI, RAID...
Une modification va permettre d'y intégrer le pilote RAID. Il faut pour cela ouvrir le fichier txtsetup.oem fourni avec le pilote:

Contenu de txtsetup.oem:

; This file installs the 680 Medley ATA RAID driver as part of text mode setup on
; Windows NT, Windows 2000, and Windows XP.

[Disks]
disk1 = "Silicon Image Ultra-133 Medley ATA Raid Driver Installation Disk",\pnp680r.sys,\

[Defaults]
SCSI = PnP680r

[SCSI] ; HwComponent section
PnP680r = "Silicon Image Ultra-133 Medley ATA Raid Controller"

[Files.SCSI.PnP680r]
driver = disk1,pnp680r.sys, PnP680r
inf = disk1,SII680r.inf
;;catalog = disk1, PnP680r.cat

[Config.PnP680r]
value = ProblemDevices, "", REG_SZ, ""

[HardwareIds.SCSI.PnP680r]
id = "PCI\VEN_1095&DEV_0680&SUBSYS_36801095", "PnP680r"

Ce fichier va servir de base aux modifications à faire dans le fichier txtsetup.sif. Voici ce qu'il faut ajouter dans les sections correspondantes (en gras):

Modifications de txtsetup.sif:

; Installation du pilote RAID.

[SourceDisksFiles]
PnP680r.sys = 1,,,,,,4_,4,1,,,1,4
Cette section s'occupe de la copie des fichiers avec différents attributs:
- Nom_du_fichier.extension = : fichier de pilote

- 1 : Spécifie le support du fichier:
1 - Fichier original
100 - Fichier mis à jour ou présent sur disquette ou disque 2...

- ,,,,,, : Reliques des anciennes versions de Windows (6 virgules)

- 4_ : Référence à la section [SourceDisksNames] Cette donnée peut être omise.
Ici: 4_ = %cdname%,%cdtagfile%,,""
Prendre la valeur qui correspond.

- 4 : Code du répertoire Destination:
Cette valeur se réfère à la section [WinntDirectories]
Ici: 4 = system32\drivers (%windir% est implicite)

- 1 : Méthode de copie :
0 - Copie le fichier
1 - Copie le fichier si il existe dans le dossier d’installation
2 - Ne copie pas le fichier si il existe dans le dossier d’installation
3 - Ne copie pas le fichier

- ,,, : Reliques des anciennes versions de Windows (3 virgules) Cette donnée peut être omise si les deux suivantes le sont.

- 1 : New install code Cette donnée peut être omise.

- 4 : ' Cette donnée peut être omise.

[HardwareIdsDatabase]
PCI\VEN_1095&DEV_0680&SUBSYS_36801095 = "PnP680r"
Recopie de la ligne située dans la section [HardwareIds.SCSI.PnP680r].
Modifications:
- Disparition du id =
- Disparition des guillemets après id =
- Remplacement du caractère , en =

[SCSI.load]
PnP680r = PnP680r.sys,4

Cette section fait le lien entre le nom du fichier et les information fournie dans les autres sections. le ,4 n'est pas documenté mais convient sans problème à toutes les configurations.

[SCSI]
PnP680r = "Contrôleur RAID Silicon Image Ultra - ATA133 Medley"
Au nom du fichier correspond une chaîne de texte qui sera affichée dans la partie basse de l'écran lors du chargement du pilote: Dans ce cas, la seule modification est la traduction en Français.

Plusieurs exemples sont fournis dans ce fichier.

Ce sont les modifications pour les cartes suivantes:
- Promise FastTrak
- HighPoint HPT3xx ATA RAID
- HPT374 UDMA/ATA133 RAID
- Intel(R) 82801ER SATA RAID
- Silicon Image Ultra-133 Medley ATA Raid
- Silicon Image SiI 3112 SATALink
- Silicon Image SiI 3112 SATARaid
- Silicon Image SiI 3114 SATALink
- Silicon Image SiI 3114 SATARaid
- Promise SATA150 TX Series (tm)

Note: En éditant les fichiers, on constate que la ligne à apporter à la section [SourceDisksFiles]
Pilote.sys = 1,,,,,,4_,4,1,,,1,4 est identique pour tous les pilotes, elle parait donc appropriée à tous les types de cartes.

Voici donc les modifications apportées dans le fichier i386\txtsetup.sif (à la fin du fichier):

Image


Remarques:
- Les sections sont déjà existantes mais il est possible d'avoir plusieurs occurrences (recommandé pour s'y retrouver facilement et regrouper ses modifications).

- Le caractère";" en début de ligne indique un commentaire et n'est pas pris en compte par l'installeur,
- Les caractères accentués peuvent être utilisés en utilisant un éditeur ASCII (tel que edit.com en fenêtre DOS).

Copies des fichiers.

2/ Copie des fichiers:

Les fichiers de pilotes sont à copier dans l'arborescence $OEM$: C'est déjà fait ici car les pilotes sont déclarés pour Windows (Le chemin est: \$OEM$\$1\pilotes\raid voir section C.1).

Si ce n'est pas le cas, il faut copier tous les fichiers de pilotes dans un sous-dossier de \$OEM$\$1\

Image


3/ Modification de unattend.txt, winnt.sif, winnt32.sif:

[Unattended]
OemPnPDriversPath=”…” doit contenir le chemin des pilotes tel qu'expliqué section D.1.

Les commandes ci dessous doivent également apparaître, (cf. les dossiers précédents):

OemFilesPath="..\$OEM$"
OemPreinstall=Yes

4/ Compression du fichier de pilote:

Le fichier de pilote Pnp680r.sys situé dans l'arborescence OEM doit également être compressé et copié dans le répertoire i386\ :

L'utilitaire MAKECAB.EXE fourni avec Windows permet ces manipulations en une seule commande: Via une invite de commande ou la commande exécuter:

MAKECAB F:\XPMSTUTOGNT\$OEM$\$1\pilotes\raid\PnP680r.sys F:\XPMSTUTOGNT\i386\PnP680r.sy_

Syntaxe:
Makecab \fichier_source \fichier_destination

Pour plus d'informations, entrer makecab à l'invite.

Image

Fin

Une fois le CD gravé, on obtient au démarrage de l'installation de Windows lors de la déclaration des pilotes:

Le chargement du fichier PnP680r.sys...

Image

... Puis la reconnaissance du volume RAID (PnP680r) lors du choix de la partition d'installation (F:):

Image

Méthode de l'intégration des pilotes dans le dossier TEXTMODE\ :

Cette méthode est différente et permet de dissocier les pilotes fournis avec Windows avec d’autres pilotes ajoutés.

Elle comporte les étapes suivantes:

1/ Copie des fichiers dans le dossier TEXTMODE\

2/ Edition de txtsetup.oem, de unattend.txt winnt.sif, winnt32.sif.

Cette méthode est expliquée sur le site de la Base de connaissances Microsoft (article 288344).

Elle n'est pas décrite ici car plus compliquée à mettre en oeuvre et ne présente pas plus d'intérêt que la méthode décrite ci-dessus.



D/ Conclusion, lien utilisés:


Il est maintenant possible de déclarer toute carte non reconnue par Windows lors de l'installation afin de procéder à une installation sur les tous derniers matériels sortis (SATA, RAID). Ceci sans pour autant avoir de lecteur de disquette (ni par appui sur F6).

De plus, le matériel intégré peut être configuré par l'ajout des tous derniers pilotes pour Windows.

Une fois le CD créé (bootable, méthode expliquée dossiers précédents), il comprendra une version de Windows personnalisée:

Compatible avec votre matériel et d'autres encore,
Comprenant tous les correctifs de sécurité,
Comprenant toutes les mises à jour de Microsoft pour les applications.

D'autres intégrations peuvent également être traitées comme les clés de registre, les applications d'autres éditeurs, les déclarations des utilisateurs, et de leurs droits... A suivre.


Liens :


Liste de compatibilité matérielle de Windows XP (français): Lien

MSFN (anglais): Lien et le Forum du même site: Lien

Les différents sites des constructeurs de matériel (Site recenseur): Lien

Les copies d'écran de l'installation en mode texte ont été faites avec le logiciel Microsoft Virtual PC 2004: Lien