Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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
- Executando o Windows 11 (Build 22000 ou posterior). (O suporte ao Windows 10 é possível, veja a nota abaixo).
- É necessária uma máquina com um processador x64 ou ARM64. (x86 atualmente não é suportado com usbipd-win).
- O WSL é instalado e configurado com a versão mais recente.
- Distribuição Linux instalada e definida como WSL 2.
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
- Vá para a página de lançamento mais recente do projeto usbipd-win.
- Selecione o arquivo .msi, que fará o download do instalador. (Poderá receber um aviso a pedir-lhe para confirmar que confia neste download).
- 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
usbipdpara 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
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 listAntes de conectar o dispositivo USB, o comando
usbipd binddeve 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 comandousbipd listnovamente.usbipd bind --busid 4-4Para 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, executelsusbpara verificar se o dispositivo USB está listado e pode ser interagido usando ferramentas Linux.usbipd attach --wsl --busid <busid>Abra o Ubuntu (ou sua linha de comando WSL preferida) e liste os dispositivos USB conectados usando o comando:
lsusbVocê 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.
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).
Windows Subsystem for Linux