[TUTO] Utiliser le sixaxis sous Linux

[TUTO]-Utiliser-le-sixaxis-sous-Linux

Si vous suivez ce tutoriel à la lettre, vous pourrez utiliser votre manette par l’intermédiaire de l’USB ou du Bluetooth sur un PC (ou mac) ou sur une PS3 sous Linux Ubuntu 7.10, car il faut une version du noyau au minimum à 2.6.21. Cliquez sur suite…

1. Installation des outils nécessaires à la prise en charge du sixaxis en tant que joystick


Tapez :

 

 sudo apt-get install joystick jscalibrator

Si vous n’avez pas de périphérique bluetooth (clé ou périphérique intégré), aller directement au 5ème point.

2. Installation du bluetooth et d’un utilitaire bluetooth

L’utilitaire va nous servir à observer les communications entre le sixaxis et l’ordinateur. Pour l’installer, tapez :

 

sudo apt-get install bluetooth bluez-hcidump bluez-gnome bluez-utils

Lorsque le programme vous demande si vous souhaiter continuer, répondez oui.

3. Compilation du programme sixpair.c

Ce programme va faire communiquer le sixaxis avec votre périphérique bluetooth (clé ou bluetooth intégré). Pour installer les fichiers dont le programme sixpair a besoin :

 

sudo apt-get install libusb-0.1-4 libusb-dev

Connectez le sixaxis à votre ordinateur avec un câble usb et tapez :

 

dmesg

et voici ce qu’il devrait y avoir dans la fenêtre du terminal :

 

[ 1353.124000] input: Sony PLAYSTATION(R)3 Controller as /class/input/input7
[ 1353.140000] input: USB HID v1.11 Joystick [Sony PLAYSTATION(R)3 Controller] on usb-0000:00:1d.0-1

Téléchargez sixpair.c :

 

 wget http://www.pabr.org/sixlinux/sixpair.c


et tapez :

 

 gcc -o sixpair sixpair.c -L/usr/lib -lusb

Pour vérifier que sixpair.c a bien été compilé, faites :

 

ls -l

vous devriez voir :

 

-rwxr-xr-x 1 ubuntu ubuntu    10419 2007-10-18 sixpair


Maintenant, on va lancer sixpair :

 

sudo ./sixpair


Vous devriez voir apparaître quelque chose comme :

 

 Current Bluetooth master: 00:00:00:00:00:02
Setting master bd_addr to 00:1b:63:4f:6a:be


Déconnectez le câble usb.

4. Reconnaissance bluetooth

Maintenant, on a besoin d’arrêter le service bluetooth pour le lancer à la main afin d’observer ce qui se passe :

 

sudo /etc/init.d/bluetooth stop

puis :

 

sudo hidd –server –nocheck -n

Notez que le –nocheck est seulement nécessaire à la première connexion. Si jamais vous avez l’erreur suivante:

 

Can’t listen on HID control channel: Address already in use

retapez la commande :

 

sudo /etc/init.d/bluetooth stop

Et si vous avez encore l’erreur, tapez :

 

sudo killall hcid

S’il n’y a pas eu d’erreur, vous devriez voir que le démon est bien lancé :

 

hidd[6079]: Bluetooth HID daemon

Dans un autre terminal, tapez :

 

sudo hcidump -t -V -x

pour observer les communications entre le sixaxis et votre ordinateur.

Appuyez sur le bouton PS du sixaxis. Voici ce qui devrait apparaître dans le 1er terminal :

 

hidd[6037]: New HID device 00:19:XX:XX:XX:XX (Sony Computer Entertainment Wireless Controller)

et dans le 2ème :

 

HCI sniffer – Bluetooth packet analyzer ver 1.39
device: hci0 snap_len: 1028 filter: 0xffffffff
2007-10-29 09:58:51.522109 > ACL data: handle 1 flags 0×02 dlen 17
L2CAP(d): cid 0×0041 len 13 [psm 0]
A1 01 00 00 00 00 00 84 88 73 7F 00 00
2007-10-29 09:58:51.534117 > ACL data: handle 1 flags 0×02 dlen 17
L2CAP(d): cid 0×0041 len 13 [psm 0]
A1 01 00 00 00 00 00 84 88 73 7F 00 00
2007-10-29 09:58:51.545124 > ACL data: handle 1 flags 0×02 dlen 17
L2CAP(d): cid 0×0041 len 13 [psm 0]
A1 01 00 00 00 00 00 84 88 73 7F 00 00

Si vous appuyez sur les différents boutons du sixaxis, vous verrez les valeurs affichées changer.

Faites un CTRL-C dans les deux fenêtres terminal. Il faut maintenant redémarrer le service bluetooth :

 

sudo /etc/init.d/bluetooth start


Si l’icône : n’apparaît pas dans votre tableau de bord (barre contenant les menus Applications, Système et l’heure), ajoutez-la en faisant un clic droit sur le tableau de bord, cliquez sur « Ajouter au tableau de bord… », puis cliquez sur le bouton « Lanceur d’applications ». « Dépliez » le menu Préférences en cliquant sur le triangle, puis sélectionner Préférences Bluetooth.

 

Normalement, vous devriez avoir cette fenêtre qui apparaît lorsque le bluetooth est activé et que vous avez appuyé sur le bouton PS :

 

Cliquez dessus et vous aurez la fenêtre suivante :

 


Cochez la case « Always grant access » ou « toujours autoriser », selon la langue de votre OS, puis validez en cliquant sur Yes.
Vous devez avoir la fenêtre suivante si vous faites un clic droit puis préférences sur l’icône bluetooth et sélectionnez input :


5. Tests en tant que joystick et calibration

Testez la reconnaissance du sixaxis en tant que joystick :

 

jstest /dev/input/js0

Si vous voyez quelque chose comme :

 

Driver version is 2.1.0.
Joystick (Sony Computer Entertainment Wireless Controller) has 28 axes (X, Y, Z, Rz, (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null))
and 19 buttons (Trigger, ThumbBtn, ThumbBtn2, TopBtn, TopBtn2, PinkieBtn, BaseBtn, BaseBtn2, BaseBtn3, BaseBtn4, BaseBtn5, BaseBtn6, BtnDead, BtnA, BtnB, BtnC, BtnX, BtnY, BtnZ).
Testing … (interrupt to exit)
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0  6:     0  7:     0  8:     0  9:     0 10:     0 11:     0 12:     0 13:     0 14:     0 15:     0 16:     0 17:     0 18:     0 19:     0 20:     0 21:     0 22:     0 23:     0 24:     0 25:     0 26:     0 27:     0 Buttons:  0:off  1:off  2:off  3:off  4:off  5:off  6:off  7:off

C’est bon. Vous pouvez passer à la calibration :

 

sudo jscalibrator


Après avoir cliqué sur le bouton Calibrate, appuyez sur le bouton PS du sixaxis pour qu’il soit bien détecté, puis procédez à la calibration.


6. Reconnaissance du sixaxis par la PS3

Vous aurez sûrement besoin de votre sixaxis pour vous défouler sur votre PS3. Pour qu’il soit de nouveau reconnu par la console, branchez-le avec le câble usb et appuyez sur le bouton PS.

Nota Bene : j’ai d’abord testé ce tuto dans une machine virtuelle (vmware), mais je ne suis jamais parvenu à calibrer le sixaxis, jscalibrator ne reconnait pas le sixaxis. Par contre, en essayant avec une version de Ubuntu Live CD, cela a fonctionné. Donc évitez de faire le tuto sous une machine virtuelle…