Einrichten Kernel-Mode Debuggen über USB EEM auf einem Arm-Gerät mithilfe von KDNET

Debugtools für Windows unterstützen das Kerneldebuggen über ein USB-Kabel mithilfe von EEM auf einem Arm-Gerät. In diesem Thema wird beschrieben, wie Sie USB EEM mit dem Hilfsprogramm kdnet.exe auf einem Arm-Gerät einrichten.

Der Computer, auf dem der Debugger ausgeführt wird, wird als Hostcomputer und der zu debuggende Computer als Zielcomputer bezeichnet.

Kernel-Mode USB EEM Arm-Geräteanforderungen

Folgendes ist erforderlich:

  • Auf dem Zielcomputer ist ein Synopsys USB 3.0-Controller an einen USB-Typ-C-Anschluss angeschlossen.

  • Auf dem Hostcomputer ist ein USB 2.0- oder USB 3.0-Anschluss erforderlich.

  • Ein Standard-USB 3.0-Kabel vom Typ C zu Typ A ist erforderlich, um den Hosttyp A-Port mit dem Zielport vom Typ C zu verbinden.

  • Windows 10 Update oktober 2020 (20H2) oder höher

Vergewissern Sie sich, dass ein unterstützter USB-Controller auf dem Ziel verfügbar ist.

Starten Sie auf dem Zielcomputer Geräte-Manager.

Vergewissern Sie sich, dass der Synopsys USB 3.0 Dual-Role Controller aufgeführt ist.

Screenshot: Geräte-Manager, der den USB-Knoten mit hervorgehobenem Synopsys USB 3.0 Dual-Role Controller anzeigt.

Ermitteln des Debugports, wenn mehrere Ports verfügbar sind

Nachdem Sie einen Port identifiziert haben, der das Debuggen unterstützt, besteht der nächste Schritt darin, den physischen USB-Anschluss zu suchen, der diesem Port zugeordnet ist.

Verwenden Sie auf der Surface Pro X den unteren der beiden USB-C-Ports, die zum Debuggen von KDNET EEM verwendet wird.

Foto der Seite eines Surface Pro X mit zwei USB-C-Anschlüssen.

Verwenden Sie kdnet.exe, um die Geräteunterstützung zu bestätigen und den Busparams-Wert anzuzeigen.

Um den verwendeten Debugport anzugeben, wird busparm verwendet. In der Regel wird nur die erste Busparam verwendet, und je nach Gerät ist es entweder 0 oder 1.

Arm-Geräte verwenden die ACPI DBG2-Tabelle zum Konfigurieren des Debuggers, wobei die busparams auf den DBG2-Tabelleneintrag verweist. In der Regel verwenden Geräte nicht busparams=0, da der DBG2-Tabelleneintrag 0 normalerweise für die COM des seriellen Geräts reserviert ist.

Verwenden Sie das Hilfsprogramm kdnet.exe, um die Parameterinformationen für Controller anzuzeigen, die das Debuggen von KDNET-EEM-USB-Transporten unterstützen.

  1. Vergewissern Sie sich, dass die Windows-Debugtools auf dem Hostsystem installiert sind. Informationen zum Herunterladen und Installieren der Debuggertools finden Sie unter Debugtools für Windows.

  2. Suchen Sie die kdnet.exe und VerifiedNICList.xml Dateien. Standardmäßig befinden sie sich hier.

    C:\Program Files (x86)\Windows Kits\10\Debuggers\x64

  3. Kopieren Sie auf dem Hostcomputer die beiden Dateien auf eine Netzwerkfreigabe oder einen Stick, damit sie auf dem Zielcomputer verfügbar sind.

  4. Erstellen Sie auf dem Zielcomputer ein C:\KDNET-Verzeichnis, und kopieren Sie die kdnet.exe und VerifiedNICList.xml Dateien in dieses Verzeichnis.

  5. Öffnen Sie auf dem Zielcomputer ein Eingabeaufforderungsfenster als Administrator. Geben Sie diesen Befehl ein, um zu überprüfen, ob der Zielcomputer über einen unterstützten Netzwerkadapter verfügt, und um den busparams-Wert anzuzeigen.

    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.
    
  6. Da die Ausgabe von kdnet.exe angibt, dass ein unterstützter USB-Controller mit dem busparams-Wert 1 verfügbar ist, können wir fortfahren.

Einrichten des Zielcomputers

