{{tag>ludique retrogaming retropie}}
====== Installer une manette XBox One sans fil =====
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.
A partir de l'image RetroPie 4.1, le pilote **xpad** et installé par défaut : l'installation manuelle n'est donc pas nécessaire.
===== A propos du module ERTM =====
Sur Raspberry Pi, le module noyau **ERTM** **E**nhanced **R**e-**T**ransmission **M**ode 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 [[#desactiver_le_module_ertm|désactiver]].
===== Mise à jour du firmware =====
La manette doit être connectée par câble sur un Windows 10 ou supérieur pour recevoir les mise à jour du firmware.
===== Xpad =====
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 sources''
Si l'installation a lieu sur un système utilisant l'UEFI avec Secure Boot, le script d'installation générera une nouvelle **Machine-Owner Key** (**MOK**). Cette clé devra être enrôlée dans le firmware lors du prochain démarrage. Pour cela un mot de passe devra être définit : il sera redemandé au prochain redémarrage.
Aprè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
:TODO_DOCUPDATE:
Vérifier que le pilote est associé à la manette.
===== Alternative : Installer le pilote xboxdrv =====
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.
===== Appairage en Bluetooth =====
Si on utilise une manette sans fil, il faut l'appairer avec le système via Bluetooth.
==== Sur un bureau gnome ====
==== Depuis la console ====
# 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
==== Depuis EmulationStation ====
* Menu Configuration
* Bluetooth
* Register and Connect to Bluetooth Device puis presser sur le bouton central Xbox
* Le périphrique apparait dans la liste apres quelques secondes
* Choisir le mode de sécurité DisplayYesNo
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)
* Configure input
===== Modifier l'association des boutons =====
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** :
===== Configuration boutons pour pifba =====
L'association des boutons est faite dans le fichier de configuration **/opt/retropie/configs/fba/fba2x.cfg**
===== Dépannages =====
==== Désactiver le module ERTM ====
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
==== Pas de réponse de la manette Xbox One ====
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 [[hardware:raspberry:desactiver-controleur-bluetooth]]
==== Comportement anormal des hotkeys ====
:TODO_DOCUPDATE:
* Environemment : Ubuntu 25.10 (questing)
* Manette : Xbox Wireless Controller
# 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 :
* https://www.baeldung.com/linux/drivers-associated-device
* https://retropie.org.uk/forum/topic/17314/hotkey-button-always-pressed/12
* https://www.kernel.org/doc/html/latest/input/devices/xpad.html
* https://www.reddit.com/r/RetroPie/comments/xpx76p/microsoft_xbox_360_pad_not_configured/
===== Références =====
* [[https://retropie.org.uk/docs/Xbox-360-Controller/|Documentation Retropie : Installation et paramétrage d'une manette Xbox 360 (retropie.org.uk) (en)]]
* [[https://retropie.org.uk/docs/RetroArch-Configuration/#hotkeys|Documentation Retropie : Les raccourcis ou hotkeys (retropie.org.uk) (en)]]
* https://techwiztime.com/guide/retropie-xbox-one-controller/
* https://www.youtube.com/watch?v=BHJGcABUG0Q
* https://retropie.org.uk/forum/topic/6198/xbox-one-controller-via-bluetooth/42
* https://pimylifeup.com/xbox-controllers-raspberry-pi/
* https://www.thegeekpub.com/16265/using-xbox-one-controllers-on-a-raspberry-pi/
* https://retropie.org.uk/forum/topic/14419/solved-2-xbox-ones-s-bluetooth-controllers-possible-xbox-one-controller-firmware-update
* https://retropie.org.uk/forum/topic/20854/xbox-one-pad-not-working-until-trigger-pressed-fix
* http://mattpilz.com/fix-for-xbox-one-wireless-adapter-not-working-in-windows-10-xbox-acc-driver/
* [[https://linuxvox.com/blog/linux-xbox-controller-driver/|Guide d'installation du pilote de manette Xbox (linuxvox.com) (en)]]
* [[https://retropie.org.uk/forum/topic/17314/hotkey-button-always-pressed/16|Problème manette : le bouton hotkey semble toujours pressé (retropie.org.uk) (en)]]
* [[https://mundowin.com/en/How-to-configure-Xbox-controller-in-Retropie/|Configurer la manette Xbox sur RetroPie (mundowin.com) (en)]]