Eu recentemente comprei um 8BitDo Ultimate 2 e um Machenike G5 Pro 🎮 pra usar no meu CachyOS.
O 8BitDo funcionou perfeito de primeira. O Machenike também… menos a vibração 😭 Via cabo funcionava, mas no dongle 2.4GHz ele se recusava a vibrar.
Comecei diagnosticando assim:
dmesg -w
Depois conectei o controle e percebi que ele entrava em:
2345:e02e
hid-generic
em vez de:
2345:e00b
xpad
Xbox 360 Controller for Windows
Também testei o force feedback:
sudo pacman -S linuxconsole
fftest /dev/input/eventXX
e recebia:
Function not implemented
ou seja: o Linux estava carregando hid-generic em vez do xpad, então não existia suporte real a rumble/vibração.
Encontrei a solução no reddit e consegui fazer funcionar.
Primeiro forcei o modo Xbox no controle:
- conectei via cabo USB
- liguei segurando
Home + A
Depois adicionei quirks USB temporários:
echo -n "2345:e00b:ik,2345:e02e:ik,2345:e02f:ik" | sudo tee /sys/module/usbcore/parameters/quirks
Criei uma regra udev:
Arquivo:
/etc/udev/rules.d/98-joystick.rules
Conteúdo:
ACTION=="add", ATTRS{idVendor}=="2345", ATTRS{idProduct}=="e02e", RUN+="/sbin/modprobe xpad", RUN+="/bin/sh -c 'echo 2345 e02e > /sys/bus/usb/drivers/xpad/new_id'"
Depois adicionei no GRUB:
Arquivo:
/etc/default/grub
Na linha GRUB_CMDLINE_LINUX_DEFAULT:
usbcore.quirks=2345:e00b:ik,2345:e02e:ik,2345:e02f:ik
Regenerei o grub:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Recarreguei o udev:
sudo udevadm control --reload-rules
sudo udevadm trigger
Depois disso:
- o controle virou
Xbox 360 Controller for Windows - o driver
xpadcarregou corretamente - a vibração passou a funcionar
- a Steam reconheceu normal
- o
fftestfinalmente detectou force feedback
Pra testar vibração:
fftest /dev/input/by-id/usb-MACHENIKE_Xbox_360_Controller_for_Windows_*-event-joystick
Talvez ajude alguém sofrendo com esse controle no Linux 😭