Il est séparé en plusieurs chapitres, les premiers ne faisant que présenter l'USB et la « gestion » qu'en fait Windows ainsi que les limitations existantes.

1/ Un peu de vocabulaire

  • Différence USB1/ USB2, FullSpeed / HighSpeed. Qu'est-ce qu'un concentrateur, qu'un port, qu'un contrôleur. De manière succincte.

2/ Les différents windows et l'USB

  • Quelles sont les possibilités de base des versions de Windows concernant l'USB. Quels Services Packs installer.

3/ Windows XP et l'USB

3.1/ USB1 et généralités => Que permet de connaître Windows sur vos périphériques USB.

3.2/ Spécificités de l'USB2 => Qu'est-ce qui change pour Windows entre l'USB1 et l'USB2.

3.3/ Le logiciel Everest (aperçu)

4/ Les fichiers importants pour l'USB

5/ Dépanner les problèmes USB de mon PC

  • Un petit guide pour vous indiquer comment dépanner la majeure partie des problèmes d'USB (en remettant les pilotes à jour)


Ce billet n'est qu'un petit guide et je n'ai pas la prétention de tout connaître et d'être en mesure de tout résoudre.

Un billet plus détaillé sur la résolution des problèmes d'USB sous Windows est lisible .

1/ Un peu de vocabulaire

Tout d'abord, il faut connaître un peu de vocabulaire pour s'y retrouver par la suite :

USB : Universal Serial Bus. Bus Série Universel, cela se réfère au protocole de transfert de données.

USB 1.1 ou FullSpeed : Interface USB fonctionnant avec un taux de transfert maximum de 12Mb/s soit 1.5Mo/s.

USB 2.0 ou HighSpeed : Interface USB fonctionnant avec un taux de transfert maximum de 480Mb/s soit 60Mo/s (rarement atteint).

Concentrateur ou Hub : Il s'agit d'une sorte de multiprise pour les prises USB Ils sont de trois types :

  • Externe auto-alimentés :

Hub auto-alimenté
Ils se branchent sur une prise USB de votre ordinateur et vous permettent de disposer de 2 à 4 prises au lieu d'une. Ils sont à réserver à des périphériques peu gourmands en énergie.

  • Externe avec alimentation :

Hub alimenté
Même utilisation que le précédent mais avec la possibilité d'avoir jusqu'à 7 prises de sortie. Ils disposent d'une alimentation externe et peuvent donc être utilisés avec des périphériques plus gourmands en énergie que les précédents (scanner, imprimante, disque dur externe,... ).

  • Interne :

Ceux-là vous ne les verrez pas, ils sont intégrés à la carte mère de votre ordinateur. Ils sont cachés derrière les prises USB de votre ordinateur. Dans Windows, on les retrouve sous l'appellation Concentrateur racine.

Ports USB : Il s'agit tout simplement des prises USB.

Contrôleurs Hôtes USB : Vous ne les verrez pas non plus, il s'agit des puces qui gèrent la communication entre les ports USB et la carte mère de l'ordinateur.


2/ Les différents Windows et l'USB

Windows 98SE (Second Edition) : Ne supporte pas l'USB de manière native.

Windows Me (Millenium Edition) : Supporte l'USB1 de manière native (pilotes Microsoft) mais peut-on réellement parler d'un système d'exploitation ?

Windows 2000 : Supporte l'USB1 de manière native (pilotes Microsoft). Il faut installer le Service Pack 4 pour apporter le support de l'USB2.

Windows XP : Supporte l'USB1 de manière native (pilotes Microsoft). Il faut installer au minimum le Service Pack 1 pour apporter le support de l'USB2.

Heureusement, les fabricants de contrôleurs USB2 livrent généralement des pilotes pour tout ces systèmes permettant d'utiliser l'USB2 même avec un système ne le gérant pas nativement. Notamment Win 98SE et Win Me.

Par la suite, on ne parlera plus que de Windows XP avec au minimum le Service Pack 1.


3/ Windows XP et l'USB

XP offre la possibilité de connaître plein d'informations sur l'USB de l'ordinateur sur lequel il est installé. Encore faut-il savoir où chercher !

Les outils de base : le Gestionnaire de périphériques et le logiciel Everest.

Accès au Gestionnaire de Périphériques 2 méthodes , 1 résultat

  • La méthode classique (et lente) :

