Cette page vous permet de faire fonctionner une manette de jeu sous Ubuntu.
Pour commencer, branchez votre manette. Dans 50 % des cas, la manette est auto-détectée, surtout si elle est en USB (si c'est une manette à port jeu, un redémarrage de l'ordinateur avec la manette branchée sera nécessaire pour le savoir). Vous allez donc déjà tester cela. Si cela ne marche pas, reportez-vous à la suite.
Sachez aussi que la plupart des applications utilisent leur propre algorithme pour la détection des manettes (même s'il y a tout de même 2 API dominantes : Linux et SDL). Ce n'est pas tout à fait comme MS Windows où il y a un seul outil centralisé qui gère la manette et ses propriétés (et où les jeux utilisent ces données-là).
Depuis Ubuntu 9.04 (noyau 2.6.28), le retour de force est supporté en standard. Cela concerne un nombre limité de joysticks et volants. La liste est la suivante (d'après le source Linux/drivers/HID/KConfig 2.6.30 ainsi que http://sourceforge.net/apps/mediawiki/libff/index.php?title=SupportedDevices) :
Pour tester le retour de force sur un joystick, il faut utiliser les outils ff-utils (nécessite le paquet libsdl1.2-dev).
Nous allons vous présenter ici les différentes méthodes pour calibrer (mais surtout tester) votre manette de jeu.
Installez le paquet jstest-gtk puis calibrez la manette de jeu avec la commande :
jstest-gtk
Pour tester votre manette tapez :
sudo cat /dev/input/js0
Si vous voyez des signes bizarre qui bougent selon les boutons appuyé, c'est que ça doit marcher !
Vous pouvez également calibrer et tester votre manette grâce aux programmes jscal/jstest. Joystick est un programme pour calibrer la manette en mode console.
La manette n'est pas détectée ? Vous venez de brancher votre manette et ne voulez pas redémarrer votre ordinateur ? OK !
Dans un terminal (une console) :
cd /dev/input
sudo MAKEDEV js
Les manettes demandent un certains nombre de "Pilotes". Sous Ubuntu, ce sont des modules qui doivent être chargé avec le noyau linux.
Dans un premier temps, nous allons le faire manuellement. Si tout marche, on va modifier certains fichiers afin que tout soit fait au démarrage de l'ordinateur.
Dans un terminal (une console) charger en mémoire les pilotes requis selon votre manette.
Par exemple, pour une SideWinder GamePad (/!\ cf plus bas pour connaître les bons modules !! /!\) :
sudo modprobe joydev ## Pilote pour les manettes de jeu sudo modprobe 'module correspondant à votre port jeu' ## voir en bas pour connaître le bon module (pour les cartes son non listées il est possible que ce soit ns558 sudo modprobe 'le module de votre manette' ## voir en bas pour connaître le bon module
À tout moment vous pouvez voir les modules chargés avec la commande :
lsmod lsmod | grep gameport ## pour n'afficher que les lignes contenant "gameport"
Pour tester si le tout fonctionne essayez donc de calibrer votre manette :
Calibration (Ancre)
Si vous avez réussi la calibration de la manette c'est que vous avez chargé les bons pilotes. Passez à la section suivante.
Si vous avez eu un message d'erreur et n'avez pas réussi la calibration de la manette vous devez regarder le reste du présent document pour y trouver les bons pilotes.
Rappel : Pour décharger un module, il faut utiliser la commande modprobe -r (remove) :
sudo modprobe -r 'le module de votre manette'
Pour cela, il faut éditer le fichier de configuration "/etc/modules". Ce fichier « modules » regroupe une partie des pilotes à charger avec votre noyau Linux.
Ajoutez à la fin du fichier, le texte suivant :
## Pilotes de manette de jeu (joystick) joydev ## Pilote pour les manettes de jeu 'module correspondant à votre port jeu' ## voir en bas pour connaître le bon module (pour les cartes son non listées il est possible que ce soit ns558 'le module de votre manette' ## voir en bas pour connaître le bon module
Cela donne un fichier /etc/modules
qui devrait ressembler à ceci :
# /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. lp ## Pilotes de souris psmouse mousedev ## Pilotes de carte de son ALSA Ensoniq ES1371 AudioPCI-97 alias snd-card-0 snd-ens1371 below snd-es1371 snd-seq-device ## Optionnel, pour les séquenceur MIDI snd-seq-midi ## Optionnel, pour les séquenceur MIDI ## Pilotes de manette de jeu (joystick) joydev ## Pilote pour les manettes de jeu ns558 ## Pilote pour le port jeu sidewinder ## Pilote spécifique pour les manette MS-SideWinder
En plus de cela, vous devez créer ou modifier le fichier /etc/modules.conf, pour y ajouter les lignes suivantes :
alias js0 input above input joydev 'module correspondant à votre port jeu' 'le module de votre manette'
Enregistrez les modifications puis redémarrez votre ordinateur.
Si vous avez une carte son à base de chipset ens1371 (Ex. : Sounblaster 64 et 128), une petite manipulation préliminaire s'impose.
Tout d'abord, vérifier le modèle de votre carte son : dans une console tapez
lsmod | grep snd_ens1371
Si vous avez quelque chose, c'est bon, continuez, sinon, vous avez une autre carte son. (Mais vous pouvez tout de même tenter de continuer en remplaçant dans ce qui suit « joystick_port=1 » par « joystick=1 » ou « joystick » et en adaptant le nom du pilote de votre carte son.)
Éditez le fichier /etc/modprobe.d/options et rajoutez-y la ligne :
options snd_ens1371 joystick_port=1
Redémarrez, et refaites le tuto depuis le début.
(Merci PierreR)
Si vous avez une carte son intégrée à un chipset Via (ex. : Via-PT800 ou n'importe quel autre chipset de cette marque ), et que vous n'avez pas réussi à faire marcher votre joystick, une petite manipulation préliminaire s'impose.
Tout d'abord, vérifier le modèle de votre carte son : dans une console tapez
lsmod | grep snd_via82xx
Si vous obtenez quelque chose en retour, c'est bon continuez, vous avez bien une carte son Via.
Éditez le fichier /etc/modprobe.d/options et rajoutez-y la ligne :
options snd_via82xx joystick=1
Redémarrez, et refaites le tuto depuis le début.
(récupéré de l'ancienne page)
Apparemment, là aussi il faut activer le port son.
Donc, dans /etc/modules.conf ajoutez :
above snd-trident snd-pcm-oss alias sound-slot-0 trident alias js0 input above input joydev pcigame analog adi
sudo modprobe ns558
sudo modprobe cs461x
sudo modprobe pcigame
sudo modprobe emu10k1-gp
sudo modprobe gameport
Ce pilote marche bien avec les manettes bas de gamme :
sudo modprobe analog
sudo modprobe sidewinder sudo modprobe analog ## A réserver à la gamme joystick
sudo modprobe analog sudo modprobe sidewinder sudo modprobe iforce ## Pilote pour le retour de force sudo modprobe evdev ## Pilote pour "Input driver event char devices"
sudo modprobe adi
sudo modprobe a3d
sudo modprobe gf2k
sudo modprobe grip
sudo modprobe interact
sudo modprobe tmdc
sudo modprobe guillemot sudo modprobe analog ## A verifier sudo modprobe iforce ## A verifier
Pensez aussi au bouton qui active/désactive les mini-sticks de cette manette.
À partir de Ubuntu 8.04 "Hardy Heron", la manette fonctionne nativement et directement dès qu'on la branche (la led supérieure gauche devrait clignoter), complètement plug & play
À partir d'Ubuntu 20.04, la manette est prise en charge nativement par Ubuntu, mais ne fonctionne pas, à cause de son firmware. La seule et unique solution est de mettre à jour le firmware de la manette sous Windows. Sous Windows, il faut ouvrir le Microsoft Store, installer l'appli Xbox Accessories. Déconnecter la manette, ouvrir l'appli Xbox Accessories puis brancher la manette et mettre à jour le firmware. Il faut une connexion Internet. Ensuite, la manette fonctionnera parfaitement sous Ubuntu et le SteamDeck.
(Inspiré par cet article)
Si l'auto détection ne fonctionne pas (cas très rare !)…
sudo modprobe usbhid sudo modprobe joydev
Maintenant, si vous branchez votre manette (au cas ou vous ne l'auriez pas déjà fait) et testez-la.
Il ne vous restera plus qu'à mettre usbhid
et joydev
dans /etc/modules comme indiqué plus haut.
Pour obtenir une liste complète des modules, vous pouvez taper modprobe -l
Vous pouvez aussi installer le paquet modconf.
Lancez ensuite modconf en sudo (en ayant préalablement agrandi la fenêtre) :
sudo modconf
Vous atterrirez sur une liste COMPLÈTE de tous les modules disponibles. Rendez-vous dans le dossier joystick, et vous verrez tous les modules joystick possibles et inimaginables !
Que ce soit avec kcontrol ou jscal, on vous détecte un bouton qui n'existe pas et qui est enfoncé par défaut ? Suivez ceci:
Voir aussi cette page pour des informations à jour.
pour désactiver le 9ème bouton par exemple.
La dernière commande donne la valeur maximum 511 au bouton 9 pour le désactiver (256 étant le minimum).
Concernant la signification des nombres, le 3 correspond aux nombres d'axes, donc 3 pour accélération, frein et gauche/droite. Le 9 correspond au nombre de boutons et les nombres qui suivent à leurs valeurs par défaut.
Il peut arriver qu'un module non-désiré se charge automatiquement au démarrage de l'ordinateur. L'exemple le plus fréquent est le module "analog"
, qui n'est pas nécessaire pour toutes les manettes. Il faut donc le "black-lister" :
Pour les versions avant Lucid: modifiez le fichier /etc/modprobe.d/blacklist Depuis Ubuntu Lucid: modifiez le fichier /etc/modprobe.d/blacklist.conf
Et ajouter une ligne :
# analog module blacklist analog
Enregistrez et quittez.
Vous devez surement être sur Ubuntu ou Xubuntu :)
Vos directions ont peut-être une amplitude de -1/+1. Le fait est que la plupart des développeurs se basent sur des axes avec des amplitudes de -32000/+32000, et ce, quelle que soit votre manette.
Il n'y a alors pas d'autres choix que d'installer le centre de contrôle KDE :
sudo apt-get install kcontrol
Rendez-vous dans la catégorie joystick et calibrer tout cela !!
Ca marche aussi avec joystick via jscal et jstest (si vous savez utiliser le mode console) :
jscal -c /dev/input/js0
Pour les jeux et également les émulateurs type GFCE, il existe une solution permettant de programmer votre manette de jeux en lui assignant certaines touches du clavier, voir les logiciels ci-dessous.
QJoyPad permet d'assigner des touches du clavier à votre manette.
antimicrox Un peu plus évolué que Qjoypad car il permet les combinaisons de touches complexes et n'a pas le souci de la limite des identifiants des touches.
Erreur de paragraphe ou de nom…
Pour cela téléchargez le paquet rejoystick (une recherche google vous permettra de le trouver sans problème)ou télécharger le paquet à cette adresse : https://sourceforge.net/projects/rejoystick/ Le paquet ne nécessite aucune dépendance, mais n'est pas présent dans les dépôts d'Ubuntu.
Une fois installé, utilisez votre console :
rejoystick
le programme est en anglais et s'utilise en mode ligne de commande. Pour débuter choisissez une touche du clavier qui une fois pressée indiquera au programme que l'assignation des touches est terminée (ex : echap). Ensuite, le programme vous demande de choisir une touche du clavier. Pressez une touche au choix. Ensuite, le programme vous demande de choisir une touche de la mannette de jeu. Par exemple : la touche du clavier A correspond au bouton 1 de ma manette de jeu. Répetez l'opération pour toutes les touches de la manette et les directions. Puis quitter le programme (echap dans l'exemple).
Dans la console, tapez ensuite rejoystick -d. Le programme se lance, fermez la console, démarrez votre jeu, et configurer l'interface de jeu avec le choix de touches du clavier auparavant effectué…et…une fois dans le jeu, votre joystick fonctionne.
Attention : ce programme ne fonctionne que si votre manette est reconnue initialement par le système. Avantage, le programme rejoystick permet de savoir si le système reconnaît votre manette !
Pour éventuellement reprogrammer la manette utiliser la commande :
rejoystick -readkeys
la commande :
rejoystick --help
vous donnera toutes les indications pour créer et sauvegarder des profils de programmation pour vos jeux favoris !
Jojsticken est le successeur de rejoystick puisqu'il est développé par le même auteur que ce dernier.
Site officiel : http://jojsticken.sourceforge.net/
L'application est en java et est par conséquent multi-plateforme.
Probablement obsolète, mais utile éventuellement pour des vielles version d'ubuntu (comme la 12.04). Lien officiel
Modèle | Fonctionne ou pas | Version ubuntu | Info/Liens |
---|---|---|---|
Logitech Gamepad F310 | Fonctionne, juste un axe et une gâchette à inverser avec jstest-gtk | Ubuntu 12.10 | https://forum.ubuntu-fr.org/viewtopic.php?pid=4655791 |
Logitech Precision | Out-of-the-box! | Ubuntu 12.04 | 8 boutons réglables + 1 axe avec jstest-gtk |
Speedlink Strike (SL-6535-SSV-01) | Out-of-the-box! | Ubuntu 11.04 | https://www.speedlink.com/?p=2&cat=4132&pid=23398&paus=1 |
Contributeurs : YoBoY, Ner0lph, smon, L'ami René (Mise en page)+(Autres pages en lien avec les sujets), Antonin_Morel, sacrediou, jeanf, adam0509, Fabien26, d10g3n, alexisj