Partilhar via


Ligar dispositivos USB

Este guia percorrerá as etapas necessárias para conectar um dispositivo USB a uma distribuição Linux em execução no WSL 2 usando o projeto de código aberto USB/IP, USBIPD-WIN.

Configurar o projeto USB/IP na sua máquina Windows permitirá cenários comuns de uso de USB para desenvolvedores, como programar um Arduino ou acessar um leitor de cartão inteligente.

Pré-requisitos

Observação

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

Importante

O WSL agora suporta Windows 10 e Windows 11 através 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 do código-fonte. Consulte WSL na Microsoft Store agora está disponível em geral no Windows 10 e 11 para obter informações sobre como atualizar para a versão suportada pela Loja do WSL. Se você não conseguir atualizar para a versão suportada pela Loja do WSL e receber automaticamente atualizações do kernel, consulte o repositório de projetoUSBIPD-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 conectar dispositivos USB não está disponível nativamente no WSL, então você precisará instalar o projeto usbipd-win de código aberto.

Requisitos do kernel

Para usar USBIPD com o Windows Subsystem for Linux (WSL), você precisa ter uma versão do kernel Linux de 5.10.60.1 ou superior. Se a versão do kernel instalada for mais antiga que 5.10.60.1, ela pode ser atualizada primeiro desligando todas as instâncias em execução do WSL com wsl --shutdown, e executando o comando: wsl --update.

Instalar USBIPD no WSL

  1. Vá para a página de lançamento mais recente do projeto usbipd-win.
  2. Selecione o arquivo .msi, que fará o download do instalador. (Poderá receber um aviso a pedir-lhe para confirmar que confia neste download).
  3. Executa o ficheiro de instalação do usbipd-win_x.msi descarregado.

Observação

Como alternativa, você também pode instalar o projeto usbipd-win usando o 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 deixar de fora --interactive, o winget pode reiniciar imediatamente o computador se isso for necessário para instalar os drivers.

Isto vai instalar:

  • Um serviço chamado usbipd (nome para exibição: USBIP Device Host). Pode verificar o estado deste serviço utilizando a aplicação Serviços a partir do Windows.
  • Uma ferramenta de linha de comando usbipd. A localização desta ferramenta será adicionada à 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.

Ligue um dispositivo USB

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

Observação

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

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

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

    usbipd bind --busid 4-4
    
  3. Para conectar o dispositivo USB, execute o seguinte comando. (Você não precisa mais usar um prompt de administrador elevado.) Verifique se um prompt de comando WSL está aberto para manter a VM leve WSL 2 ativa. Observe que, desde que o dispositivo USB esteja conectado ao WSL, ele não pode ser usado pelo Windows. Uma vez conectado ao WSL, o dispositivo USB pode ser usado por qualquer distribuição executando como WSL 2. Verifique se o dispositivo está conectado usando usbipd list. No prompt WSL, execute lsusb para verificar se o dispositivo USB está listado e pode ser interagido usando ferramentas Linux.

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

    lsusb
    

    Você deve ver o dispositivo que você acabou de conectar e ser capaz de interagir com ele usando ferramentas normais do Linux. Dependendo do seu aplicativo, talvez seja necessário configurar regras do udev para permitir que usuários não-root acessem o dispositivo.

  5. Depois de terminar de usar o dispositivo no WSL, você pode 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 da Linha de Comando do Windows e o repositório usbipd-win no GitHub.

Para uma demonstração em vídeo, consulte WSL 2: Conectar dispositivos USB (Tabs vs Spaces show).