Linux Kamarada

Como usar um controle de Xbox 360 sem fio para jogar no Linux

Se você tem um controle sem fio para Xbox 360, pode querer usá-lo com o PC também. Como ele possui muitos botões, pode ser compatível com vários jogos. Inclusive, pode ser usado para emular os controles de vários videogames, com emuladores como o Snes 9x, RetroArch e PCSX2, dos quais já falamos aqui.

Controle para Xbox 360. Fonte: [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:360_controller.svg).

Controle para Xbox 360. Fonte: Wikimedia Commons.

Porém, diferente dos controles com fio, que usam o padrão USB, e dos controles sem fio para modelos mais novos de Xbox, que usam o padrão Bluetooth, esse modelo de controle sem fio para o Xbox 360 usa um protocolo sem fio proprietário de 2,4 GHz, precisando de um receptor sem fio para ser usado no computador.

Embora a Microsoft fabrique esse receptor, ela não o vende separadamente. Então, você tem 3 opções: comprar o controle sem fio original da Microsoft que vem com o receptor; comprar apenas o receptor usado, separado do controle sem fio (que você já tem); ou comprar um receptor chinês que é um clone perfeito, indistinguível do receptor oficial.

Eu optei pela terceira opção, que foi a mais barata e funcionou. Você pode encontrar várias opções pesquisando no Google ou Mercado Livre, por exemplo, mas eu achei mais barato comprar pelo AliExpress. Demorou mais porque veio da China, mas chegou em 1 mês.

O receptor veio com um CD com um driver para Windows. Pro Linux, claro, não serve. Para fazer esse receptor funcionar no Linux, eu precisei instalar o driver Xpad.

Nesse tutorial, você verá como baixar, compilar e instalar o driver Xpad e testar o controle sem fio para Xbox 360 no Linux. Como referência, estou usando o Linux Kamarada 15.2, mas testei o passo a passo também no openSUSE Leap 15.3. Pode ser que as instruções a seguir, com modificações, funcionem em outras distribuições.

Pesquisando, eu encontrei tutoriais mencionando outro driver, o xboxdrv, mas eu não consegui fazê-lo funcionar no openSUSE Leap 15.3.

Instalando o driver Xpad

Como vamos compilar um driver para o kernel, primeiro, certifique-se de ter instalada a versão mais recente do kernel disponível para a sua distribuição, assim como as versões correspondentes dos pacotes que contêm o seu código-fonte:

1
# zypper in kernel-default kernel-default-devel kernel-macros kernel-syms

Se o zypper te orientar a reiniciar o computador, faça isso antes de continuar.

Depois, instale os programas que vamos precisar, o DKMS e o Git:

1
# zypper in dkms git

Por fim, baixe, compile e instale o driver Xpad (faça isso como root):

1
2
# git clone https://github.com/paroj/xpad.git /usr/src/xpad-0.4
# dkms install -m xpad -v 0.4

Não é necessário reiniciar o computador.

Conectando o controle

Plugue o receptor em uma porta USB livre do computador.

Se você executar o comando lsusb, perceberá um dispositivo novo de ID 045e:02a9:

1
2
3
4
$ lsusb
[...]
Bus 002 Device 008: ID 045e:02a9 Microsoft Corp.
[...]

Se você tiver um Xbox 360 por perto, recomendo desligá-lo e desconectá-lo da energia. O passo a seguir pode fazer com que ele ligue sem necessidade.

  1. No controle sem fio, pressione e segure o botão Guia (guide) até que ele ligue
  2. No receptor, pressione e solte o botão de conexão (o único botão que ele tem), a luz dele começa a piscar
  3. No controle sem fio, pressione e solte o botão de conexão, na parte de cima, a luz dele começa a piscar
  4. Ambas as luzes deixam de piscar quando o controle se conecta ao receptor. A luz fixa acesa no controle passa a indicar sua posição (uma de 4 possíveis).

Para conectar mais controles, siga esses 4 passos novamente. Em tese, você pode conectar até 4 controles (eu, particularmente, só testei até 2).

Testando o controle

Provavelmente a forma mais fácil de testar o controle é abrir o navegador e acessar o site gamepad-tester.com. Pressione um botão no controle para começar o teste:

Mexa os eixos e aperte os botões e confira a animação na tela.

Você também pode instalar um programa no seu computador para fazer o teste, o jstest-gtk.

Baixe o código-fonte do programa usando o Git:

1
2
$ git clone https://gitlab.com/jstest-gtk/jstest-gtk.git
$ cd jstest-gtk

Instale os programas necessários para compilá-lo:

1
# zypper in cmake gcc-c++ gtkmm3-devel libsigc++2-devel

Então, compile-o:

1
2
3
4
$ mkdir build
$ cd build
$ cmake ..
$ make

Ao final, você pode iniciá-lo executando:

1
$ ./jstest-gtk

Eis o que aparece com apenas um controle conectado:

Selecione o controle na lista e clique em Propriedades.

Mexa os eixos e aperte os botões e confira a animação na tela:

Se você conectar o segundo controle e clicar em Atualizar, ele aparece na lista:

Usando o controle

Pronto, agora é só usar o controle!

O RetroArch e o PCSX2 devem detectar e configurar o controle automaticamente.

No Snes 9x, é preciso configurar o controle conforme as instruções do nosso tutorial.

Para usar o controle em outros jogos, confira as instruções de cada jogo.

Have a lot of fun… (Divirta-se bastante…)

Referências

Além das páginas cujos links aparecem ao longo do texto, eu consultei também estas:

Gostou? Que tal compartilhar?

Me paga um café?
Se você gostou muito, se foi muito útil pra você, será que vale um café? Se quiser, você pode "me pagar um café" pelo PayPal ou contribuir com o projeto de outras formas.

Comentários

Sobre

O Projeto Linux Kamarada visa divulgar e promover o Linux como um sistema operacional robusto, seguro, versátil e fácil de usar, adequado para o uso diário seja em casa, no trabalho ou no servidor. Os focos do projeto são principalmente distribuição e documentação.

Anúncios

Facebook

Autor