Linux beherrscht über ein Dutzend verschiedener Joystick-Systeme und bietet neben dem üblichen analogen Game-Port sogar Treiber für exotische C64- und Amiga- Spieleknüppel.
Außerdem können USB-Joysticks problemlos eingesetzt werden (sofern die Distribution darauf vorbereitet ist, wie etwa SuSE und Mandrake). Mit dieser Bandbreite stellt das freie Betriebssystem sogar manchen kommerziellen Konkurrenten weit in den Schatten – der Powergamer muss derzeit einzig und allein auf das coole Force-Feedback verzichten.
Joystick-Module vorkompiliert
Die Inbetriebnahme eines Joysticks unter Linux ist leicht – wenn man erst die dahinterstehende Logik begriffen hat: Üblicherweise nutzen Spiele-Programm-Bibliotheken (wie etwa SDL) die angeschlossenen Steuerknüppel mit Hilfe der Gerätedateien /dev/js0 bis /dev/js3. Falls diese Schnittstellen nicht schon bei der Linux-Installation angelegt wurden, sorgt das Kommando mknod /dev/jsX c 15 X für Abhilfe (wobei X ein Platzhalter für die Zahlen 0 bis 3 ist).
Die Eingangs erwähnte Bandbreite unterstützter Geräte ist allerdings ein kleiner Nachteil, wenn es darum geht, das korrekte Kernel-Treiber-Modul für sein Eingabegerät auszuwählen. Bei vielen Distributionen liegen bereits alle Joystick-Module vorkompiliert und einsatzbereit im entsprechenden Treiberverzeichnis (z.B. /lib/modules/2.2.16/misc).
Die Qual der Wahl
Wer nicht zufällig eines der in Tabelle 1 angegebenen Spielerwerkzeuge besitzt, muss vor dessen Inbetriebnahme zunächst ausfindig machen, zu welchem Gerät es kompatibel ist. Weit verbreiteten sind Steuerknüppel für den analogen Game-Port (Classic PC analog). Das dazu passende Kernelmodul sollte zur Funktionskontrolle zunächst manuell mit modprobe joy-analog geladen werden (dazu muss man als root-Benutzer eingeloggt sein). Die erfolgreiche Initialisierung des Joysticks kann mit dem Kommando dmesg geprüft werden und die letzten beiden Zeilen der Textausgabe sollten ähnlich wie folgt aussehen;
js: Joystick driver v1.2.15 (c) 1999 Vojtech Pavlik <vojtech@suse.cz> js0: Analog 3-axis 4-button 1-hat joystick with CHF extensions at 0x201 [TSC timer, 448 MHz clock, 1234 ns res]
Sonderwünsche gefällig?
In diesem Beispiel wurde ein dreiachsiger Joystick (0-2:X/Y/Thrust) mit vier Feuerknöpfen und einem “Hat-Stick” erkannt. Der Rundumsicht-Hebel kann bei Spielen in Form zweier weiterer Achsen (3 und 4) genutzt werden. Diese Zusatzfunktion wird allerdings nicht automatisch erkannt, sondern Bedarf einer zusätzlichen Modul-Option, die zusammen mit der Gerätedatei- und Joystick-Modul-Zuordnung in /etc/conf.modules eingetragen werden kann. So wird der Treiber automatisch geladen, sobald ein Spiel auf eine Gerätedateien (/dev/js*) zugreifft:
alias char-major-15 joy-analog options joy-analog js_an=0x201,0x2fb
Die Parameter hinter js_an gibt die Basis-Adresse des Game-Ports sowie die Sondereinstellungen für den Hat-Stick an. Die exakte Zuordnung der Sonderfunktionen (Pad Buttons, CHF und FCS Hats) können in /usr/src/linux/Documentation/joystick.txt nachgelesen werden.
Troubleshooting
Der analoge Game-Port ist üblicherweise auf der Soundkarte integriert. Nur bei sehr alten Modellen findet man die feste Verdrahtung auf die übliche Basis-Adresse 0x201. Älteren PNP-ISA-Buskarten muss aufwendig per isapnp nachgeholfen werden – bei PCI-Soundkarten reicht jedoch häufig ein einfacher Kernel-Modul-Parameter in /etc/conf.modules:
alias sound char-major-14 alias char-major-14 es1371 options es1371 joystick=0x200
In diesem Beispiel wird dem Sound-Treiber für Soundblaster PCI64/128 (es1371) mitgeteilt, dass sich der Joystickport ab Adresse 0x200 befindet. Da des Joystick-Modul ohne Soundtreiber in solchen Fällen nicht korrekt arbeiten kann, der Soundtreiber aber automatisch entladen wird, wenn längere Zeit keine Sound-Ausgabe erfolgte, sollte im Bootscript (bei Red Hat und Mandrake /etc/rc.d/rc.local) die Zeile /sbin/modprobe -r sound; /sbin/modprobe sound angehängt werden um den Treiber resident zu machen.
Mehr Infos zum Thema Joysticks und deren Inbetriebnahme unter Linux gibt es auf den Entwicklerseiten des Tschechen Vojtech Pavlik, der (mittlerweile im Auftrag von SuSE) unermüdlich Linuxtreiber für Eingabegeräte entwickelt.
Tabelle 1: Unterstützte Joystick-Systeme
| Classic PC analog | joy-analog.o |
| FPGaming and MadCatz A3D | joy-assassin.o |
| Gravis GrIP | joy-gravis.o |
| Logitech ADI | joy-logitech.o |
| Microsoft SideWinder | joy-sidewinder.o |
| ThrustMaster DirectConnect | joy-thrustmaster.o |
| Creative Labs Blaster | joy-creative.o |
| PDPI Lightning 4 card | joy-lightning.o |
| Trident 4DWave | joy-lightning.o |
| Aureal Vortex | gamepor |
| Magellan | joy-magellan.o |
| Space Mouse | joy-magellan.o |
| SpaceTec SpaceOrb 360 | joy-spaceorb.o |
| SpaceBall Avenger | joy-spaceorb.o |
| SpaceTec SpaceBall 4000 FLX | joy-spaceball.o |
| Logitech WingMan Warrior | joy-warrior.o |
| NES, SNES, PSX, N64, Multi | joy-console.o |
| Sega, Multi | joy-db9.o |
| TurboGraFX interface | joy-turbografx.o |




