Compartilhar via


Conectar dispositivos USB

Este guia percorrerá as etapas necessárias para conectar um dispositivo USB a uma distribuição do Linux em execução no WSL 2 usando o projeto de software livre USB/IP, usbipd-win.

A configuração do projeto USB/IP em sua máquina Windows habilitará cenários comuns de desenvolvedor USB, como atualizar um Arduino ou acessar um leitor de cartão inteligente.

Pré-requisitos

  • Executando Windows 11 (Build 22000 ou posterior). (O suporte ao Windows 10 é possível, consulte a observação abaixo).
  • Um computador com um processador x64 é necessário. (atualmente, não há suporte para x86 e Arm64 com usbipd-win).
  • O WSL está instalado e configurado com a versão mais recente.
  • Distribuição do Linux instalada e definida como WSL 2.

Observação

Para verificar a versão e o número de build do seu Windows, selecione a tecla do logotipo do Windows + R, digite winver e selecione OK. Você pode atualizar para a versão mais recente do Windows selecionando Iniciar>Configurações>Windows Update>Verificar atualizações. Para marcar a versão do kernel do Linux, abra a distribuição do Linux e insira o comando: uname -a. Para atualizar manualmente para o kernel mais recente, abra o PowerShell e insira o comando: 'wsl --update'.

Importante

O WSL agora aceita o Windows 10 e o Windows 11 por meio da Microsoft Store, o que significa que os usuários do Windows 10 agora têm acesso às versões mais recentes do kernel sem precisar compilar a partir da fonte. Confira O WSL na Microsoft Store está disponível no Windows 10 e 11 para obter informações sobre como atualizar para a versão compatível com a Store do WSL. Se você não conseguir atualizar para a versão compatível com a Store do WSL e receber atualizações do kernel automaticamente, consulte o repositório do projeto USBIPD-WIN para obter instruções sobre como conectar dispositivos USB a uma distribuição Linux em execução no WSL 2 criando seu próprio kernel WSL 2 habilitado para USBIP.

Instalar o projeto USBIPD-WIN

O suporte para conexão de dispositivos USB não está disponível nativamente no WSL, portanto, você precisará instalar o projeto usbipd-win de software livre.

  1. Acesse a página de versão mais recente do projeto usbipd-win.
  2. Selecione o arquivo .msi, que baixará o instalador. (Você pode receber um aviso solicitando que confirme se confia no instalador baixado).
  3. Execute o arquivo instalador usbipd-win_x.y.z.msi baixado.

Observação

Como alternativa, você também pode instalar o projeto usbipd-win por meio do Gerenciador de Pacotes do Windows (winget). Se você já instalou o winget, basta usar o comando: winget install --interactive --exact dorssel.usbipd-win para instalar o usbipd-win. Se você deixar o --interactive de fora, o winget poderá reiniciar imediatamente o computador se for necessário instalar os drivers.

Isso instalará:

  • Um serviço chamado usbipd (nome de exibição: Host do Dispositivo USBIP). Você pode verificar o status desse serviço usando o aplicativo Serviços no Windows.
  • Uma ferramenta de linha de comando usbipd. O local dessa ferramenta é adicionado à variável de ambiente PATH.
  • Uma regra de firewall chamada usbipd para permitir que todas as sub-redes locais se conectem ao serviço. Você pode modificar essa regra de firewall para ajustar o controle de acesso.

Anexar um dispositivo USB

Antes de anexar seu dispositivo USB, verifique se uma linha de comando WSL está aberta. Isso manterá a VM leve do WSL 2 ativa.

Observação

Este documento pressupõe que você tenha usbipd-win 4.0.0 ou superior instalado

  1. Liste todos os dispositivos USB conectados ao Windows abrindo o PowerShell no modo de administrador e inserindo o comando a seguir. Depois que os dispositivos estiverem listados, selecione e copie a ID do barramento do dispositivo que você deseja anexar ao WSL.

    usbipd list
    
  2. Antes de anexar o dispositivo USB, o comando usbipd bind deve ser usado para compartilhar o dispositivo, permitindo que ele seja anexado ao WSL. Isso requer privilégios de administrador. Selecione a ID do barramento do dispositivo que você deseja usar no WSL e execute o comando a seguir. Depois de executar o comando, verifique se o dispositivo é compartilhado usando o comando usbipd list novamente.

    usbipd bind --busid 4-4
    
  3. Para anexar o dispositivo USB, execute o comando a seguir. (Você não precisa mais usar um prompt de administrador elevado.) Certifique-se de que um prompt de comando WSL esteja aberto para manter a VM leve do WSL 2 ativa. Observe que, enquanto o dispositivo USB estiver anexado ao WSL, ele não poderá ser usado pelo Windows. Depois de anexado ao WSL, o dispositivo USB pode ser usado por qualquer distribuição em execução como WSL 2. Verifique se o dispositivo está anexado usando usbipd list. No prompt do WSL, execute lsusb para verificar se o dispositivo USB está listado e se é possível interagir com ele usando ferramentas do Linux.

    usbipd attach --wsl --busid <busid>
    
  4. Abra o Ubuntu (ou sua linha de comando WSL preferida) e liste os dispositivos USB anexados por meio do comando:

    lsusb
    

    Você deverá ver o dispositivo que acabou de anexar e poder interagir com ele usando ferramentas normais do Linux. Dependendo do aplicativo, talvez seja necessário configurar regras de udev para permitir que usuários não raiz acessem o dispositivo.

  5. Depois de terminar de usar o dispositivo no WSL, você poderá desconectar fisicamente o dispositivo USB ou executar este comando do PowerShell:

    usbipd detach --busid <busid>
    

Para saber mais sobre como isso funciona, consulte o Blog de Linha de Comando do Windows e o repositório usbipd-win no GitHub.

Para obter uma demonstração em vídeo, consulte WSL 2: Conectar dispositivos USB (Episódio Guias vs Espaços).