Configurar, calibrar e trocar o driver do gamepad no Linux

Introdução
Linux é muitas vezes considerado a plataforma menos usada por gamers, mas o interesse em configurar gamepads no sistema cresceu — especialmente desde que a Valve disponibilizou vários títulos no Linux via Steam. O suporte de hardware melhorou muito: desde o kernel 3.19 a maioria dos gamepads funciona «out of the box». Ainda assim, o módulo xpad do kernel pode apresentar bugs com alguns controladores e oferece poucas opções de configuração.
Definições rápidas
- xpad: driver do kernel para controladores Xbox.
- xboxdrv: driver de usuário alternativo, com mais opções de configuração.
- jstest-gtk: utilitário gráfico para testar e calibrar joysticks.
- qjoypad: ferramenta para mapear botões do gamepad para teclas do teclado/mouse.
Importante: este guia foca em distribuições baseadas em Debian/Ubuntu (uso dos comandos apt). Ajuste os comandos para sua distro (pacotes e gerenciador diferem).
Como escolher um driver — guia rápido
Use este fluxograma para decidir qual driver tentar primeiro:
flowchart TD
A[Gamepad funciona bem com xpad?] -->|Sim| B[Manter xpad]
A -->|Não| C[Tentar xboxdrv]
C --> D{xboxdrv funciona?}
D -->|Sim| E[Configurar startup / udev]
D -->|Não| F[Tentar ubuntu-xboxdrv ou outro driver]
F --> G[Investigar suporte do fabricante / kernel]
Usar um driver alternativo
- Instalar xboxdrv
Abra um terminal e execute:
sudo apt-get update
sudo apt-get install xboxdrv
Se quiser a versão mais recente (suporte a mais dispositivos além dos controladores Xbox), baixe do site do projeto xboxdrv.
- Executar xboxdrv sem conflito com o xpad
Você não pode ter dois drivers controlando o mesmo dispositivo ao mesmo tempo. Remova temporariamente o módulo xpad do kernel e inicie o xboxdrv:
sudo rmmod xpad
sudo xboxdrv --detach-kernel-driver
Ou, se preferir iniciar em silêncio:
sudo xboxdrv --silent --detach-kernel-driver
Você saberá que o xboxdrv está ativo porque o terminal começará a exibir eventos de botões e posições de eixos.
- Alternativa: ubuntu-xboxdrv (PPA)
Se o xboxdrv padrão não funcionar para seu dispositivo, experimente o pacote ubuntu-xboxdrv (baseado em xboxdrv mas com ajustes). Adicione o PPA por sua conta e risco:
sudo apt-add-repository -y ppa:rael-gc/ubuntu-xboxdrv
sudo apt-get update
sudo apt-get install ubuntu-xboxdrv
- Evitar que o xpad carregue no boot
Crie um arquivo de blacklist para impedir que o kernel carregue o módulo xpad automaticamente:
echo 'blacklist xpad' | sudo tee /etc/modprobe.d/blacklist-xpad.conf
Depois reinicie para confirmar que o xpad não é carregado.
Opcional: criar um serviço systemd para iniciar o xboxdrv no boot (exemplo mínimo)
sudo tee /etc/systemd/system/xboxdrv.service > /dev/null <<'EOF'
[Unit]
Description=xboxdrv user driver
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/xboxdrv --detach-kernel-driver --silent
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now xboxdrv.service
Ajuste o ExecStart conforme necessário (parâmetros, usuário, logs).
Calibrando o gamepad
Instale a ferramenta gráfica jstest-gtk:
sudo apt-get install jstest-gtk
Abra o jstest-gtk, selecione seu dispositivo e clique em “Propriedades”. Essa janela mostra indicadores de posição para botões e eixos.
Use a tela para verificar se tudo responde e se há desvio (drift). Se o gamepad precisar de calibração:
- Clique em “Calibração” no canto inferior direito.
- Em seguida, clique em “Iniciar calibração” na nova janela.
- Siga as instruções na tela (mexa nos eixos conforme pedido).
Se quiser remapear a ordem dos botões, clique em “Mapping” e defina a nova correspondência. Alterações feitas aqui afetam todos os jogos e aplicações.
Mapear botões para teclado/mouse (qjoypad)
Para relacionar ações do gamepad a teclas do teclado ou movimentos do mouse, instale qjoypad:
sudo apt-get install qjoypad
Execute:
qjoypad --notray
Crie novos perfis clicando em “Add” (Adicionar) e nomeando-os. No meu exemplo, atribuí a letra “H” quando o eixo esquerdo vai para a esquerda e “O” quando vai para a direita.
Use “Quick Set” para detectar automaticamente qual botão você pressionou e então atribuir a tecla correspondente.
Ao fechar a interface, qjoypad pode ir para a bandeja do sistema — permitindo alternar perfis sem reabrir o app.
Resolução de problemas comuns
- LEDs do controle piscando ciclicamente: sinal clássico de conflito entre xpad e xboxdrv. Remova o módulo xpad (sudo rmmod xpad) e/ou adicione ao blacklist.
- Controle não responde no Steam: verifique permissões e se o driver está rodando no usuário correto. Adicione regras udev para permitir acesso a dispositivos USB (exemplo abaixo).
- Drift / stick com comportamento errático: passar por calibração no jstest-gtk; se persistir, verifique sujeira física ou substituição do módulo analógico.
- Eixos invertidos: no jstest-gtk/mapeamento do xboxdrv é possível inverter eixos com parâmetros ou usando a interface de mapeamento.
- Permissões (acesso negado): crie uma regra udev para seu vendor/product ID e recarregue regras:
# Exemplo de /etc/udev/rules.d/99-gamepad.rules
SUBSYSTEM=="input", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="028e", MODE="0666"
sudo udevadm control --reload
sudo udevadm trigger
Substitua os IDs pelo seu dispositivo (use lsusb para descobrir).
Quando isso pode falhar (contraexemplos)
- Gamepads proprietários mais novos podem ser suportados apenas por drivers específicos no kernel; xboxdrv pode não fornecer suporte completo a recursos especiais (LEDs, touchpads).
- Em distribuições com init systems diferentes ou com políticas de segurança rígidas, scripts de inicialização e serviços systemd podem exigir adaptações.
Checklist rápido (playbook)
- Verificar se o dispositivo aparece: lsusb && jstest-gtk
- Tentar xpad primeiro (conveniência)
- Se falhar, rmmod xpad e testar xboxdrv
- Blacklist xpad se xboxdrv for usado permanentemente
- Calibrar em jstest-gtk
- Criar regra udev para permissões, se necessário
- Configurar serviço systemd para iniciar xboxdrv automaticamente
Matriz de compatibilidade (resumo qualitativo)
- Controladores Xbox 360/One: geralmente suportados nativamente por xpad; xboxdrv e ubuntu-xboxdrv oferecem mais opções.
- Controladores genéricos: xboxdrv pode funcionar, mas verifique mapeamentos.
- Gamepads com recursos proprietários: pode exigir drivers do fabricante ou kernel atualizado.
Exemplo de playbook para administradores
- Teste sem alterar: plugue o gamepad e rode jstest-gtk.
- Se houver problema, capture logs: dmesg | tail -n 50.
- Rmmod xpad e teste xboxdrv manualmente.
- Se funcionar, automatize: blacklist + systemd service.
- Documente perfil qjoypad e compartilhe com usuários.
Lista curta de verificação por função
- Jogador: testar em jstest-gtk, calibrar, criar perfil qjoypad.
- Administrador de sistema: criar regra udev, blacklisting, serviço systemd.
- Desenvolvedor de jogos: validar mapeamentos, oferecer opção de remapear botões no jogo.
Glossário (1 linha cada)
- Kernel: núcleo do sistema operativo que fornece drivers e acesso ao hardware.
- Module: componente carregado no kernel para suportar hardware específico (ex.: xpad).
- udev: gerenciador de dispositivos do Linux que aplica regras quando hardware é conectado.
Resumo final
Substituir o módulo xpad por xboxdrv (ou ubuntu-xboxdrv) e calibrar com jstest-gtk resolve a maior parte dos problemas de compatibilidade e configuração de gamepads no Linux. Para uso contínuo, adicione o xpad ao blacklist, crie regras udev para permissões e, se necessário, um serviço systemd para iniciar o driver automaticamente.
Notas importantes
- Faça backup de arquivos de configuração antes de alterar /etc/modprobe.d ou /etc/udev.
- Não adicione PPAs sem verificar a origem e a compatibilidade com sua distribuição.
Materiais semelhantes

Driver FT232R USB UART: instalar e corrigir

Slopsquatting: Proteja-se de pacotes maliciosos

Transmitir vídeos do Telegram sem baixar

Desativar 'Let's finish setting up your device' no Windows 11

Arquivar pedidos na Amazon — guia rápido
