Procédure testée sur le modèle 1708.
Le pilote recommandé à partir d' avril 2024 avec Retropie est xpad. Il existe également un pilote en espace utilisateur xboxdrv mais certaines incompatibilités on été relevées avec les versions récentes du noyau Linux.
Sur Raspberry Pi, le module noyau ERTM Enhanced Re-Transmission Mode peut poser problème lorsque la manette Xbox One est connectée en bluetooth sur Retropie (l’appairage échoue systématiquement). Si c'est le cas, on peut le désactiver.
La manette doit être connectée par câble sur un Windows 10 ou supérieur pour recevoir les mise à jour du firmware.
On peut installer ou mettre à jour le pilote xpad à partir des sources depuis le menu de configuration Retropie
cd ~/RetroPie-Setup sudo ./retropie_setup.sh
Sélectionner l'option :
Manage packages > Manage driver packages > xpad > Install from sourcesAprès l'installation, le redémarrage est nécessaire.
Pour vérifier que le module est bien chargé :
lsmod | grep xpad
Si ce n'est pas le cas, charger manuellement le module
modprobe -i xpad
Vérifier que le pilote est associé à la manette.
sudo apt-get install xboxdrv # This command will allow the Xbox 360 controller to connect to your Retropie system. xboxdrv --detach-kernel-driver
Démarrer RetroPie et affecter les touches.
Si on utilise une manette sans fil, il faut l'appairer avec le système via Bluetooth.
# Start the Bluetooth service sudo systemctl start bluetooth # Pair the controller bluetoothctl [bluetooth]# power on [bluetooth]# agent on [bluetooth]# default-agent [bluetooth]# scan on # Wait for the controller to be detected [bluetooth]# pair XX:XX:XX:XX:XX:XX [bluetooth]# connect XX:XX:XX:XX:XX:XX
Le message Successfully Registered and Connected doit apparaître.
il ne reste qu'a définir le mapping des boutons: Depuis l’écran d'accueil, afficher le menu start (touche entrée)
Pour modifier le fichier de configuration .cfg de la manette, il faut connaître la désignation de chaque bouton. Pour cela on peut utiliser le programme jstest :
L'association des boutons est faite dans le fichier de configuration /opt/retropie/configs/fba/fba2x.cfg
Editer le fichier opt/retropie/configs/all/autostart.sh, ajouter la ligne suivante avant la commande
sudo bash -c 'echo 1 > /sys/module/bluetooth/parameters/disable_ertm'
Une fois le fichier modifié, redémarrer et configurer la manette en bluethooth:
Si la modification ne permet pas de rendre permanente la désactivation du mode ERTM, il est possible de modifier la configuration du module bluetooth via modprobe. Créer un fichier /etc/modprobe.d/bluetooth.conf contenant la directive suivante:
options bluetooth disable_ertm=Y
If you have an Xbox One 2016 pad that is not responding until the Right Trigger is pressed when you play ROMS you can do the following to fix the problem :
Go to “/retropie/configs/all/retroarch-joypads/xbox wireless controller.cfg” Find the line that says “input_r2_axis” and change the number in quotes to +4 (input_r2_axis = “+4”).
Now save the file and you are all fixed.
I hope this helps someone.
Lorsque le receiver est connecté il n'est pas correctement reconnu par le pilote:
lsusb
Bus 001 Device 008: ID 045e:02fe Microsoft Corp.
Seul ID Vendor est completé. Le pilote xpad ne liste pas le produit 02fe.
usb-devices
T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=03 Dev#= 8 Spd=480 MxCh= 0 D: Ver= 2.01 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=045e ProdID=02fe Rev=01.00 S: Manufacturer=Microsoft Inc. S: Product=XBOX ACC S: SerialNumber=270533 C: #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 8 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
La dernière lignre Driver=(none) confirme bien qu'aucun driver n'est associée au récepteur sans-fil.
Il existe un pilote en cours de développement https://github.com/medusalix/xow
cd /opt/retropie/supplementary git clone https://github.com/medusalix/xow xow cd xow make BUILD=RELEASE sudo make install sudo systemctl enable xow sudo systemctl start xow reboot
Le gamepad n'utilisant pas le contrôleur Bluetooth intégré, celui-ci peut être désactivé si aucun périphérique ne l'utilise. Voir wiki desactiver-controleur-bluetooth
# Lister les périphériques d'entrée reconnus par le système cat /proc/bus/input/devices
Dans la liste repérer la manette Xbox
I: Bus=0003 Vendor=045e Product=0b12 Version=0515
N: Name="Microsoft Xbox Series S|X Controller"
P: Phys=usb-0000:0f:00.0-4/input0
S: Sysfs=/devices/pci0000:00/0000:00:02.1/0000:03:00.0/0000:04:0c.0/0000:0f:00.0/usb3/3-4/3-4:1.0/input/input54
U: Uniq=
H: Handlers=kbd event9 js0
B: PROP=0
B: EV=20000b
B: KEY=7cdb000000000000 0 8000000000 0 0
B: ABS=3003f
B: FF=107030000 0
Pour tester et visualiser le mapping des bouton:
apt install joystick jstest /dev/input/js0
Sources :