Utiliser une SIXAXIS de PS3 sous Linux

Avant de commencer, je tiens à préciser que ce tutoriel a été testé sur mon pc portable, qui ne dispose pas de module Bluetooth. Ce tutoriel vous indiquera comment utiliser la manette en mode USB. Plus tard, j’essaierai d’arriver au même résultat sur ma PS3, et via le Bluetooth; cela sera décrit dans un autre tutoriel… D’ici là, il faudra se contenter de cela!


Ce tutoriel s’applique à un PC sous Gentoo…

Ã?teindre la PS3

Quand j’ai commencé à essayer de faire fonctionner cette fichue manette, rien ne marchais… La manette était détectée, les infos étaient dans dmesg, mais quoi qu’il arrive, je ne reçevais aucun message de la manette. J’ai pour habitude de laisser ma PS3 allumée en permanence pour faire tourner Folding@Home en arrière plan. Et il s’avère que malgré que mon SIXAXIS était branché sur le port USB d emon pc portable, elle restait associée à ma PS3 en Bluetooth et n’envoyait aucun message par l’USB. Donc, si rien ne marche, vérifiez que votre PS3 est éteinte… (voir aussi les notes enbas de page)

Vérifier la configuration du kernel

Lancez

1
2
cd /usr/src/linux
make menuconfig

et vérifiez les points suivants:

Device Drivers -->
 Input Device Support -->
  <*> Joystick Interface
  <*> Event Interface
   [*] Joysticks
 USB Support -->
  <*> Support for Host-side USB
   [*] USB device filesystem
  <*> EHCI HCD (USB 2.0) support
  <*> OHCI HCD support
  <*> UHCI HCD (most Intel and VIA) support
  <*> USB Human Interface Device (full HID) support
   [*] HID input layer support

Si ces points n’étaient pas cochés comme ci-dessus, recompilez votre kernel et installez-le… J’ignore si c’est nécessaire ou pas, mais j’aurais tendance à redémarrer l’ordinateur après cette opération.

Installer joystick et jscalibrator

Le premier est tout simple…

1
emerge -va joystick

Pour le second, commencez par vous assurer que votre “USE” contient gtk (par exemple dans /etc/make.conf), et ensuite, lancez

1
emerge -va libjsw

Vérifiez la détection de la manette

Un affichage de dmesg devrait indiquer ceci:

1
2
input: Sony PLAYSTATION(R)3 Controller as /class/input/input13
input: USB HID v1.11 Joystick [Sony PLAYSTATION(R)3 Controller] on usb-0000:00:13.0-1

Vérifiez ensuite que /dev/input/js0 existe… Ou a défaut, /dev/js0. S’il existe, vérifiez que des messages sont reçus par un moyen simple:

1
cat /dev/js0

ce qui devrait afficher des caractères aléatoires, notament quand vous appuyez sur des boutons. Dernier test, via jstest… La commande est on ne peut plus simple:

1
jstest /dev/js0

Calibrer la manette

Lancez jscalibrator, éventuellement en lui passant le chemin /dev/js0. Dans l’interface, vous verrez à gauche un bouton “calibrate”. Cliquez-le, appuyez sur tous les boutons et déplacez les deux joysticks dans toutes les directions. Il est important de pousser assez fort sur tous les boutons pour une raison que j’expliquerai plus bas. Une fois que tous les “axes” ont été poussés, relâchez tous les boutons, et cliquez à nouveau sur le bouton “calibrate”. La barre d’état, en bas de l’application, commencera à enregistrer les infos… Utilisez enfin le menu “Calibration” et choisissez “Save”. Si vous avez lancé l’utilitaire en tant que root, copiez /root/.joystick dans le répertoire “home” de tous les utilisateurs…

Utilisation

Je ne vais pas indiquer tous les logiciels et comment paramétrer l’utilisation de la manette… Mais je vais tout de même donner une info assez importante. Certains logiciels (dont mPlayer entre autres) ont besoin du flag USE “joystick” pour implémenter l’utilisation d’une manette… Même certains jeux ont beson de ce flag. Pensez donc à ajouter “joystick” au USE dans votre /etc/make.conf

Dernières notes

La raison pour laquelle j’ai insisté sur le fait de pousser bien fort sur les boutons, c’est que presque tous les boutons de la SIXAXIS sont en vérité des “axes” en plus d’être de simples boutons. Pour être clair, la pression sur un bouton envoie deux informations:
- un “bit” disant si le bouton est pressé ou non,
- une valeur indiquant la pression exercée sur le bouton. Plus on pousse fort, plus la valeur est élevée…

Les informations de mouvement de la sixaxis ne sont pas détectés par jscalibrator. Je crains même que ces informations ne soient pas envoyées via l’USB. Il semblerait qu’un développeur japonnais ait réussi à capter les signaux de mouvement via USB. Il a développé un petit logiciel, en pascal, permettant d’afficher les informations de mouvement. Je n’ai pas pu tester ce programme vu que je n’ai pas de machine sous Windows sous la main, et Wine ne permet pas de traiter ce genre d’informations…

Au début du tutoriel, j’indique qu’il faut impérativement éteindre la PS3. C’est partiellement vrai. En fait, il est possible de faire prendre le contrôle de la manette par votre PC de la façon suivante:

  1. Appuyez la touche PS pour afficher le menu “manette” sur votre PS3.
  2. Dans ce menu, choisissez Ã?teindre la manette
  3. Connectez la manette en USB sur votre PC, et lancez-y le programme sixpair

Pour que cela fonctionne, il faut que votre PC soit équipé d’une antenne Bluetooth qui soit configurée.

Laisser un commentaire

Vous pouvez utiliser ces balises html : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

retaggr