Condividi tramite


Configurazione di Kernel-Mode debug tramite USB EEM in un dispositivo Arm tramite KDNET

Gli strumenti di debug per Windows supportano il debug del kernel su un cavo USB usando EEM in un dispositivo Arm. Questo argomento descrive come configurare USB EEM in un dispositivo Arm usando l'utilità kdnet.exe.

Il computer che esegue il debugger viene chiamato computer host e il computer in fase di debug viene chiamato computer di destinazione.

Kernel-Mode requisiti del dispositivo USB EEM Arm

I requisiti sono i seguenti:

  • Nel computer di destinazione un controller USB 3.0 di Synopsys connesso a una porta USB tipo C.

  • Nel computer host è necessaria una porta USB 2.0 o USB 3.0.

  • È necessario un cavo USB 3.0 tipo C standard per digitare A per connettere il tipo host A alla porta C del tipo di destinazione.

  • Windows 10 aggiornamento di ottobre 2020 (20H2) o versioni successive

Verificare che un controller USB supportato sia disponibile nella destinazione

Nel computer di destinazione avviare Gestione dispositivi.

Verificare che sia elencato synopsys USB 3.0 Dual-Role Controller .

Screenshot di Gestione dispositivi che visualizza il nodo USB con Synopsys USB 3.0 Dual-Role Controller evidenziato.

Determinare la porta di debug quando sono disponibili più porte

Dopo aver identificato una porta che supporta il debug, il passaggio successivo consiste nel individuare il connettore USB fisico associato a tale porta.

Nella Surface Pro X usare la parte inferiore delle due porte USB C usate per il debug di KDNET EEM.

Foto del lato di un Surface Pro X con due porte USB-C.

Usare kdnet.exe per confermare il supporto del dispositivo e visualizzare il valore del busparams

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.

I dispositivi Arm usano la tabella DBG2 ACPI per configurare il debugger, in cui i busparams puntano alla voce della tabella DBG2. In genere, i dispositivi non usano busparams=0, poiché la voce della tabella 0 DBG2 è normalmente riservata per il dispositivo seriale COM.

Usare l'utilità kdnet.exe per visualizzare le informazioni sui parametri per i controller che supportano il debug del trasporto KDNET-EEM-USB.

  1. Verificare che gli strumenti di debug di Windows siano installati nel sistema host. Per informazioni sul download e l'installazione degli strumenti del debugger, vedere Debug degli strumenti per Windows.

  2. Individuare i file di kdnet.exe e VerifiedNICList.xml. Per impostazione predefinita, si trovano qui.

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

  3. Nel computer host copiare i due file in una condivisione di rete o un'unità personale, in modo che siano disponibili nel computer di destinazione.

  4. Nel computer di destinazione creare una directory C:\KDNET e copiare i file di kdnet.exe e VerifiedNICList.xml in tale directory.

  5. Nel computer di destinazione aprire una finestra del prompt dei comandi come amministratore. Immettere questo comando per verificare che il computer di destinazione abbia una scheda di rete supportata e per 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.
    
  6. Poiché l'output da 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 sicuro nel PC di test. È possibile riabilitare Bit Locker e Avvio sicuro dopo aver usato BCDEdit per aggiornare le informazioni di avvio. Gestire in modo appropriato il PC di test, quando le funzionalità di sicurezza sono disabilitate.

  1. Usare il comando illustrato 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.

  2. Selezionare un indirizzo di porta univoco per ogni coppia di destinazione/host con cui si lavora, all'interno dell'intervallo consigliato di 50000-50039. 50005 viene visualizzato 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
  1. Copiare la chiave restituita in un blocco note .txt file. Nell'esempio illustrato, la chiave generata ha un valore di:

    2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p

  2. 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 del kernel aprire la scheda Net . Incollare il numero di porta e la chiave salvati nel blocco note .txt file precedente. Selezionare 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 nella chiave 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 deve connettersi automaticamente.

Risoluzione dei problemi di destinazione

Verificare che la scheda di rete WINDOWS KDNET-USB-EMM sia presente in Schede di rete in Windows Gestione dispositivi.

Le proprietà del dispositivo mostrano quando il controller è riservato per l'uso dal debugger del kernel di Windows.

Screenshot di Gestione dispositivi che visualizza il nodo USB con Synopsys USB 3.0 Dual-Role Controller che indica che il controller è riservato.

Risoluzione dei problemi dell'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.

Screenshot di Gestione dispositivi visualizzazione del nodo di rete con una voce della scheda di rete USB-EEM di Windows KDNET.

Vedi anche

Configurazione automatica del debug del kernel di rete KDNET

Configurazione manuale del debug del kernel di rete KDNET

Configurazione manuale del debug Kernel-Mode tramite un cavo USB 3.0

Configurazione manuale del debug Kernel-Mode