Ceci est une ancienne révision du document !



Paddle x360 for Windows sur Ubuntu

Microsoft a au moins un mérite, c'est d'avoir conçu le meilleur paddle jamais réalisé. Outre le fait d'être la copie exacte de la manette de la dernière console de Microsoft, le « Xbox360 Controller for Windows » (c'est son nom) dispose de nombreux atouts : une disposition des boutons proches de la Playstation et de la Snes garantissant d'excellentes sensations de jeu, un design agréable offrant une ergonomie remarquable, un joystick placé à la place de la traditionnelle croix multidirectionnelle offrant de nombreuses perspectives de commandes analogiques et enfin, la clef USB peut être retirée et la manette peut être placé sur la dernière console de Microsoft : la Xbox360.

Manette filaire

La manette filaire Microsoft Xbox 360 est reconnue nativement donc utilisable directement.

Manette sans fil

En ce qui concerne la versions sans fil il vous faudra procéder aux modifications listés ci dessous.

À noter que le pilote « Xpad » intégré au noyau en version 4.4 fonctionne très bien pour les manettes sans fils et son récepteur à partir de Ubuntu 16.04 Xenial Xerus (et dérivés) !

Il ne vous est donc pas nécessaire d'installer le pilote « xboxdrv » si vous n'en avez pas l'utilité.

Pour débuter, il convient de blacklister le préchargement du driver « Xpad » gérant la manette Xbox 360 et d'activer le driver alternatif nommé « XboxDRV ». Vous pouvez installer ce dernier en installant le paquet xboxdrv.

Pour une modification temporaire jusqu'au prochain redémarrage

  1. décharger le module xpad :
    sudo rmmod xpad
  2. charger le module xboxdrv :
    sudo xboxdrv --quiet 
  3. les leds vertes de votre manette vont alors se stabiliser sur une seule position, en fonction que vous soyez le premier, second, troisième ou quatrième joueur, tout comme sur Xbox360 ou sous Windows ; vous pourrez alors l'utiliser tel que possible avec une manette filaire.

Pour une modification permanente via une procédure automatisée lors du démarrage

Ouvrez le fichier de configuration /etc/rc.local qui permet de lancer automatiquement en tant qu'administrateur (root) des commandes au démarrage du système. Puis, juste avant la ligne « exit 0 », copiez collez-y :

rmmod xpad
xboxdrv

Puis enregistrez les modifications. Au prochain redémarrage, vos manettes Xbox 360 sans fil seront détectées sans nécessiter d'autres manipulations.

À noter que ce pilote alternatif toujours en développement1) offre d'avantage de fonctionnalités que xpad, il prend également en charge les vibrations, le micro casque, et le chatpad, mais sur manette filaire USB uniquement pour le moment car il n'est pas terminé.

Lorsqu'il sera complet, il finira sans doute par être intégré directement dans les distributions en lieu et place du driver Xpad.

Avec RetroArch

Il n'y a rien à faire, la manette sans fil étant reconnue immédiatement. Il ne faut surtout pas charger xboxdrv qui ferait planter RetroArch.

  • Si vous utilisez la manette 360 filaire, ce qui suit est inutile depuis Ubuntu 8.04 LTS car utilisable directement.
  • Si vous utilisez la manette 360 sans fil avec une versions antérieur d'Ubuntu 12.04 LTS vous pourriez en avoir besoin.
  • Il semble aussi que cette marche à suivre soit éventuellement intéressante pour les possesseurs de la manette Logitech Chillstream.

Pour commencer

Avant d' effectuer toute manipulation, il faut installez les paquets make joystick jscalibrator xserver-xorg-input-joystick ainsi que le paquet linux-headers-`uname -r` qui dépendra de la version du noyau installé sur votre machine.

si vous êtes sous Intrepid, normalement votre manette est directement reconnu mais… mais votre curseur reagit anormalement ? direction la fin de cette doc.

Installation en 6 points:

Premier point

Tout d'abord, il faut créer un dossier nommé « xpad360 » dans votre répertoire personnel. Pour cela, il existe deux solutions. La première, et la plus simple, est d' ouvrir un Terminal (Applications > Accessoires > Terminal) et d'y entrer la commande suivante :

mkdir ~/xpad360

La deuxième méthode consiste à ouvrir le gestionnaire Nautilus, se rendre dans votre répertoire personnel, de faire un clic droit et « Créer un dossier ». Il ne vous reste plus qu'à le nommer « xpad360 ».

Deuxième Point

Il faut ensuite télécharger deux petits fichiers nommés « xpad.c » et « xpad.h ». Pour cela, ouvrez un Terminal, et entrez les commandes suivantes :

