Configuración de la depuración en modo kernel a través de un cable USB 3.0

Herramientas de depuración para Windows admite la depuración en modo kernel a través de un cable USB 3.0. En este artículo se describe cómo configurar manualmente la depuración de USB 3.0.

El equipo que ejecuta el depurador se denomina equipo host y el equipo que se está depurando se denomina equipo de destino.

La depuración a través de un cable USB 3.0 requiere el siguiente hardware:

  • Un cable de depuración USB 3.0, que es un cable cruzado A-A que tiene dos enchufes tipo A macho y ninguna conexión Vbus
  • En el equipo host, un controlador host xHCI (USB 3.0)
  • En el equipo de destino, un controlador de host xHCI (USB 3.0) que admite la depuración

Para simplificar la solución de problemas, conecte el cable directamente entre el equipo de destino y host, evitando cualquier concentrador o estaciones de acoplamiento.

Configuración del equipo de destino

  1. En el equipo de destino, inicie la herramienta UsbView . La herramienta UsbView se incluye en Herramientas de depuración para Windows.

  2. En UsbView, busque todos los controladores de host xHCI.

  3. En UsbView, expanda los nodos de los controladores de host xHCI. Busque una indicación de que un puerto en el controlador host admite la depuración.

    [Port1]
    
    Is Port User Connectable:         yes
    Is Port Debug Capable:            yes
    Companion Port Number:            3
    Companion Hub Symbolic Link Name: USB#ROOT_HUB30#5&32bab638&0&0#{...}
    Protocols Supported:
     USB 1.1:                         no
     USB 2.0:                         no
     USB 3.0:                         yes
    
  4. Anote los números de bus, dispositivo y función del controlador xHCI que desea usar para la depuración. UsbView muestra estos números. En el ejemplo siguiente, el número de bus es 48, el número de dispositivo es 0 y el número de función es 0.

    USB xHCI Compliant Host Controller
    ...
    DriverKey: {36fc9e60-c465-11cf-8056-444553540000}\0020
    ...
    Bus.Device.Function (in decimal): 48.0.0
    
  5. Después de identificar un controlador xHCI que admita la depuración, el siguiente paso es localizar el conector USB físico asociado a un puerto en el controlador xHCI. Para encontrar el conector físico, conecte cualquier dispositivo USB 3.0 a cualquier conector USB en el equipo de destino. Actualice UsbView para ver dónde se encuentra el dispositivo. Si UsbView muestra el dispositivo conectado al controlador host xHCI elegido, ha encontrado un conector USB físico que puede usar para la depuración de USB 3.0.

Importante

Antes de usar bcdedit para cambiar la información de arranque, es posible que tenga que suspender temporalmente las características de seguridad de Windows, como BitLocker y arranque seguro en el equipo de prueba. Vuelva a habilitar estas características de seguridad cuando se completen las pruebas y administre correctamente el equipo de prueba cuando se deshabiliten las características de seguridad.

  1. En el equipo de destino, abra una ventana del símbolo del sistema como administrador y escriba estos comandos:

    bcdedit /debug on
    bcdedit /dbgsettings usb targetname:<TargetName>
    

    TargetName es un nombre que se crea para el equipo de destino. Tenga en cuenta que TargetName no tiene que ser el nombre oficial del equipo de destino; puede ser cualquier cadena que cree siempre que cumpla estas restricciones:

    • La cadena no debe contener "depurar" en ningún lugar de TargetName en cualquier combinación de mayúsculas o minúsculas. Por ejemplo, si usa "DeBuG" o "DEBUG" en cualquier parte del nombre de destino, la depuración no funciona correctamente.
    • Los únicos caracteres de la cadena son el guion (-), el carácter de subrayado(_), los dígitos del 0 al 9 y las letras A a Z (mayúsculas o minúsculas).
    • La longitud máxima de la cadena es de 24 caracteres.
  2. En Administrador de dispositivos, busque el controlador USB que quiere usar para la depuración. En Ubicación en la pestaña General , se muestran los números de bus, dispositivo y función. Escriba este comando:

    bcdedit /set "{dbgsettings}" busparams <b.d.f>
    

    B, d y f son los números de bus, dispositivo y función para el controlador de host USB. Los números de bus, dispositivo y función deben estar en formato decimal.

    Ejemplo:

    bcdedit /set "{dbgsettings}" busparams 48.0.0
    
  3. Reinicie el equipo de destino.

Deshabilitación de la administración de energía

