Configurazione del debug in modalità kernel KDNET USB KDNET (KDNET-EEM-USB)
Strumenti di debug per Windows supporta il debug del kernel tramite un cavo USB tramite la modalità EEM (Ethernet Emulation Mode) Questo argomento descrive come configurare USB EEM usando l'utilità kdnet.exe.
Il computer che esegue il debugger viene chiamato computer host e il computer sottoposto a debug viene chiamato computer di destinazione.
Requisiti dei dispositivi USB EEM in modalità kernel
È necessario quanto segue:
Nel computer di destinazione, un controller USB 3.0 Synopsys connesso a una porta USB di tipo C.
Nel computer host è necessaria una porta USB 3.0 accessibile esternamente.
Aggiornamento di Windows 10 di ottobre 2020 (20H2) o versione successiva
Il trasporto KDNET-EEM-USB può essere configurato per:
- Dispositivo di debug PCI. Questi dispositivi di debug vengono impostati usando dbgsettings::busparams=seg.bus.dev.fun.
- Dispositivi di debug delle tabelle ACPI-DBG2. Questi dispositivi di debug vengono impostati usando dbgsettings::busparams=1|2|3, che 1|2|3 punta alla voce specifica della matrice DBG2-Table ACPI contenente la configurazione del dispositivo di debug.
Requisiti dei cavi
- Per connettere il tipo di host A alla porta C di destinazione, è necessario un cavo USB 3.0 tipo C standard.
File di trasporto binario
I file binari kd_0C_8086.dll per x64 e kd_8003_5143.dll per ARM vengono usati per supportare il trasporto del debugger KDNET-EEM-USB.
Verificare che un controller USB supportato sia disponibile nella destinazione
Nel computer di destinazione avviare Gestione dispositivi.
Verificare che sia elencato il controller a doppio ruolo USB 3.0 synopsys.
Determinare la porta di debug quando sono disponibili più porte
Dopo aver identificato una porta che supporta il debug, il passaggio successivo consiste nell'individuare il connettore USB fisico associato a tale porta.
Ad esempio, nella Surface Pro X, usare la parte inferiore delle due porte USB C viene usata per il debug EEM KDNET.
Usare kdnet.exe per confermare il supporto del dispositivo e visualizzare il valore busparams
Dispositivi Intel/AMD 64
Le opzioni di debug BCDEDIT vengono archiviate nell'archivio dei dati di configurazione di avvio . Per altre informazioni, vedere BCDEdit /debug.
Dispositivi ARM
I dispositivi ARM usano la tabella ACPI DBG2 per configurare il debugger, in cui il busparams punta alla voce della tabella DBG2. Per specificare la porta di debug che verrà usata, viene usato busparm. In genere viene usato solo il primo busparam ed è 0 o 1 a seconda del dispositivo. In genere, i dispositivi non usano busparams=0, poiché la voce di tabella 0 DBG2 è normalmente riservata per il dispositivo seriale COM. Per altre informazioni sulla tabella ACPI DBG2, vedere Microsoft Debug Port Table 2 (DBG2).For more information on the ACPI DBG2 table, see Microsoft Debug Port Table 2 (DBG2).
Usare kdnet.exe per configurare KDNET EEM USB
Usare l'utilità kdnet.exe per visualizzare le informazioni sui parametri per i controller che supportano il debug del trasporto KDNET-EEM-USB.
Verificare che gli strumenti di debug di Windows siano installati nel sistema host e di destinazione. Per informazioni sul download e l'installazione degli strumenti del debugger, vedere Strumenti di debug per Windows.
Individuare l'utilità kdnet.exe. Per impostazione predefinita, i file si trovano qui.
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
Nel computer di destinazione aprire una finestra del prompt dei comandi come amministratore. Immettere questo comando per verificare che il computer di destinazione disponga di una scheda di rete supportata e di visualizzare il valore 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.
Come output di kdnet.exe indica che è disponibile un controller USB supportato con un valore busparams pari a 1, è possibile procedere.
Configurazione del computer di destinazione
Usare l'utilità kdnet.exe per configurare le impostazioni del debugger nel PC di destinazione, seguendo questa procedura.
Importante
Prima di usare bcdedit per modificare le informazioni di avvio, potrebbe essere necessario sospendere temporaneamente le funzionalità di sicurezza di Windows, ad esempio BitLocker e Avvio protetto nel PC di test. È possibile riabilitare Bit Locker e Avvio protetto dopo aver completato l'uso di BCDEdit per aggiornare le informazioni di avvio. Gestire in modo appropriato il PC di test quando le funzionalità di sicurezza sono disabilitate.
Usare il comando riportato di seguito per impostare il valore busparams, l'indirizzo IP e la porta del sistema host e generare una chiave di connessione univoca. L'indirizzo IP 169.254.255.255 viene usato per tutte le connessioni USB EMM.
Selezionare un indirizzo di porta univoco per ogni coppia di destinazione/host con cui si lavora, nell'intervallo consigliato da 50000 a 50039. 50005 è illustrato nell'esempio.
C:\>kdnet.exe 169.254.255.255 50005
Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
Copiare il tasto restituito in un blocco note .txt file. Nell'esempio illustrato, la chiave generata ha un valore di:
2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
Usare il comando BCDEdit per verificare che i parametri siano come previsto. Per altre informazioni, vedere 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.
Disabilitare il firewall nell'host
Nell'host disabilitare il firewall per il debugger.
Connessione di WinDbg alla destinazione per il debug del kernel
Nel computer host aprire WinDbg. Scegliere Debug kernel dal menu File. Nella finestra di dialogo Debug kernel aprire la scheda Net . Incollare il numero di porta e la chiave salvati nel Blocco note .txt file in precedenza. Seleziona OK.
È anche possibile avviare una sessione WinDbg aprendo una finestra del prompt dei comandi e immettendo il comando seguente, dove è la porta selezionata in precedenza ed è la chiave restituita da kdnet.exe precedente. Incollare la chiave in in cui è stato salvato nel Blocco note .txt file in precedenza.
windbg -k -d net:port=<YourDebugPort>,key=<YourKey>
Riavviare il computer di destinazione
Una volta connesso il debugger, riavviare il computer di destinazione. Un modo per riavviare il PC consiste nell'usare il shutdown -r -t 0
comando dal prompt dei comandi di un amministratore.
Dopo il riavvio del PC di destinazione, il debugger dovrebbe connettersi automaticamente.
Risoluzione dei problemi
Destinazione risoluzione dei problemi
Verificare che la scheda di rete Windows KDNET-USB-EMM sia presente in Schede di rete in Windows Gestione dispositivi.
Le proprietà del dispositivo vengono visualizzate quando il controller è riservato per l'uso da parte del debugger del kernel Windows.
Risoluzione dei problemi relativi all'host
Verificare che la scheda di rete Windows KDNET-USB-EMM sia presente in Schede di rete in Windows Gestione dispositivi.
Nell'host viene visualizzata la connessione KDNET-EEM usando la porta USB Type A.
Intel PCI : la connessione ripete i messaggi nelle finestre della console del debugger e non può entrare nella destinazione - SkipPciProbeDebugDevice
Se viene visualizzato il messaggio seguente nella console del debugger KDNET, non è possibile avviare un'interruzione nella destinazione o riscontrare problemi con determinati comandi (ad esempio, kdfile), potrebbe essere dovuto alla ricezione di un pacchetto ping out-of-sequence da parte di KDNET".
... 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.
Questo problema può verificarsi perché il driver pci.sys esegue erroneamente il probe del dispositivo di debug. Per eliminare gli errori, creare la voce del Registro di sistema seguente nel dispositivo TARGET al prompt dei comandi dell'amministratore.
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\SERVICES\kdnet /v SkipPciProbeDebugDevice /t REG_DWORD /d 1 /f
Riavviare quindi il computer di destinazione.
shutdown /r /t 0
Dopo il riavvio del dispositivo, gli errori dovrebbero scomparire e i comandi dovrebbero funzionare come previsto.
Vedi anche
Configurazione automatica del debug del kernel di rete KDNET
Configurazione manuale del debug del kernel di rete KDNET
Configurazione del debug in modalità kernel USB 3.0 xHCI-DBC (KDUSB)
Configurazione del debug in modalità kernel USB KDNET (KDNET-USB)