Menu Démarrer > Panneaude Configuration > Système (en mode d'affichage classique) > Onglet Matériel > Bouton Gestionnaire de Périphériques

  • La méthode rapide :

Touche Windows + R, taper devmgmt.msc et valider


3.1/ USB1 et généralités

Ouvrez le Gestionnaire de Périphériques, la fenêtre suivante apparaît : Gestionnaire de Périphériques

En déployant la Catégorie contrôleurs de bus USB, ça donne ça : Gestionnaire de Périphériques

On repère :

  • 2 contrôleurs d'hôte (faisant référence au chipset Sis de la carte mère dans mon cas),
  • 2 concentrateurs racine (encore un truc qui est sur la carte mère)
  • 1 concentrateur générique (il s'agit d'un hub intégré au moniteur dans mon cas, donc alimenté)
  • 1 prise en charge d'impression USB (autrement dit y'a une imprimante de planquée là-derrière)
  • 1 périphérique de stockage de masse USB (il s'agit d'une clé mais cela pourrait être un disque dur)

Pour savoir qui est branché où, il suffit d'aller dans le Menu Affichage et de choisir Périphériques par connexion, voilà le résultat :

Gestionnaire de Périphériques

En développant l'arborescence, on retrouve nos contrôleurs d'hôte, et si on développe ceux-ci, on fait apparaître tout le reste :

Gestionnaire de Périphériques
Là, on voit qu'il y a un scanner branché sur le concentrateur du moniteur (générique), lui-même branché sur un concentrateur racine (qui gère un des 2 ports USB à l'arrière de l'ordi). Sur l'autre concentrateur racine, il y a la fameuse Prise en charge d'impression (une imprimante quoi) qui est branché à l'arrière de l'ordi et un Périphérique de stockage de masse (clé USB) qui est branché sur un des 2 ports de la façade avant.

Le branchement de cette clé sur le 2e port de la façade montre qu'il est géré par le même contrôleur d'hôte que le scanner. Et non pas , comme on aurait pu s'y attendre , les deux ports arrière par un contrôleur et les deux ports avant par l'autre.

Si on fait un clic droit sur un contrôleur hôte, on va pouvoir accéder à ses propriétés :

Propriétés Contrôleur Hôte
Et là, il y a un onglet intéressant, celui nommé Avancé qui va nous indiquer la bande passante utilisée sur ce contrôleur (pas concentrateur, hein).La bande passante permet, en gros ,de savoir si le trou dans lequel on veut faire passer les données est suffisamment gros. Si ce n'est pas le cas, XP va nous le dire.

Propriétés Contrôleur Hôte

Bon, fermons ça, y'a pas grand chose d'autre à en tirer.

Si on effectue un clic droit sur un des concentrateurs racine (j'ai pris le même) et qu'on va voir les Propriétés :

Propriétés Concentrateur Racine

L'onglet Marche/Arrêt va nous indiquer la puissance requise par chaque port ainsi que le nombre de ports supportés par le concentrateur. Dans mon cas 3 ports mais physiquement il n'y en a que 2 présents sur la carte mère. On voit également que la puissance requise pour le Concentrateur générique qui est branché sur un des ports est de 0 mA. C'est normal car il est alimenté donc il ne prend rien sur ce port.

Si on va faire un tour sur l'onglet Gestion de l'alimentation, on voit 2 options pas inutiles. XP peut couper le port pour économiser l'énergie, autant dire qu'il vaut mieux décocher cette case si c'est votre modem USB qui est branché dessus sinon devinez ce qui se passe quand l'ordi se met en veille => il coupe le modem.

Propriétés Concentrateur Racine

Si on va voir les Propriétés de l'autre concentrateur racine, on voit ça :

Propriétés Concentrateur Racine

Toujours 3 ports de repérés alors qu'il n'y en a que 2 physiquement. L'imprimante (qui est arrêtée) ne consomme quasiment rien (2mA) mais la clé USB consomme quand même 200mA. Comme indiqué au-dessus, la puissance disponible par port est au maximum de 500 mA. Un disque dur externe alimenté branché à la place de la clé USB ne consommerait rien comme le concentrateur générique précédent. S'il était auto-alimenté par les ports USB (pas de branchement sur le secteur), il consommerait toute la puissance du port (certains ont même une deuxième prise USB pour plus de puissance).


3.2/ Spécificités de l'USB2

L'architecture des ports USB2 se présente de manière légèrement différente : il y a un contrôleur « chef » et ses copains comme montré sur la capture ci-dessous.

Controleur USB2
Le « chef » c'est celui qui s'appelle Contrôleur Hôte PCI vers USB standard étendu, les autres s'appelant Contrôleur hôte universel Rev 5 ou ultérieur VIA (il ne s'agit plus d 'un chipset Sis mais d'un Via)

