Você quer usar o GitHub Copilot no VS Code enquanto trabalha dentro de um ambiente WSL 2 e precisa de encaminhamento USB para dispositivos como microcontroladores, pendrives ou chaves de segurança. O problema é que o WSL 2 não oferece suporte nativo a passagem de dispositivos USB, e ferramentas padrão de encaminhamento USB podem interferir na conexão remota do Copilot. Este artigo explica como o GitHub Copilot, o VS Code e o WSL 2 com encaminhamento USB interagem e quais problemas de compatibilidade você pode enfrentar. Você aprenderá as etapas exatas de configuração, limitações conhecidas e como evitar falhas comuns.
Principais Conclusões: GitHub Copilot no WSL 2 com Encaminhamento USB
- Extensão Remote – WSL do VS Code: Necessária para conectar o VS Code ao ambiente WSL 2 onde o Copilot é executado.
- Ferramenta usbipd-win: O único método oficialmente suportado para encaminhamento de dispositivos USB para o WSL 2.
- Extensão Copilot na janela remota do WSL: Deve ser instalada dentro da distribuição WSL 2, não no host Windows, para que o Copilot veja os dispositivos USB.
Como o GitHub Copilot, o VS Code e o Encaminhamento USB do WSL 2 Funcionam Juntos
O GitHub Copilot é uma ferramenta de conclusão de código com IA que funciona como uma extensão do VS Code. Quando você abre uma janela remota do WSL 2 no VS Code, a extensão do Copilot se comunica com o serviço GitHub Copilot por meio da pilha de rede do WSL 2. O encaminhamento USB no WSL 2 é gerenciado pelo projeto usbipd-win, que anexa um dispositivo USB físico do host Windows a uma distribuição WSL 2. O dispositivo encaminhado aparece como um arquivo de dispositivo Linux dentro da distribuição, como /dev/ttyUSB0 para um adaptador serial.
A preocupação com compatibilidade surge porque a extensão do Copilot no VS Code é executada no contexto do ambiente remoto do WSL. Se a extensão do Copilot estiver instalada apenas no lado do Windows, ela não conseguirá ver os dispositivos USB encaminhados para o WSL 2. A solução é instalar a extensão do Copilot dentro da distribuição WSL 2. Além disso, o encaminhamento USB pode causar interrupções na rede se o dispositivo encaminhado for um adaptador de rede ou um dispositivo que desencadeie conflitos de driver do kernel. Para a maioria dos dispositivos USB, como armazenamento ou dispositivos seriais, o Copilot funciona normalmente após a extensão ser colocada corretamente.
Pré-requisitos
Antes de começar, você precisa dos seguintes itens instalados e configurados:
- Windows 10 versão 2004 ou posterior, ou qualquer compilação do Windows 11
- WSL 2 habilitado com uma distribuição Linux instalada, como Ubuntu 22.04
- VS Code instalado no Windows com a extensão Remote – WSL
- usbipd-win versão 4.0.0 ou posterior instalado no host Windows
- Uma conta GitHub com uma assinatura ativa do Copilot
Etapas para Configurar o GitHub Copilot no VS Code com Encaminhamento USB no WSL 2
Siga estas etapas em ordem. Não pule a etapa de instalação da extensão dentro do WSL 2.
- Instale o usbipd-win no Windows
Baixe o instalador MSI mais recente da página de releases do GitHub do usbipd-win. Execute o instalador e reinicie o computador. Após a reinicialização, abra um terminal PowerShell como administrador e executeusbipd listpara verificar se o serviço está em execução. Você deve ver uma lista de dispositivos USB conectados ao seu host Windows. - Anexe o dispositivo USB ao WSL 2
No mesmo PowerShell de administrador, executeusbipd bind --busid X-Xonde X-X é o ID do barramento do seu dispositivo na lista. Em seguida, executeusbipd attach --wsl --busid X-X. O dispositivo agora está encaminhado para sua distribuição WSL 2 padrão. Verifique comlsusbdentro do terminal WSL. - Abra o VS Code e conecte-se ao WSL 2
Inicie o VS Code no Windows. Pressione Ctrl+Shift+P para abrir a paleta de comandos. Digite Remote-WSL: Open Folder in WSL e selecione sua distribuição WSL 2. O VS Code recarrega em uma janela remota conectada ao ambiente WSL. - Instale a extensão GitHub Copilot dentro do WSL 2
Na janela remota do VS Code, vá para a visualização de Extensões pressionando Ctrl+Shift+X. Pesquise por GitHub Copilot. Você verá um botão Instalar com uma nota dizendo Instalar no WSL: Ubuntu. Clique nesse botão. A extensão é instalada dentro da distribuição WSL 2, não no host Windows. Após a instalação, recarregue a janela quando solicitado. - Faça login no GitHub Copilot
Após recarregar, clique no ícone do Copilot na barra de status. Siga os prompts de login. Uma janela do navegador abre para autenticação no GitHub. Após o login, o Copilot é ativado. Você pode testá-lo abrindo um arquivo Python ou JavaScript e digitando um comentário como// função para ler dados seriais USB. O Copilot deve sugerir conclusões de código. - Verifique o acesso ao dispositivo USB a partir do código do Copilot
Escreva um pequeno script que abra o arquivo do dispositivo USB, por exemplo usando PySerial para dispositivos seriais. Execute o script no terminal integrado do VS Code dentro do WSL 2. O Copilot sugerirá chamadas de biblioteca relevantes e tratamento de erros. Se o arquivo do dispositivo estiver acessível, o Copilot funciona corretamente.
Problemas Comuns de Compatibilidade e Suas Soluções
Copilot não aparece no VS Code após anexar dispositivo USB
Isso acontece quando a extensão do Copilot está instalada apenas no host Windows, não dentro da janela remota do WSL 2. A solução é desinstalar a extensão no host e reinstalá-la de dentro da janela remota do WSL 2, conforme mostrado na etapa 4 acima. Após a reinstalação, o Copilot aparece na barra de status.
Dispositivo USB anexado, mas não visível dentro do WSL 2
O comando attach do usbipd-win pode falhar se o dispositivo já estiver vinculado a outro driver no Windows. Execute usbipd bind --force --busid X-X para forçar a vinculação do dispositivo. Se o dispositivo for um adaptador de rede USB, o WSL 2 pode rejeitá-lo porque adaptadores de rede podem entrar em conflito com o switch virtual. Use um tipo diferente de dispositivo USB para desenvolvimento.
Autocompletar do Copilot para após encaminhamento USB
Isso é raro, mas pode ocorrer se o dispositivo USB encaminhado for um dispositivo de armazenamento que faz o kernel do WSL 2 remontar sistemas de arquivos. A extensão do Copilot pode perder temporariamente a conexão com o serviço GitHub. Aguarde 30 segundos e pressione Ctrl+Shift+P e execute Developer: Reload Window. O Copilot reconecta automaticamente.
Janela remota do VS Code congela ao anexar dispositivo USB
O congelamento ocorre porque o serviço usbipd-win interrompe a pilha de rede do WSL 2 durante a anexação do dispositivo. Esta é uma limitação conhecida. Para evitar, anexe o dispositivo USB antes de abrir o VS Code. Se o congelamento acontecer, feche o VS Code, desconecte o dispositivo com usbipd detach --busid X-X, reconecte e abra o VS Code novamente.
GitHub Copilot no WSL 2 vs Windows Nativo: Comparação de Compatibilidade
| Item | WSL 2 com Encaminhamento USB | Windows Nativo |
|---|---|---|
| Localização da extensão Copilot | Deve ser instalada dentro da distribuição WSL 2 | Instalada no host Windows |
| Acesso a dispositivos USB | Requer bind e attach do usbipd-win | Drivers nativos do Windows gerenciam dispositivos |
| Estabilidade da rede durante attach | Possível congelamento breve da janela remota do VS Code | Sem impacto |
| Tipos de dispositivos suportados | Serial, armazenamento, HID; sem adaptadores de rede | Todos os tipos de dispositivos USB |
| Latência do Copilot | Mesma que no Windows nativo | Mesma |
Agora você pode executar o GitHub Copilot no VS Code com WSL 2 e encaminhamento USB para tarefas de desenvolvimento como gravação de firmware ou depuração serial. O passo fundamental é instalar a extensão do Copilot dentro da janela remota do WSL 2. Para melhor estabilidade, anexe os dispositivos USB antes de iniciar o VS Code. Se você trabalha com adaptadores de rede USB, use o Windows nativo em vez do WSL 2 para sessões do Copilot.