wget http://xbox-linux.cvs.sourceforge.net/*checkout*/xbox-linux/kernel-2.6/drivers/usb/input/xpad.c
wget http://xbox-linux.cvs.sourceforge.net/*checkout*/xbox-linux/kernel-2.6/drivers/usb/input/xpad.h

Une fois ces deux fichiers téléchargés, déplacez les dans votre dossier « xpad360 ».

Si votre manette est une Logitech Chillstream (Ces fichiers fonctionnent aussi avec un pad xbox 360)

Télécharger les fichiers xpad modifiés pour les versions inferieures à Jaunty (9.04) :

wget http://fabiengb.free.fr/xpad/xpad.c
wget http://fabiengb.free.fr/xpad/xpad.h

Pour Jaunty ou supérieure :

wget http://fabiengb.free.fr/xpad/jaunty/xpad.c
wget http://fabiengb.free.fr/xpad/jaunty/xpad.h

Troisième Point

Téléchargez le Makefile :

cd ~/xpad360
wget http://fabiengb.free.fr/xpad/Makefile

Quatrième Point

Dans un Terminal, faites les manipulations suivantes :

make

Cette commande va créer le module xpad360.

Cinquième Point

Il nous reste maintenant à installer le module dans le noyau Linux, puis à charger le module en mémoire :

sudo make install

Il est préférable d'indiquer au système de charger le module au démarrage. Pour cela, éditez le fichier /etc/modules :

Ouvrez le fichier /etc/modules.

et ajoutez en fin de fichier une nouvelle ligne contenant le nom du module : xpad.

ATTENTION ! : Cette étape est à renouveler à chaque mise à jour de votre noyau Linux ! A moins que vous ne souhaitiez plus utiliser votre manette fétiche…
ATTENTION [2] ! : Si vous changez complètement de noyau Linux, il faudra refaire les points 4 et 5 !

Dernier Point

Voilà ! Vous n' avez plus qu' à brancher votre paddle dans un port USB de votre machine pour vous apercevoir que sa LED centrale ne clignote plus : gage d' un fonctionnement immédiat de vos manipulations. Il ne vous reste plus qu' à profiter de votre engin sur les meilleurs jeux destinés à l' OS Ubuntu !

N.B Sous Intrepid, il est possible que votre manette se transforme en "souris".Pour régler ce problème, exécutez la commande suivante :

xinput list
  • Manette filiaire :

Trouver le numéro ID de votre manette Xbox 360 puis :

xinput set-int-prop LE_NUMÉRO_ID 'Device Enabled' 32 0

La LED centrale ne clignote normalement plus et la manette fonctionne a nouveau.

  • Manette sans fil

Trouver les 4 numéro ID (bah oui on peux brancher 4 manettes donc 4 Id differents) de votre adaptateur sans fil Xbox 360 puis mettez les à la place de LE_NUMÉRO_ID dans ce script :

#!/bin/bash

# Xbug360 v0.1
## script qui sert a "connecter" correctement votre manette sans fil Xbox360 sous Intrepid
### Lancez le script, branchez votre adapteur sans fil, appuyez sur Entrée ou Echap

cd /dev/input

zenity --info --window-icon="/usr/share/icons/gnome/scalable/devices/joystick.svg" --title="Xbug360" --text=" Brancher la manette..."

for i in `find . -name "js*"`

        do

xinput set-int-prop LE_NUMÉRO_ID1 'Device Enabled' 32 0 | xinput set-int-prop LE_NUMÉRO_ID2 'Device Enabled' 32 0 | xinput set-int-prop LE_NUMÉRO_ID3 'Device Enabled' 32 0 | xinput set-int-prop LE_NUMÉRO_ID4 'Device Enabled' 32 0

	done

exit

ps: Il faut lancer le script avant de brancher l'adaptateur sans fil.

La commande "xinput set-int-prop" est dépréciée, préférez la commande :

 xinput set-prop LE_NUMÉRO_ID 'Device Enabled' 0

Ou si vous tenez absolument à préciser :

 xinput set-prop --type=int --format=32 LE_NUMÉRO_ID 'Device Enabled' 0

Contributeurs : Ch3mist, Tk62, fabiengb.


1)
par rétro-ingénierie car Microsoft ne fourni pas les spécifications, pour l'utilisation sur d'autres systèmes que Windows, des manettes Xbox 360
  • paddle_x360_for_windows_sur_ubuntu.1471210991.txt.gz
  • Dernière modification: Le 14/08/2016, 23:43
  • par Shinikio