Verwenden Sie das Hilfsprogramm kdnet.exe, um die Debuggereinstellungen auf dem Ziel-PC zu konfigurieren, indem Sie die folgenden Schritte ausführen.

Wichtig

Bevor Sie bcdedit zum Ändern der Startinformationen verwenden, müssen Sie windows-Sicherheitsfeatures wie BitLocker und Sicherer Start auf dem Test-PC möglicherweise vorübergehend anhalten. Sie können Bit Locker und sicherer Start erneut aktivieren, sobald Sie bcdEdit zum Aktualisieren der Startinformationen verwendet haben. Verwalten Sie den Test-PC entsprechend, wenn die Sicherheitsfeatures deaktiviert sind.

  1. Verwenden Sie den unten gezeigten Befehl, um den Busparams-Wert, die IP-Adresse und den Port des Hostsystems festzulegen und einen eindeutigen Verbindungsschlüssel zu generieren. Die IP-Adresse 169.254.255.255 wird für alle USB EMM-Verbindungen verwendet.

  2. Wählen Sie eine eindeutige Portadresse für jedes Ziel-/Hostpaar aus, mit dem Sie arbeiten, innerhalb des empfohlenen Bereichs von 50000 bis 50039. 50005 wird im Beispiel gezeigt.


   C:\>kdnet.exe 169.254.255.255 50005

   Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
   Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
  1. Kopieren Sie den zurückgegebenen Schlüssel in einen Editor .txt Datei. Im gezeigten Beispiel weist der generierte Schlüssel den Folgenden Wert auf:

    2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p

  2. Verwenden Sie den BCDEdit-Befehl, um zu überprüfen, ob die Parameter erwartungsgemäß sind. Weitere Informationen finden Sie unter 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.

Deaktivieren der Firewall auf dem Host

Deaktivieren Sie auf dem Host die Firewall für den Debugger.

Verbinden von WinDbg mit dem Ziel zum Kerneldebuggen

Öffnen Sie winDbg auf dem Hostcomputer. Wählen Sie im Menü Datei die Option Kerneldebuggen aus. Öffnen Sie im Dialogfeld Kerneldebuggen die Registerkarte Netz . Fügen Sie die Portnummer und den Schlüssel ein, die Sie zuvor im Editor .txt Datei gespeichert haben. Klicken Sie auf OK.

Sie können eine WinDbg-Sitzung auch starten, indem Sie ein Eingabeaufforderungsfenster öffnen und den folgenden Befehl eingeben. Dabei ist der port, den Sie oben ausgewählt haben, und der Schlüssel, der von kdnet.exe oben zurückgegeben wurde. Fügen Sie den Schlüssel ein, in dem Sie zuvor im Editor .txt Datei gespeichert haben.

windbg -k -d net:port=<YourDebugPort>,key=<YourKey>

Neustarten des Zielcomputers

Sobald der Debugger verbunden ist, starten Sie den Zielcomputer neu. Eine Möglichkeit, den PC neu zu starten, besteht darin, den shutdown -r -t 0 Befehl von der Eingabeaufforderung eines Administrators zu verwenden.

Nach dem Neustart des Ziel-PCs sollte der Debugger automatisch eine Verbindung herstellen.

Problembehandlungsziel

Vergewissern Sie sich, dass der Windows KDNET-USB-EMM-Netzwerkadapter unter Netzwerkadapter in Windows Geräte-Manager vorhanden ist.

Die Geräteeigenschaften werden angezeigt, wenn der Controller für die Verwendung durch den Windows-Kerneldebugger reserviert ist.

Screenshot: Geräte-Manager mit dem USB-Knoten mit Synopsys USB 3.0 Dual-Role Controller, der angibt, dass der Controller reserviert ist.

Problembehandlung beim Host

Vergewissern Sie sich, dass der Windows KDNET-USB-EMM-Netzwerkadapter unter Netzwerkadapter in Windows Geräte-Manager vorhanden ist.

Auf dem Host wird die KDNET-EEM-Verbindung über den USB-Typ-A-Anschluss angezeigt.

Screenshot: Geräte-Manager, der den Netzwerkknoten mit einem Windows KDNET USB-EEM-Netzwerkadaptereintrag anzeigt.

Weitere Informationen

Automatisches Einrichten des Debuggens des KDNET-Netzwerkkernels

Manuelles Debuggen des KDNET-Netzwerkkerns einrichten

Manuelles Debugging im Kernel-Modus über ein USB 3.0-Kabel einrichten

Manuelles Einrichten Kernel-Mode Debuggens