Configuration du débogage en mode noyau EEM DE KDNET USB (KDNET-EEM-USB)
Les outils de débogage pour Windows prennent en charge le débogage du noyau sur un câble USB à l’aide du mode d’émulation Ethernet (EEM) Cette rubrique explique comment configurer USB EEM à l’aide de l’utilitaire kdnet.exe.
L’ordinateur qui exécute le débogueur est appelé l’ordinateur hôte, et l’ordinateur en cours de débogage est appelé l’ordinateur cible.
Configuration requise pour l’appareil USB EEM en mode noyau
Ce qui suit est nécessaire :
Sur l’ordinateur cible, un contrôleur Synopsys USB 3.0 connecté à un port USB type C.
Sur l’ordinateur hôte, un port USB 3.0 accessible en externe est requis.
Mise à jour windows 10 octobre 2020 (20H2) ou ultérieure
Le transport KDNET-EEM-USB peut être configuré pour :
- Périphérique de débogage PCI. Ces appareils de débogage sont définis à l’aide de dbgsettings ::busparams=seg.bus.dev.fun.
- Périphériques de débogage de table ACPI-DBG2. Ces appareils de débogage sont définis à l’aide de dbgsettings ::busparams=1|2|3, qui 1|2|3 pointe vers l’entrée de tableau ACPI DBI DBG2-Table contenant la configuration de l’appareil de débogage.
Configuration requise pour les câbles
- Un câble USB 3.0 type C standard pour type A est nécessaire pour connecter le port A de type hôte au port C de type cible.
Fichiers de transport binaires
Les fichiers binaires kd_0C_8086.dll pour x64 et kd_8003_5143.dll pour ARM sont utilisés pour prendre en charge le transport du débogueur KDNET-EEM-USB.
Vérifiez qu’un contrôleur USB pris en charge est disponible sur la cible
Sur l’ordinateur cible, lancez Gestionnaire de périphériques.
Vérifiez que le contrôleur double rôle Synopsys USB 3.0 est répertorié.
Déterminer le port de débogage lorsque plusieurs ports sont disponibles
Une fois que vous avez identifié un port prenant en charge le débogage, l’étape suivante consiste à localiser le connecteur USB physique associé à ce port.
Par exemple, sur le Surface Pro X, utilisez la partie inférieure des deux ports USB C utilisés pour le débogage EEM KDNET.
Utilisez kdnet.exe pour confirmer le support de l’appareil et voir la valeur des busparams.
Appareils Intel / AMD 64
Les options de débogage BCDEDIT sont stockées dans le magasin BCD (Boot Configuration Data). Pour plus d’informations, consultez BCDEdit /debug.
Appareils ARM
Les appareils ARM utilisent la table ACPI DBG2 pour configurer le débogueur, où les busparams pointent vers l’entrée de table DBG2. Pour spécifier le port de débogage qui sera utilisé, busparm est utilisé. En règle générale, seul le premier busparam est utilisé et il est soit 0 ou 1 en fonction de l’appareil. En règle générale, les appareils n’utilisent pas busparams=0, car l’entrée de table DBG2 est normalement réservée pour l’appareil série COM. Pour plus d’informations sur la table ACPI DBG2, consultez la table Debug Port 2 (DBG2) de Microsoft.
Utiliser kdnet.exe pour configurer KDNET EEM USB
Utilisez l’utilitaire kdnet.exe pour afficher les informations de paramètre pour les contrôleurs qui prennent en charge le débogage de transport KDNET-EEM-USB.
Vérifiez que les outils de débogage Windows sont installés sur l’hôte et le système cible. Pour des informations sur le téléchargement et l’installation des outils de débogage, consulter la rubrique Outils de débogage pour Windows.
Recherchez l’utilitaire kdnet.exe. Par défaut, les fichiers se trouvent ici.
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
Sur l’ordinateur cible, ouvrez une fenêtre d’invite de commande en tant qu’administrateur. Saisissez cette commande pour vérifier que l’ordinateur cible dispose d’un adaptateur réseau pris en charge et pour voir la valeur des busparams.
C:\KDNET>kdnet.exe Network debugging is not supported on any of the NICs in this machine. KDNET supports NICs from Intel, Broadcom, Realtek, Atheros, Emulex, Mellanox and Cisco. Network debugging is supported on the following USB controllers: busparams=1, Device-mode USB controller with Vendor ID: 5143 (Default) busparams=2, Device-mode USB controller with Vendor ID: 5143 busparams=3, Device-mode USB controller with Vendor ID: 5143 busparams=4, Device-mode USB controller with Vendor ID: 5143 This Microsoft hypervisor supports using KDNET in guest VMs.
Comme la sortie de kdnet.exe indique qu’un contrôleur USB pris en charge avec une valeur busparams de 1 est disponible, nous pouvons continuer.
Configuration de l'ordinateur cible
Utilisez l’utilitaire kdnet.exe pour configurer les paramètres du débogueur sur le PC cible, en suivant ces étapes.
Important
Avant d’utiliser bcdedit pour modifier les informations de démarrage, vous devrez peut-être suspendre temporairement les fonctionnalités de sécurité de Windows telles que BitLocker et Secure Boot sur le PC de test. Vous pouvez réactiver BitLocker et Secure Boot une fois que vous avez fini d’utiliser BCDEdit pour mettre à jour les informations de démarrage. Gérez correctement le PC de test, lorsque les fonctionnalités de sécurité sont désactivées.
Utilisez la commande ci-dessous pour définir la valeur busparams, l’adresse IP et le port du système hôte et générer une clé de connexion unique. L’adresse IP 169.254.255.255 est utilisée pour toutes les connexions USB EMM.
Choisissez une adresse de port unique pour chaque paire cible/hôte avec laquelle vous travaillez, dans la plage recommandée de 50000 à 50039. 50005 est montré dans l’exemple.
C:\>kdnet.exe 169.254.255.255 50005
Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
Copiez la clé retournée dans un fichier .txt du bloc-notes. Dans l’exemple montré, la clé générée a une valeur de :
2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
Utilisez la commande BCDEdit pour vérifier que les paramètres sont comme prévu. Pour plus d’informations, consultez BCDEdit /dbgsettings
C:\>bcdedit /dbgsettings
busparams 1
key 2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
debugtype NET
hostip 169.254.255.255
port 50005
dhcp No
The operation completed successfully.
Désactivez le pare-feu sur l’hôte
Sur l’hôte, désactivez le pare-feu du débogueur.
Connexion de WinDbg à la cible pour le débogage du noyau
Sur l’ordinateur hôte, ouvrez WinDbg. Dans le menu Fichier, choisissez Débogage du noyau. Dans la boîte de dialogue Débogage du noyau, ouvrez l’onglet Net . Collez le numéro de port et la clé que vous avez enregistrés dans le bloc-notes .txt fichier précédemment. Cliquez sur OK.
Vous pouvez également démarrer une session WinDbg en ouvrant une fenêtre d’invite de commande et en entrant la commande suivante, où est le port que vous avez sélectionné ci-dessus, et est la clé retournée par kdnet.exe ci-dessus. Collez la touche dans laquelle vous avez enregistré dans le bloc-notes .txt fichier précédemment.
windbg -k -d net:port=<YourDebugPort>,key=<YourKey>
Redémarrez l’ordinateur cible
Une fois le débogueur connecté, redémarrez l’ordinateur cible. Une façon de redémarrer le PC consiste à utiliser la shutdown -r -t 0
commande à partir de l’invite de commandes d’un administrateur.
Après le redémarrage de l’ordinateur cible, le débogueur devrait se connecter automatiquement.
Dépannage
Résolution des problèmes de cible
Vérifiez que la carte réseau Windows KDNET-USB-EMM est présente sous cartes réseau dans Windows Gestionnaire de périphériques.
Les propriétés de l’appareil s’affichent lorsque le contrôleur est réservé pour une utilisation par le débogueur du noyau Windows.
Résolution des problèmes liés à l’hôte
Vérifiez que la carte réseau Windows KDNET-USB-EMM est présente sous cartes réseau dans Windows Gestionnaire de périphériques.
Sur l’hôte, la connexion KDNET-EEM à l’aide du port USB Type A est affichée.
Intel PCI - La connexion retente les messages sur les fenêtres de la console du débogueur et ne peut pas entrer dans la cible - SkipPciProbeDebugDevice
Si vous rencontrez le message suivant dans la console du débogueur KDNET, ne peut pas lancer d’arrêt dans la cible ou rencontrer des problèmes avec certaines commandes (par exemple, kdfiles), il peut être dû à KDNET recevant un paquet ping hors séquence.
... Retry sending the same data packet for 128 times.
The transport connection between host kernel debugger and target Windows seems lost.
please try resync with target, recycle the host debugger, or reboot the target Windows.
Ce problème peut se produire, car le pilote pci.sys est incorrectement en cours de détection de l’appareil de débogage. Pour éliminer les erreurs, créez l’entrée de Registre suivante sur l’appareil TARGET à l’invite de commandes administrateur.
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\SERVICES\kdnet /v SkipPciProbeDebugDevice /t REG_DWORD /d 1 /f
Redémarrez ensuite l’ordinateur cible.
shutdown /r /t 0
Une fois l’appareil redémarré, les erreurs doivent disparaître, et les commandes doivent fonctionner comme prévu.
Voir aussi
Configuration automatique du débogage du noyau réseau KDNET
Configuration manuelle du débogage du noyau réseau KDNET
Configuration du débogage en mode noyau USB 3.0 xHCI-DBC (KDUSB)
Configuration du débogage en mode noyau DE KDNET USB (KDNET-USB)