Manette filaire Xbox 360 avec Ubuntu

manette-ubuntu

J’ai récemment fait l’acquisition d’une manette Xbox 360 filaire afin de remplacer ma manette PC vieillissante. Avant de me l’acheter je m’étais renseigné pour savoir si elle était supportée sur Ubuntu. Ubuntu-fr m’indiquant que ” La manette filaire Microsoft Xbox 360 est reconnue nativement donc utilisable directement”, j’ai donc sauté le pas. Pourquoi j’ai choisi cette manette et pas une autre, tout simplement car j’ai une Xbox 360 et que j’ai donc l’habitude de l’utiliser et surtout que pour 20€ (au moment de mon achat) pourquoi s’en priver.

Alors, au premier branchement, aucun problème. La manette est bien reconnue et la led se fixe sur la position 1. Mais après quelques essais de configuration, notamment pour l’émulateur de la Nintendo 64, les premiers problèmes sont apparus.

Le driver xpad qui gère la manette est installé de base dans Ubuntu. Ce driver permet bien d’utiliser la manette mais pas de la configurer ni de remapper les boutons. De plus, les boutons Lt , Rt et les touches directionnelles sont considérés comme des axes, et surtout le joystick droit est mal paramétré, seul l’axe horizontal fonctionne. Pour résoudre mon problème j’ai donc écumé plusieurs forum et j’ai concocté une solution en prenant plusieurs pistes ensemble. Ce n’est peut être pas la solution miracle, mais ça fonctionne.

Installation

D’abord, on va changer de driver et prendre xboxdrv ainsi que joystick qui nous permettra de vérifier notre configuration. Ce driver offre plus de fonctionnalités et prend en charge les vibrations et le micro casque.

sudo apt-get install xboxdrv joystick

Configuration

Comme xpad est lancé automatiquement à chaque démarrage, on va le blacklister afin que l’on puisse utiliser xboxdrv à la place.

sudo gedit /etc/modprobe.d/blacklist.conf

Dans le fichier qui vient de s’ouvrir, on tape “blacklist xpad” à la fin.

Maintenant, il faut que nous créions un script afin de lancer xboxdrv automatiquement avec :

sudo gedit /etc/init.d/xboxdrv-start.sh

et y inscrire le code suivant :

#!/bin/sh

xboxdrv --daemon --detach --pid-file /var/run/xboxdrv.pid --dbus disabled --trigger-as-button --dpad-as-button --deadzone 4000

Une petite explication s’impose :

  • trigger-as-button : permet d’utiliser les gâchettes (Lt er Rt) comme des boutons et non plus comme des axes.
  • dpad-as-button : pareil mais pour le pad directionnel
  • deadzone 4000 : permet d’avoir une zone morte plus importante autour des axes.

Chacun de ces paramètres peut bien sur être modifié à votre convenance.

Pour que le script se lance il faut le rendre exécutable et créer un lien pour qu’il soit prit en compte lors de chaque démarrage.

sudo chmod +x  /etc/init.d/xboxdrv-start.sh
sudo update-rc.d xboxdrv-start.sh defaults

Vérification

Maintenant, il ne reste plus qu’à redémarrer, sans que la manette soit branchée, afin de voir si tout fonctionne. Une fois que votre ordinateur est de nouveau prêt, branchez votre manette. La led doit se fixer sur la position 1.

Vous pouvez lancer joystick (jstest-gtk) et vérifiez que vous avez la configuration suivante :

Xbox Gamepad

 

Et voilà, vous pouvez jouer avec n’importe quels jeux avec cette configuration.

Pour aller plus loin

Un défaut de cette méthode, c’est le fait que chaque débranchement de la manette désactive le driver. Il faut donc le relancer à chaque fois. Pour cela je me suis créée un script nautilus que j’ai ensuite incorporé dans cairo-dock. L’avantage de cette astuce c’est que cela permet de créer des lanceurs différents selon l’utilisation que l’on souhaite faire de la manette.

Pour le script faites un :

sudo gedit ~/.local/share/nautilus/scripts/"Manette Xbox 360"

Puis inscrivez le script suivant :

#!/bin/bash
zenity --title="Manette Xbox 360" --password | sudo -S -s
sudo xboxdrv --daemon xboxdrv --daemon --detach --pid-file /var/run/xboxdrv.pid --dbus disabled --trigger-as-button --dpad-as-button --deadzone 4000

Maintenant il suffit d’indiquer le chemin de votre script dans cairo-dock pour l’avoir toujours à disposition ou bien de passer par le menu contextuel pour les scripts nautilus.

Manette

Vous aimerez aussi...

3 réponses

  1. Yvan dit :

    Bonjour,
    j’ai essayé de faire marcher xboxdrv, et du coup j’ai suivi pas à pas les étapes que tu décris. Mais au redémarrage ma manette Xbox ne fait que clignotter et ne se fixe sur aucune position, et elle n’est pas reconnue.
    Je ne sais pas si ça a un rapport, mais lorsque je vais voir ce qui se passe dans la configuration du système, tout les slots on l’air occupé par des wireless receiver.
    Si tu as une solution à ce problème, ça m’aiderait beaucoup, surtout que je n’arrive plus à revenir en arrière maintenant…

    Merci d’avance,

    Yvan

    • Vick dit :

      Bonjour,

      Le fait que tu as des “wireless receiver” me laisse penser que tu utilises une manette sans fil. Si c’est le cas, cette méthode ne fonctionnera pas car elle ne concerne que les manettes filaire.

      Si par contre tu utilises une manette filaire, il faut que ta manette soit débranchée avant de lancer ton pc. Une fois ta session ouverte tu peux brancher ta manette et ta led devrait se fixer ou bien tu peux passer par le script.

      Malheureusement, je sais par expérience que xboxdrv est plutôt capricieux et j’ai eu beaucoup de mal afin d’obtenir quelque chose qui tienne la route.

      Si par contre tu souhaites revenir en arrière, il suffit d’enlever xpad de la blacklist, de supprimer le script xboxdrv-start.sh de : /etc/init.d/xboxdrv-start.sh, puis de désinstaller xboxdrv.

      Je pense que tu as dû déjà regarder mais si tu suis la doc d’ubuntu tu devrais arriver au même résultat. Il faudra juste avant de jouer lancer une commande.

      • Yvan dit :

        Merci pour ta réponse !
        En fait c’est une manette filiaire que j’ai.
        Bon finalement je suis revenu en arrière, je n’ai pas réussi à faire marcher xboxdrv.
        Du coup j’ai lt et rt qui ne marchent pas, et certains jeux sur lesquels la manette n’est pas reconnue, mais c’est mieux que rien…
        Mais un de ces 4 je vais me faire un double boot avec steamOS, et j’ai naïvement la certitude que ça reglera tout mes problèmes :-p

        Les gamers sur linux en force !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*