Partager via


Exercice 4 : Identifier les problèmes liés aux périphériques USB

Les contrôleurs hôtes USB peuvent être mis hors tension uniquement une fois que tous les appareils qui y sont connectés sont entrés dans un état de faible consommation. Cela signifie que les périphériques USB doivent prendre en charge la suspension sélective sur les appareils de secours modernes pour s’assurer que le SoC peut entrer en mode DRIPS lorsque l’écran est éteint.

Partie 1 : Utiliser un rapport SleepStudy pour identifier les problèmes

  1. Téléchargez le rapport sleepstudy-report_2.html prégénéré ici.

  2. Ouvrez sleepstudy-report_2.html avec votre navigateur favori.

    • Notez que le système peut consommer aussi peu que 120 mW pendant la veille (par exemple, consultez La session de secours 6).

    Capture d’écran montrant des exemples de données de la consommation d’énergie des systèmes, y compris le temps, le mWh, le pourcentage de la batterie et l’état de drainage

  3. Cliquez sur Session 10. Le système consomme 2,83 watts d’énergie pendant 11 minutes et le % DRIPS est de 0.

    Capture d’écran montrant des exemples de données de session de secours connectée 10, notamment l’heure de début, la durée, le changement d’énergie, le taux de modification et le pourcentage de temps d’état d’alimentation

  4. Regardez le tableau Des délinquants principaux .

    1. Contrôleur hôte USB (_SB. PCI0. XHC) est actif pendant 99 % de la durée de la session.

    2. XHC est le contrôleur hôte USB 3.0.

Capture d’écran montrant un exemple de tableau des principaux contrevenants.

Lorsque le contrôleur de bus USB est actif pendant des minutes à la fois dans la veille moderne, cela signifie généralement qu’un périphérique USB attaché au bus n’entre pas en suspension sélective, peut-être parce qu’il ne prend pas en charge la suspension sélective. L’étape logique suivante consiste à déterminer quel périphérique USB reste dans D0 en examinant une trace ETL.

Pour plus d’informations sur la suspension sélective, consultez la rubrique Suspension sélective USB sur MSDN.

Partie 2 : Utiliser une trace ETL pour identifier les problèmes

Afin de poursuivre l’investigation USB, une trace ETL a été capturée sur le même système que celui où le SleepStudy a été généré.

Pour examiner les problèmes USB, vous allez utiliser le graphique et le tableau DState .

  1. Téléchargez la trace USBProblem.etl prégénérée ici.

  2. Ouvrez USBProblem.etl avec WPA.

  3. Faites glisser et déposez le graphique DRIPS dans l’onglet Analyse .

  4. Examinez les raisons de non-gouttes et recherchez le contrôleur hôte USB xHCI en tant que périphérique empêchant le système d’entrer dans drIPS.

    • Vous pouvez voir que l’appareil est actif pour 98 % de la trace (comme indiqué dans la colonne % Heure de la raison ).

      Capture d’écran des exemples de données à l’aide de WPA.

  5. Effectuez un zoom dans la région où le contrôleur hôte USB xHCI est actif.

    1. Sélectionnez l’appareil dans le tableau.

    2. Cliquez avec le bouton droit sur l’intervalle bleu clair dans le graphique, puis sélectionnez Zoom.

    3. L’heure du motif doit maintenant être de 100 %.

    Capture d’écran de WPA avec zoom avant sur la colonne Composant responsable

  6. Recherchez le graphique Device Dstate sous la catégorie Puissance du Explorer Graph.

    Capture d’écran de WPA avec zoom avant sur les graphiques d’alimentation, de fréquence du processeur, d’états d’inactivité du processeur et d’état d’appareil

  7. Faites glisser et déposez le graphique Device Dstate dans l’onglet Analyse .

    • Le graphique DState de l’appareil montre les états D effectifs des appareils au fil du temps. Vous pouvez utiliser les données pour déterminer si un appareil spécifique entre dans l’état D approprié pendant que le système est en veille moderne.

      • Type PoFx : utilisé pour les appareils gérés par Windows Power Management Framework.

      • Type non PoFx : utilisé pour les appareils connectés par USB.

  8. Déplacez la colonne DState vers la droite en regard de la colonne Type . Votre fenêtre d’affichage doit ressembler à ceci :

    Capture d’écran montrant des exemples de données DState.

  9. Développez la catégorie Non-PoFX .

  10. Développez la ligne Dstate avec la valeur 0x0 (état D0 ou actif).

  11. Triez en fonction de la colonne Nom et recherchez les périphériques USB.

    Capture d’écran montrant des exemples de données DState basées sur des périphériques USB.

Les données de la table D-state montrent que, pendant que le système était en veille, un appareil composite USB était toujours à l’état D0 pendant 100 % du temps. L’ID matériel du périphérique composite est USB\VID_0BB4&PID_0BA1\00000015B42EE80F00000000000000. Il s’agit de l’appareil qui empêchait le contrôleur XHCI de s’arrêter.

Si l’appareil est géré par un pilote créé par Microsoft, signalez le problème à Microsoft. Si ce n’est pas le cas, ces informations doivent être communiquées au fournisseur de matériel propriétaire du pilote pour trouver une solution et s’assurer que l’appareil entre en suspension sélective.