En algunos casos, las transiciones de energía pueden interferir con la depuración a través de USB 3.0. Para evitar estos problemas, deshabilite la suspensión selectiva para el controlador de host xHCI y su centro raíz, que está usando para la depuración.

  1. En Administrador de dispositivos, vaya al nodo del controlador de host xHCI. Haga clic con el botón derecho en el nodo y elija Propiedades. Si hay una pestaña Administración de energía , abra la pestaña y desactive la casilla Permitir que el equipo desactive este dispositivo para guardar energía .

  2. En Administrador de dispositivos, vaya al nodo del centro raíz del controlador de host xHCI. Haga clic con el botón derecho en el nodo y elija Propiedades. Si hay una pestaña Administración de energía , abra la pestaña y desactive la casilla Permitir que el equipo desactive este dispositivo para guardar energía .

Cuando termine de usar el controlador de host xHCI para la depuración, vuelva a habilitar la suspensión selectiva para el controlador de host xHCI.

Iniciar una sesión de depuración por primera vez

  1. Conecte un cable de depuración USB 3.0 a los puertos USB 3.0 que ha elegido para la depuración en el host y los equipos de destino.
  2. Determine el valor de bits (32 o 64 bits) de Windows que se ejecuta en el equipo host.
  3. En el equipo host, abra una versión de WinDbg (como administrador) que coincida con el valor de bits de Windows que se ejecuta en el equipo host. Por ejemplo, si el equipo host ejecuta una versión de 64 bits de Windows, abra la versión de 64 bits de WinDbg como administrador.
  4. En el menú Archivo , elija Depuración de kernel. En el cuadro de diálogo Depuración de kernel, abra la pestaña USB . Escriba el nombre de destino que creó al configurar el equipo de destino. Haga clic en OK.

En este momento, el controlador de depuración USB se instala en el equipo host, por lo que es importante que coincida con el bit de WinDbg con el bitness de Windows. Una vez instalado el controlador de depuración USB, puede usar la versión de 32 o 64 bits de WinDbg para sesiones de depuración posteriores.

Iniciar una sesión de depuración

Uso de WinDbg

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 USB . Escriba el nombre de destino que creó al configurar el equipo de destino. Seleccione Aceptar.

También puede iniciar una sesión con WinDbg escribiendo el siguiente comando en una ventana del símbolo del sistema, donde TargetName es el nombre de destino que creó al configurar el equipo de destino:

windbg /k usb:targetname=<TargetName>

Uso de KD

En el equipo host, abra una ventana del símbolo del sistema y escriba el siguiente comando, donde TargetName es el nombre de destino que creó al configurar el equipo de destino:

kd /k usb:targetname=<TargetName>

Reiniciar el 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

Dispositivo USB no reconocido

Si aparece una notificación de Windows en el host con el dispositivo USB de texto no reconocido al insertar el cable de depuración, es posible que se alcance un problema de compatibilidad conocido de USB 3.1 a 3.1. Este problema afecta a las configuraciones de depuración cuando el cable de depuración está conectado a un controlador USB 3.1 en el host y un controlador USB Intel (Ice Lake o Tiger Lake) 3.1 en el destino.

Para obtener más información y listas de modelos de procesador, consulte Ice Lake (microprocesador) y Tiger Lake (microprocesador). Para buscar el modelo de procesador de la máquina de destino, abra la aplicación Configuración y vaya a Sistema y, a continuación, Acerca de. El procesador aparece en Especificaciones del dispositivo.

Para comprobar este problema, abra Administrador de dispositivos y busque Dispositivo de conexión de depuración USB en Controladores universales de bus serie. Si no se encuentra este dispositivo, busque un dispositivo desconocido en Otros dispositivos. Haga clic con el botón derecho en el dispositivo para abrir su página de propiedades. El cuadro de texto estado del dispositivo tendrá el texto Windows ha detenido este dispositivo porque ha notificado problemas (código 43) y el dispositivo USB devolvió un descriptor DE BOS USB no válido.

Para solucionar este problema, ejecute estos comandos desde un símbolo del sistema del administrador para realizar cambios en el registro:

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\349500E00000 /v SkipBOSDescriptorQuery /t REG_DWORD /d 1 /f
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\045E06560000 /v SkipBOSDescriptorQuery /t REG_DWORD /d 1 /f

A continuación, quite y vuelva a insertar el cable de depuración.

Consulte también

Configuración manual de la depuración en modo kernel