Compartilhar via


Configurar a depuração do modo kernel em um cabo USB 3.0

As Ferramentas de Depuração para Windows dão suporte à depuração no modo kernel em um cabo USB 3.0. Este artigo descreve como configurar manualmente a depuração do USB 3.0.

O computador que executa o depurador é chamado de computador host e o computador que está sendo depurado é chamado de computador de destino.

A depuração em um cabo USB 3.0 requer o seguinte hardware:

  • Um cabo de depuração USB 3.0, que é um cabo crossover A-A que tem dois plugues tipo A masculinos e nenhuma conexão Vbus
  • No computador host, um controlador de host xHCI (USB 3.0)
  • No computador de destino, um controlador de host xHCI (USB 3.0) que dá suporte à depuração

Para simplificar a solução de problemas, conecte o cabo diretamente entre o computador de destino e host, evitando hubs ou estações de encaixe.

Configurar o computador de destino

  1. No computador de destino, inicie a ferramenta UsbView . A ferramenta UsbView está incluída nas Ferramentas de Depuração para Windows.

  2. No UsbView, localize todos os controladores de host xHCI.

  3. No UsbView, expanda os nós dos controladores de host xHCI. Procure uma indicação de que uma porta no controlador host dá suporte à depuração.

    [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 os números de barramento, dispositivo e função para o controlador xHCI que você pretende usar para depuração. O UsbView exibe esses números. No exemplo a seguir, o número do barramento é 48, o número do dispositivo é 0 e o número da função é 0.

    USB xHCI Compliant Host Controller
    ...
    DriverKey: {36fc9e60-c465-11cf-8056-444553540000}\0020
    ...
    Bus.Device.Function (in decimal): 48.0.0
    
  5. Depois de identificar um controlador xHCI que dá suporte à depuração, a próxima etapa é localizar o conector USB físico associado a uma porta no controlador xHCI. Para localizar o conector físico, conecte qualquer dispositivo USB 3.0 a qualquer conector USB no computador de destino. Atualize o UsbView para ver onde o dispositivo está localizado. Se o UsbView mostrar seu dispositivo conectado ao controlador de host xHCI escolhido, você encontrou um conector USB físico que pode ser usado para depuração usb 3.0.

Importante

Antes de usar bcdedit para alterar as informações de inicialização, talvez seja necessário suspender temporariamente recursos de segurança do Windows, como BitLocker e Inicialização Segura no computador de teste. Habilite novamente esses recursos de segurança ao concluir o teste e gerencie adequadamente o computador de teste quando os recursos de segurança estiverem desabilitados.

  1. No computador de destino, abra uma janela do Prompt de Comando como Administrador e insira estes comandos:

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

    TargetName é um nome que você cria para o computador de destino. Observe que TargetName não precisa ser o nome oficial do computador de destino; pode ser qualquer cadeia de caracteres que você criar, desde que atenda a essas restrições:

    • A cadeia de caracteres não deve conter "depuração" em nenhum lugar no TargetName em qualquer combinação de maiúsculas ou minúsculas. Por exemplo, se você usar "DeBuG" ou "DEBUG" em qualquer lugar em seu nome de destino, a depuração não funcionará corretamente.
    • Os únicos caracteres na cadeia de caracteres são o hífen (-), o sublinhado(_), os dígitos de 0 a 9 e as letras A a Z (maiúsculas ou minúsculas).
    • O comprimento máximo da cadeia de caracteres é de 24 caracteres.
  2. Em Gerenciador de Dispositivos, localize o Controlador USB que você pretende usar para depuração. Em Localização na guia Geral , os números de barramento, dispositivo e função são exibidos. Insira este comando:

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

    B, d e f são os números de barramento, dispositivo e função do controlador de host USB. Os números de barramento, dispositivo e função devem estar em formato decimal.

    Exemplo:

    bcdedit /set "{dbgsettings}" busparams 48.0.0
    
  3. Reinicie o computador de destino.

Desabilitar o gerenciamento de energia

Em alguns casos, as transições de energia podem interferir na depuração por USB 3.0. Para evitar esses problemas, desabilite a suspensão seletiva para o controlador de host xHCI e seu hub raiz que você está usando para depuração.

  1. Em Gerenciador de Dispositivos, navegue até o nó do controlador de host xHCI. Clique com o botão direito do mouse no nó e escolha Propriedades. Se houver uma guia Gerenciamento de Energia , abra a guia e desmarque a caixa de seleção Permitir que o computador desative esse dispositivo para salvar energia .

  2. Em Gerenciador de Dispositivos, navegue até o nó do hub raiz do controlador de host xHCI. Clique com o botão direito do mouse no nó e escolha Propriedades. Se houver uma guia Gerenciamento de Energia, abra a guia e desmarque a caixa Permitir que o computador desative esse dispositivo para economizar energia marcar.

Quando você terminar de usar o controlador de host xHCI para depuração, habilite novamente a suspensão seletiva para o controlador de host xHCI.

Iniciar uma sessão de depuração pela primeira vez

  1. Conecte um cabo de depuração USB 3.0 às portas USB 3.0 escolhidas para depuração nos computadores host e de destino.
  2. Determine a bitness (32 bits ou 64 bits) do Windows em execução no computador host.
  3. No computador host, abra uma versão do WinDbg (como Administrador) que corresponda à bitness do Windows em execução no computador host. Por exemplo, se o computador host estiver executando uma versão de 64 bits do Windows, abra a versão de 64 bits do WinDbg como Administrador.
  4. No menu Arquivo , escolha Depuração do Kernel. Na caixa de diálogo Depuração do Kernel, abra a guia USB . Insira o nome de destino que você criou ao configurar o computador de destino. Clique em OK.

Neste ponto, o driver de depuração USB é instalado no computador host, razão pela qual é importante corresponder a bitness do WinDbg à bitness do Windows. Depois que o driver de depuração USB for instalado, você poderá usar a versão de 32 bits ou 64 bits do WinDbg para sessões de depuração subsequentes.

Iniciar uma sessão de depuração

Usando WinDbg

No computador host, abra WinDbg. No menu Arquivo , escolha Depuração do Kernel. Na caixa de diálogo Depuração do Kernel, abra a guia USB . Insira o nome de destino que você criou ao configurar o computador de destino. Selecione OK.

Você também pode iniciar uma sessão com o WinDbg inserindo o seguinte comando em uma janela do Prompt de Comando, em que TargetName é o nome de destino que você criou ao configurar o computador de destino:

windbg /k usb:targetname=<TargetName>

Usando KD

No computador host, abra uma janela do Prompt de Comando e insira o seguinte comando, em que TargetName é o nome de destino que você criou ao configurar o computador de destino:

kd /k usb:targetname=<TargetName>

Reinicializar o computador de destino

Depois que o depurador estiver conectado, reinicie o computador de destino. Uma maneira de reinicializar o computador é usar o shutdown -r -t 0 comando do prompt de comando de um administrador.

Depois que o computador de destino for reiniciado, o depurador deverá se conectar automaticamente.

Solução de problemas

Dispositivo USB não reconhecido

Se uma notificação do Windows aparecer no host com o dispositivo USB de texto não reconhecido quando você inserir o cabo de depuração, é possível que um problema de compatibilidade USB 3.1 a 3.1 conhecido esteja sendo atingido. Esse problema afeta as configurações de depuração quando o cabo de depuração está conectado a um controlador USB 3.1 no host e um controlador USB Intel (Ice Lake ou Tiger Lake) 3.1 no destino.

Para obter mais informações e listagens de modelo de processador, consulte Ice Lake (microprocessador) e ou Tiger Lake (microprocessador). Para localizar o modelo de processador do computador de destino, abra o aplicativo Configurações e acesse Sistema e , em seguida, Sobre. O processador está listado em Especificações do dispositivo.

Para verificar esse problema, abra Gerenciador de Dispositivos e procure dispositivo de conexão de depuração USB em controladores de Barramento Serial Universal. Se esse dispositivo não puder ser encontrado, marcar para um dispositivo Desconhecido em Outros dispositivos. Clique com o botão direito do mouse no dispositivo para abrir sua página de propriedades. O dispositivo status caixa de texto terá o texto que o Windows interrompeu este dispositivo porque ele relatou problemas (Código 43) e o dispositivo USB retornou um descritor USB BOS inválido.

Para solucionar esse problema, execute estes comandos em um prompt de comando do administrador para fazer alterações no 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

Em seguida, remova e reinsira o cabo de depuração.

Confira também

Configurar a depuração do modo kernel manualmente