O Fedora 19 é atual o suficiente para que a pilha bluetooth instalada venha com suporte a wiimote por padrão. Você pode conectar diretamente o wiimote como qualquer outro dispositivo bluetooth.
Emparelhamento básico
Se tudo funcionar bem, nenhum pino é necessário. No final do processo de emparelhamento, pode-se selecionar o wiimote como dispositivo de entrada no miniaplicativo bluetooth.
Dependendo do hardware, talvez algumas tentativas sejam necessárias primeiro (use o botão de reset dentro do compartimento da bateria) - um método é: depois que o computador 'vê' o hardware bluetooth, clique em conectar e pressione imediatamente 'reset' o dispositivo.
O símbolo bluetooth e / ou o menu de contexto mostram um emparelhamento bem-sucedido.
Com isso, apenas alguns botões funcionam (teclas para cima / para baixo / esquerda / direita, clique com o botão direito do mouse e espaço - é isso).
Assim, temos que configurar algum tipo de mapeamento.
Dependências necessárias
# yum install \
git gcc strace strace autoconf automake libtool systemd-devel ncurses-devel
xorg-x11-util-macros xorg-x11-proto-devel xorg-x11-server-devel
(o strace não é estritamente necessário, mas é útil verificar a permissão de problemas negados ao executar o xwiimote)
xwiimote
O repositório xwiimote contém a biblioteca básica do userspace que faz interface com o plug-in bluetooth-daemon e algumas ferramentas relacionadas.
Infelizmente, este software ainda não está empacotado para o Fedora.
Assim, temos que compilá-lo:
$ git clone https://github.com/dvdhrm/xwiimote.git
$ cd xwiimote
$ ./autogen.sh
$ ./configure --prefix=$HOME/local/xwiimote
$ make
$ make install
Alguns testes de hardware
$ ./xwiishow list
Listing connected Wii Remote devices:
Found device #1: /sys/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.0/bluetooth/hci0/hci0:11/0001:0002:0023.0032
End of device list
= > Emparelhamento funcionou, temos que corrigir as permissões para mais testes:
# chown root:juser /sys/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.0/bluetooth/hci0/hci0:11/0001:0002:0023.0032/leds/*/brightness
# chmod g+w /sys/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.0/bluetooth/hci0/hci0:11/0001:0002:0023.0032/leds/*/brightness
$ xinput --list
[..]
↳ Nintendo Wii Remote Accelerometer id=9 [slave keyboard (3)]
↳ Nintendo Wii Remote IR id=10 [slave keyboard (3)]
↳ Nintendo Wii Remote id=11 [slave keyboard (3)]
↳ Nintendo Wii Remote Extension id=12 [slave keyboard (3)]
↳ Nintendo Wii Remote Motion+ id=13 [slave keyboard (3)]
[..]
= > mais alguns ajustes de permissão:
# chown root:juser /dev/input/event1[0123] /dev/input/event9
# chmod g+w /dev/input/event1[0123] /dev/input/event9
(o repositório xiimote também contém uma regra do udev de amostra para configuração de permissão na conexão, mas eles são necessários apenas para acesso direto como no xwiishow)
Inicie uma interface ncurses para testar botões, sensores, calibragem, etc.:
$ ./xwiishow 1
(onde 1 é o primeiro dispositivo)
Configuração real do Xorg
Existe um módulo xinput2 que ainda não está disponível nos repositórios de pacotes do Fedora / Fusion.
$ cd ..
$ git clone https://github.com/dvdhrm/xf86-input-xwiimote.git
$ cd xf86-input-xwiimote
$ ./autogen.sh
$ PKG_CONFIG_PATH=$HOME/local/xwiimote/lib/pkgconfig ./configure --prefix=$HOME/local/xwiimote LDFLAGS="-L$HOME/local/xwiimote/lib -Wl,-R$HOME/local/xwiimote/lib"
$ make
$ make install
Verifique a configuração do caminho de tempo de execução:
$ ldd /home/gms/local/xwiimote/lib/xorg/modules/input/xwiimote_drv.so
(não deve exibir mensagens 'não encontradas')
Altere a configuração do Xorg para todo o sistema:
# cd /etc/X11/xorg.conf.d
# ln -s /home/juser/src/xf86-input-xwiimote/60-xorg-xwiimote.conf
# cd /usr/lib64/xorg/modules/input/
# ln -s /home/juser/local/xwiimote/lib/xorg/modules/input/xwiimote_drv.so
Efetue logout e reinicie o X.
Verifique através da ferramenta de linha de comando X xev
: todos os botões devem agora enviar códigos de chave reais.
Por exemplo, com meu hardware, os padrões são: enter, left / right / up / down, espaço, 1, 2, esc, volume +/-
(que são padrões bastante sensatos)
Misc
O barato clone wiimote também veio com uma extensão 'nunchuck', que não funciona fora da caixa com xiishow - YMMV.