Configuración de la depuración en modo kernel de EEM de KDNET USB (KDNET-EEM-USB)
Herramientas de depuración para Windows admite la depuración del kernel a través de un cable USB mediante el modo de emulación Ethernet (EEM) En este tema se describe cómo configurar USB EEM mediante la utilidad kdnet.exe.
El equipo que ejecuta el depurador se denomina equipo host y el equipo que se depura se denomina equipo de destino.
Requisitos del dispositivo USB EEM en modo kernel
Se necesita lo siguiente:
En el equipo de destino, un controlador USB 3.0 de Synopsys conectado a un puerto USB de tipo C.
En el equipo host, se requiere un puerto USB 3.0 accesible externamente.
Actualización de octubre de 2020 de Windows 10 (20H2) o posterior
El transporte KDNET-EEM-USB se puede configurar para:
- Dispositivo de depuración PCI. Estos dispositivos de depuración se establecen mediante dbgsettings::busparams=seg.bus.dev.fun.
- Dispositivos de depuración de tabla ACPI-DBG2. Estos dispositivos de depuración se establecen mediante dbgsettings::busparams=1|2|3, que 1|2|3 apunta a la entrada de matriz ACPI DBG2-Table que contiene la configuración del dispositivo de depuración.
Requisitos de cable
- Se requiere un cable USB 3.0 estándar de tipo C a tipo A para conectar el puerto de tipo host A al puerto de tipo C de destino.
Archivos de transporte binarios
Los archivos binarios kd_0C_8086.dll para x64 y kd_8003_5143.dll para ARM se usan para admitir el transporte del depurador KDNET-EEM-USB.
Confirme que hay disponible un controlador USB compatible en el destino
En el equipo de destino, inicie Administrador de dispositivos.
Confirme que aparece el controlador de rol dual USB 3.0 de Synopsys.
Determinar el puerto de depuración cuando hay varios puertos disponibles
Después de identificar un puerto que admita la depuración, el siguiente paso es localizar el conector USB físico asociado a ese puerto.
Por ejemplo, en la Surface Pro X, se usa la parte inferior de los dos puertos USB C para la depuración de KDNET EEM.
Use kdnet.exe para confirmar la compatibilidad del dispositivo y ver el valor de busparams
Dispositivos Intel/AMD 64
Las opciones de depuración bcDEDIT se almacenan en el almacén de datos de configuración de arranque (BCD). Para obtener más información, vea BCDEdit /debug.
ARM dispositivos
Los dispositivos ARM usan la tabla ACPI DBG2 para configurar el depurador, donde los busparams apuntan a la entrada de la tabla DBG2. Para especificar el puerto de depuración que se usará, se usa busparm. Normalmente solo se usa el primer busparam y es 0 o 1 en función del dispositivo. Normalmente, los dispositivos no usan busparams=0, ya que la entrada de tabla de 0 DBG2 normalmente está reservada para el dispositivo serie COM. Para obtener más información sobre la tabla ACPI DBG2, consulte Tabla de puertos de depuración de Microsoft 2 (DBG2).
Uso de kdnet.exe para configurar KDNET EEM USB
Use la utilidad kdnet.exe para mostrar la información de parámetros de los controladores que admiten la depuración de transporte KDNET-EEM-USB.
Confirme que las Herramientas de depuración de Windows están instaladas en el sistema host y de destino. Para obtener información sobre cómo descargar e instalar las herramientas del depurador, consulte Herramientas de depuración para Windows.
Busque la utilidad kdnet.exe. De forma predeterminada, los archivos se encuentran aquí.
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
En el equipo de destino, abra una ventana de símbolo del sistema como administrador. Escriba este comando para comprobar que el equipo de destino tiene un adaptador de red compatible y para ver el valor de 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.
Como la salida de kdnet.exe indica que hay disponible un controlador USB compatible con un valor busparams de 1, podemos continuar.
Configuración del equipo de destino
Use la utilidad kdnet.exe para configurar las opciones del depurador en el equipo de destino siguiendo estos pasos.
Importante
Antes de usar bcdedit para cambiar la información de arranque, es posible que deba suspender temporalmente las características de seguridad de Windows, como BitLocker y Arranque seguro, en el equipo de prueba. Puede volver a habilitar Bit Locker y el arranque seguro una vez que haya terminado de usar BCDEdit para actualizar la información de arranque. Administre correctamente el equipo de prueba cuando las características de seguridad estén deshabilitadas.
Use el comando que se muestra a continuación para establecer el valor de busparams, la dirección IP y el puerto del sistema host y generar una clave de conexión única. La dirección IP 169.254.255.255 se usa para todas las conexiones USB EMM.
Elija una dirección de puerto única para cada par de destino/host con el que trabaje, dentro del intervalo recomendado de 50000-50039. En este ejemplo se muestra 50005.
C:\>kdnet.exe 169.254.255.255 50005
Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
Copie la clave devuelta en un archivo .txt del bloc de notas. En el ejemplo que se muestra, la clave generada tiene un valor de:
2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
Use el comando BCDEdit para comprobar que los parámetros son los esperados. Para obtener más información, vea 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.
Deshabilitación del firewall en el host
En el host, deshabilite el firewall para el depurador.
Conexión de winDbg al destino para la depuración de kernel
En el equipo host, abra WinDbg. En el menú Archivo, elija Depuración de kernel. En el cuadro de diálogo Depuración de kernel, abra la pestaña Net . Pegue el número de puerto y la clave que guardó en en el Bloc de notas .txt archivo anteriormente. Seleccione Aceptar.
También puede iniciar una sesión de WinDbg abriendo una ventana del símbolo del sistema y escribiendo el siguiente comando, donde es el puerto que seleccionó anteriormente y es la clave que devolvió kdnet.exe anterior. Pegue la clave en la que guardó en en el Bloc de notas .txt archivo anteriormente.
windbg -k -d net:port=<YourDebugPort>,key=<YourKey>
Reinicio del equipo de destino
Una vez conectado el depurador, reinicie el equipo de destino. Una manera de reiniciar el equipo es usar el comando desde el shutdown -r -t 0
símbolo del sistema de un administrador.
Una vez reiniciado el equipo de destino, el depurador debe conectarse automáticamente.
Solución de problemas
Solución de problemas de destino
Confirme que el adaptador de red KDNET-USB-EMM de Windows está presente en Adaptadores de red en Windows Administrador de dispositivos.
Las propiedades del dispositivo muestran cuándo el controlador está reservado para que lo use el depurador de kernel de Windows.
Solución de problemas del host
Confirme que el adaptador de red KDNET-USB-EMM de Windows está presente en Adaptadores de red en Windows Administrador de dispositivos.
En el host se muestra la conexión KDNET-EEM mediante el puerto USB Type A.
Intel PCI: los mensajes de reintentos de conexión en las ventanas de la consola del depurador y no se pueden interrumpir en el destino: SkipPciProbeDebugDevice
Si encuentra el siguiente mensaje en la consola del depurador de KDNET, no puede iniciar una interrupción en el destino o experimentar problemas con determinados comandos (por ejemplo, kdfiles), puede deberse a que KDNET recibe un paquete ping fuera de secuencia".
... 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.
Este problema puede ocurrir porque el controlador pci.sys está sondeando incorrectamente el dispositivo de depuración. Para eliminar los errores, cree la siguiente entrada del Registro en el dispositivo TARGET en un símbolo del sistema del administrador.
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\SERVICES\kdnet /v SkipPciProbeDebugDevice /t REG_DWORD /d 1 /f
A continuación, reinicie la máquina de destino.
shutdown /r /t 0
Una vez que el dispositivo se reinicie, los errores deben desaparecer y los comandos deben funcionar según lo previsto.
Consulte también
Configuración automática de la depuración del kernel de red KDNET
Configuración manual de la depuración del kernel de red KDNET
Configuración de la depuración en modo kernel de USB 3.0 xHCI-DBC (KDUSB)
Configuración de la depuración en modo kernel de KDNET USB (KDNET-USB)