Si vous savez quez vous avez des ports USB2 et que Windows vous prévient que vous utilisez un périphérique à haut débit sur un port à bas débit, ne cherchez pas plus loin, le coupable est là. On y reviendra.


3.3/ Le logiciel Everest :

Depuis la version 2.50, la version Home gratuite pour usage personnel n'existe plus mais on trouve encore la version 2.20 sur le Net. Une simple recherche sur Google vous indiquera plusieurs possibilités. Everest est un logiciel de détection de matériel, il permet de connaître le matériel présent sur votre ordinateur sans avoir à le démonter (entre autres).


Il permet d'identifier les périphériques USB branchés sur l'ordinateur dans la Section Ordinateur > Résumé comme ci-dessous :

Everest
On retrouve les Contrôleurs Hôte Sis 7001 ainsi que les périphériques branchés dessus.

Je vous laisse découvrir les possibilités d'Everest, elles sont trop nombreuses pour les mettre ici.

Mais à quoi ça peut servir de savoir tout ça ? Patience, on y arrive.


4/ Les fichiers importants pour l'USB :

Il s'agit des fichiers d'installation des pilotes USB (pas des pilotes en eux-même). Il sont situés dans le répertoire C:\Windows\inf . C'est un répertoire caché donc pour le faire apparaître, il faut réaliser la manip suivante :

Touche windows + E pour lancer l'explorateur Windows

  • > Menu Outils
  • > Options des dossiers
  • > Onglet Affichage
  • > Catégorie Fichiers et dossiers cachés
  • > Cocher la case Afficher les fichiers et dossiers cachés.

Ils se présentent sous la forme de 4 fichiers nommés : usb.inf, usbport.inf, usbprint.inf, usbstor.inf. Si vous n'affichez pas les extensions connues, il s'agit de fichiers de type Informations de configuration.

A quoi ils servent :

  • usbport.inf permet à Windows d'identifier les pilotes à installer pour les contrôleurs hôtes et les concentrateurs racines.
  • usb.inf permet à Windows d'identifier les pilotes à installer pour les concentrateurs génériques et les périphériques composites (par exemple les pack souris/claviers USB).
  • usbstor.inf permet à Windows d'identifier les pilotes à installer pour les périphériques de stockage de masse comme les clés USB et les disques durs externes.
  • usbprint.inf permet à Windows d'identifier les pilotes à installer pour la prise en charge d'impression via le port USB (imprimante USB).

Courage, on se rapproche du but !


5/ Dépanner les problèmes USB de mon PC :

Ca y est on y arrive.

Il existe des causes multiples à de soudains problèmes de reconnaissance des périphériques USB. Les plus courants restent que les pilotes sont mal installés ou ont été corrompus par l'installation d'un périphérique particulier (non, non, je ne pense pas à certaines FAIBox ou à certaines webcams).

Il faut savoir que Windows utilise des pilotes pas forcément optimisés comme ceux fournis par le fabricant du matériel. On parle de pilotes génériques. La plupart du temps, ça suffit pour utiliser le matos correctement mais pas tout le temps.

Les Services Pack intègrent des mises à jour de ces pilotes et des spécificités de certains fabricants. Cela ne suffit pas toujours (notamment pour le matériel récent). Il faut alors installer des pilotes spécifiques. Le plus important étant celui (on devrait dire ceux) du chipset, élément central de la carte mère. Mal installés (voire pas du tout), ils limiteront la bonne détection du matériel par Windows donc veillez à être sûr d'avoir des pilotes du chipset à jour.


Pour savoir comment faire, je vous renvoie au tutoriel de Pascal132 sur TC. Il concerne particulièrement les pilotes audio mais vous pouvez obtenir les pilotes du chipset par la même méthode.


Occupons nous de ces ports USB : Dans le cas très courant où « ça marchait mais ça marche plus ! », suivez ces instructions: Commencez par débrancher le matériel qui pose problème et désinstallez le logiciel éventuellement livré avec votre matériel (imprimante, scanner, etc...).
Windows perdant des fois la boule, on va commencer par lui dire de mettre à jour les pilotes des ports USB en lui indiquant un emplacement précis.

