Joystick sous Linux

17 Sep. 2006
Auteur : kournikola
Responsable : TrustRobot
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
Comme de nombreux utilisateurs, vous disposez ou souhaitez acquérir un joystick. Le problème c'est que votre joystick n'est pas reconnu à l'amorçage de la machine, surtout si votre distribution n'est pas récente ou qu'elle n'est pas très "userfriendly". Si vous avez hochez la tête en signe d'approbation à la lecture de cette brève introduction, cet article est pour vous, car je vais y présenter la configuration d'un joystick sur port USB ou jeu (de la carte son) sous Linux. Loin d'être exhaustif, cet article s'appuie sur la configuration d'un Microsoft Sidewinder sur USB et sur port Jeu. Je pense qu'à quelques modules près, il devrait également convenir à votre joystick.

1. Joystick sur USB :

1.1 Configuration :

Pour faire fonctionner votre joystick USB, il faut évidemment que l'USB soit configuré chez vous. Je ne le détaille pas ici, c'est fait automatiquement sur la plus part des distributions, celles qui ne le font pas sont généralement réservées à des utilisateurs avertis, qui savent le faire. Dans la suite, je suppose que l'USB est configuré chez vous et que le joystick est branché sur un port USB. Pour que votre Joystick soit reconnu, assurez-vous d'avoir les options suivantes activées en module (option M) ou en dur (option Y) dans votre noyau :
[M] USB Joystick and Gamepad support
[M] USB Human Interface Device
[M] (HID) support in USB support
[M] Joystick support in Input core support.
[M] Microsoft Sidewinder digital joysticks and gamepads.
Si vous utilisez une Mandriva ou une RedHat vous n'avez rien à modifier c'est géré. Pour les autres, il faudra peut-êtrerecompiler. Si vous devez recompiler, mettez les options ci-dessus en module. Quand vous êtes prêt, chargez simplement les modules nécessaires en tapant les commandes qui suivent en root dans un terminal :
/sbin/modprobe input /sbin/modprobe hid /sbin/modprobe joydev /sbin/modprobe sidewinder
Il se peut que certains modules soient déjà chargés notamment input et hid, tapez : lsmod pour vérifier. Inutile de charger des modules déjà chargés. Les modules chargés, il devrait se créer de nouvelles entrées dans /dev/input/. Pour vérifier, tapez :
ls /dev/input/js0
Si vous obteniez un message d'erreur, c'est que ces entrées n'ont pas été créées, vous pouvez les créer vous-même par :
mknod /dev/input/js0 c 13 0 mknod /dev/input/js1 c 13 1 mknod /dev/input/js2 c 13 2 mknod /dev/input/js3 c 13 3
Voilà, à ce stade votre joystick devrait être utilisable. Les modules input, hid et joydev sont génériques, vous devrez les utiliser pour tous les joysticks. Seuls les utilisateurs de Sidewinder devront charger le module sidewinder. Pour certains joysticks il faudra charger un module spécifique (que j'ignore) en plus d'input, hid et joydev ce module jouera le rôle de sidewinder pour les Sidewinder. Lisez la doc sur le noyau !

1.2 chargement automatique des modules :

2. Joystick sur port Jeu :

2.1 Configuration du joystick :

Dans cette partie je vais supposer que vous ayez un Joystick branché sur le port jeu de votre carte son et que le port jeu de votre carte son soit reconnu. Pour ma part je dispose d'une Creative SBLive! (ça marche aussi pour les audigy), le module pour le port jeu de ces cartes est : emu10k1-gp. J'ignore le module correspondant à chaque port jeu de chaque carte son, en disposant et fonctionnant sous Linux, renseignez-vous et adaptez dans la suite. Pour que votre joystick fonctionne sous Linux, vous devez comme dit plus haut connaître le module correspondant au port jeu de votre carte son. Vous devez ensuite vous assurer d'avoir les options suivantes activée en module (option M) ou en dur (option Y) dans votre noyau :
[M] Joystick support in Input core support.
[M] Microsoft Sidewinder digital joysticks and gamepads.
Si vous utilisez une Mandriva ou une RedHat vous n'avez rien à modifier c'est géré. Pour les autres, il faudra peut-êtrerecompiler. Si vous devez recompiler, mettez les options ci-dessus en module. Quand vous êtes prêt, chargez simplement les modules nécessaires en tapant les commandes qui suivent en root dans un terminal :
/sbin/modprobe emu10k1-gp /sbin/modprobe joydev /sbin/modprobe sidewinder
Voilà, à ce stade votre joystick devrait être utilisable. Le module joydev est générique, vous devrez l'utiliser pour tous les joysticks. Le module emu10k1-gp est lié à votre carte son, adaptez ! Seuls les utilisateurs de Sidewinder devront charger sidewinder. Pour certains joysticks il faudra charger un module spécifique (que j'ignore) en plus de joydev et du module du port jeu de votre carte son. Ce module jouera le rôle de sidewinder pour les Sidewinder.

2.2 Chargement automatique des modules :