Compartir a través de


Configurar Kernel-Mode depuración a través de un cable USB 2.0 manualmente

Herramientas de depuración para Windows admite la depuración del kernel a través de un cable USB 2.0. En este tema se describe cómo configurar manualmente la depuración de USB 2.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 2.0 requiere el siguiente hardware:

  • Un cable de depuración USB 2.0. Este cable no es un cable USB 2.0 estándar porque tiene un componente de hardware adicional que lo hace compatible con la especificación funcional del dispositivo de depuración USB2. Puede encontrar estos cables con una búsqueda de Internet para el término cable de depuración USB 2.0.

  • En el equipo host, un controlador de host EHCI (USB 2.0)

  • En el equipo de destino, un controlador de host EHCI (USB 2.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 los concentradores o estaciones de acoplamiento.

Configurar el 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 host compatibles con la especificación EHCI. Por ejemplo, podría buscar controladores que aparecen como Mejorados.

  3. En UsbView, expanda los nodos de los controladores de host ehci. Busque una indicación de que un controlador de host admite la depuración y busque el número del puerto de depuración. Por ejemplo, UsbView muestra esta salida para un controlador de host EHCI que admite la depuración en el puerto 1.

    Xxx xxx xxx USB2 Enhanced Host Controller - 293A
    ...
    Debug Port Number:  1
    Bus.Device.Function (in decimal): 0.29.7
    

    Nota Muchos controladores de host de EHCI admiten la depuración en el puerto 1, pero algunos controladores de host de EHCI admiten la depuración en el puerto 2.

  4. Anote los números de bus, dispositivo y función del controlador EHCI que desea usar para la depuración. UsbView muestra este número. En el ejemplo anterior, el número de bus es 0, el número de dispositivo es 29 y el número de función es 7.

  5. Después de haber identificado el controlador EHCI y el número de puerto que admite la depuración, el siguiente paso es buscar el conector USB físico asociado al número de puerto correcto. Para encontrar el conector físico, conecte cualquier dispositivo USB 2.0 a cualquier conector USB del equipo de destino. Actualice UsbView para ver dónde se encuentra el dispositivo. Si UsbView muestra el dispositivo conectado al controlador de host ehci y el puerto que identificó como puerto de depuración, ha encontrado un conector USB físico que puede usar para la depuración. Podría ser que no haya ningún conector USB físico externo asociado a un puerto de depuración en un controlador EHCI. En ese caso, puede buscar un conector USB físico dentro del equipo. Realice los mismos pasos para determinar si el conector USB interno es adecuado para la depuración del kernel. Si no encuentra un conector USB físico (externo o interno) asociado a un puerto de depuración, no puede usar el equipo como destino para la depuración a través de un cable USB 2.0.

    Nota Consulte esta observación para obtener una excepción.

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. Puede volver a habilitar el arranque seguro una vez que haya terminado de depurar y haya deshabilitado la depuración del kernel.

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

    • bcdedit /debug en
    • bcdedit /dbgsettings usb targetname:TargetName

    donde 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 y cuando 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 funcionará correctamente.
    • Los únicos caracteres de la cadena son el guión (-), 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 desea 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}" busparamsb.d.f

donde b, d y f son los números de bus, dispositivo y función del controlador host. Los números de bus, dispositivo y función deben estar en formato decimal (por ejemplo, busparams 0.29.7).

  1. Reinicie el equipo de destino.

Configuración del equipo host

  1. Compruebe que el equipo host no está configurado para ser el destino de la depuración USB. (Si es necesario, abra una ventana del símbolo del sistema como administrador, escriba bcdedit /debug off y reinicie).
  2. En el equipo host, use UsbView para buscar los puertos y controladores de host ehci que admiten la depuración. Si es posible, conecte un extremo del cable de depuración USB 2.0 a un puerto EHCI (en el equipo host) que no admite la depuración. De lo contrario, conecte el cable a cualquier puerto EHCI del equipo host.
  3. Conecte el otro extremo del cable de depuración USB 2.0 al conector que identificó anteriormente en el equipo de destino.

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

  1. Determine el valor de bits (32 o 64 bits) de Windows que se ejecuta en el equipo host.
  2. 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.
  3. 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. Este es el motivo por el que es importante hacer coincidir el valor de bits de WinDbg con el valor de bits de Windows. Una vez instalado el controlador de depuración USB, puede usar la versión de 32 o 64 bits de WinDbg para las sesiones de depuración posteriores.

Nota El cable de depuración USB 2.0 es realmente dos cables con un dongle en el medio. La dirección del dongle es importante; un lado alimenta el dispositivo, y el otro lado no. Si la depuración USB no funciona, intente intercambiar la dirección del dongle. Es decir, desconecte ambos cables del dongle y intercambie los lados a los que están conectados los cables.

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. Haga clic en OK.

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

¿Qué ocurre si USBView muestra un puerto compatible con depuración, pero no muestra el puerto asignado a ningún conector físico?

En algunos equipos, USBView muestra un puerto compatible con depuración, pero no muestra el puerto asignado a ningún conector USB físico. Por ejemplo, USBView podría mostrar el puerto 2 como número de puerto de depuración para un controlador eHCI.

... USB Enhanced Host Controller ...
...
Debug Port Number:  2
Bus.Device.Function (in decimal): 0.29.0

Además, cuando se usa USBView para examinar el puerto individual, se muestra como compatible con la depuración.

[Port 2]
Is Port User Connectable: Yes
Is Port Debug Capable: Yes
...
Protocols Supported
  USB 1.1      yes
  USB 2.0      yes
  USB 3.0      no

Pero cuando conecta un dispositivo USB 2.0 (como una unidad flash) a todos los conectores USB del equipo, USBView nunca muestra el dispositivo conectado al puerto compatible con depuración (puerto 2 en este ejemplo). USBView puede mostrar el conector externo asignado a un puerto de un controlador xHCI cuando, de hecho, el conector externo está asignado al puerto compatible con la depuración del controlador eHCI.

Captura de pantalla de los controladores xHCI y EHCI en USBView.

En un caso como este, es posible que todavía pueda establecer la depuración en modo kernel a través de un cable USB 2.0. En el ejemplo que se muestra aquí, conectaría el cable de depuración USB 2.0 al conector que se muestra como asignado al puerto 2 del controlador xHCI. A continuación, establecería los parámetros de bus en los números de bus, dispositivo y función del controlador eHCI (en este ejemplo, 0.29.0).

bcdedit /set "{dbgsettings}" busparams 0.29.0

Compatibilidad adicional

Para obtener sugerencias de solución de problemas y otra información, consulte el blog de Microsoft USB.

Consulte también

Configuración de la depuración manual del kernel