Pour ça : Ouvrez le Gestionnaire de Périphériques : Touche Windows + R, tapez devmgmt.msc et validez. Dans la catégorie Contrôleurs de bus USB, faites un clic droit sur le (ou les) contrôleurs hôte PCI vers USB... et choisissez Mettre à jour le pilote...
MaJ USB Etape 1

Cochez la case pour utilisateurs expérimentés comme ci-dessus puis cliquez sur Suivant.
MaJ USB Etape 2

Demandez à windows de rechercher le meilleur pilote dans l'emplacement C:\windows\inf. Il faut taper ce chemin, le répertoire en question étant caché par défaut (voir p11 pour les afficher). Puis cliquez sur le bouton Suivant
MaJ USB Etape 3
Si la fenêtre suivante apparaît c'est que vos pilotes étaient, à priori, correctement installés. Mais avec Windows, on ne sait jamais.

Si votre matériel était livré avec des pilotes du fabricant (donc théoriquement optimisés), il faut spécifier dans la deuxième boite de dialogue que windows ne doit pas les rechercher mais que vous allez lui dire où ils sont comme ci-dessous : MaJ USB Etape 2bis
Cliquez ensuite sur Suivant.
MaJ USB Etape 3bis
Pour l'exemple je vais mettre à jour les pilotes de mon écran (ça ne sert à rien il marche très bien avec les pilotes de Windows).
Comme on veut absolument que Windows utilise les pilotes fournis par le fabricant, on lui dit qu'on possède un disque fourni en cliquant sur le bouton approprié.
MaJ USB Etape 4bis
Une boite demandant l'emplacement des fichiers apprait, il suffit de cliquer sur Parcourir pour pouvoir choisir le dossier dans lequel sont les pilotes voulus.
MaJ USB Etape 5bis
Vous remarquerez que je vais lui demander d'installer des pilotes pour Windows 2000 alors que j'utilise XP. Windows ne vous montrera que les fichiers Informations de configuration dans cette boite, vous saurez donc facilement s'il existe un tel fichier sur le CD ou la disquette fourni avec le matériel (attention de ne pas vous tromper de version de Windows).
Une fois le fichier sélectionné, cliquez sur Ouvrir. Windows vous ramène à l'écran de choix du pilote. Dans la majorité des cas, il n'indique qu'un seul pilote correspondant à votre matériel (sinon il faut que vous sachiez précisément de quoi vous disposez – Merci Everest). Cliquez alors sur Suivant et Windows va réaliser l'installation du pilote et vous prévenir de sa réussite :
MaJ USB Etape 6bis

Cliquez sur Terminer, c'est fini !

Toujours par sécurité, redémarrez votre ordinateur pour que les changements soient effectifs à coup sûr.

Vous pouvez maintenant réinstaller le logiciel éventuellement livré avec votre périphérique (imprimante, scanner, ...)

Redémarrez l'ordinateur AVANT de brancher votre matériel.

Branchez, ça doit marcher. Croisez les doigts.

Si Windows se montre réfractaire, utilisez la procédure suivante :

Commencez par rechercher le fichier usbport.inf dans C:\Windows\inf. Faites un clic droit dessus et choisissez Installer.

Ça résout rarement les problèmes de suite donc continuez par la manipulation suivante : Ouvrez le gestionnaire de Périphériques : Touche windows + R, tapez devmgmt.msc et validez. Dans la catégorie Contrôleurs de bus USB, faites un clic droit sur le (ou les) contrôleurs hôte PCI vers USB... et choisissez Désinstaller (pas désactiver sinon c'est sûr qu'il n'y aura plus de ports USB).

Normalement Windows les redétecte aussitôt mais par sécurité, il vaut mieux redémarrer l'ordinateur.

Au redémarrage, si le problème est toujours là, continuez en recherchant le fichier usb.inf dans C:\Windows\inf. Faites un clic droit dessus et choisissez Installer.

Si votre problème concerne les clés USB, les lecteurs MP3 ou les disques durs externes, faites également cette manipulation avec le fichier usbstor.inf

S'il s'agit d'un problème de détection d'imprimante, faites cette manipulation avec le fichier usbprint.inf.

Prenez soin de redémarrer à chaque fois pour forcer la redétection de vos périphériques par Windows.