ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

joystick

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.


Anmerkung: Im Abschnitt "Signale des Joysticks werden unter Xenial nicht erkannt" sollte noch hinzugefügt werden, welche Kernelversionen dies betrifft.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/joystick.png Das Paket joystick stellt Programme zum Kalibrieren und Testen von Joysticks bereit. Damit ist es eine Alternative zu jscalibrator, das seit Ubuntu 9.10 nicht mehr in den Paketquellen vorhanden ist.

Installation

Folgendes Paket muss installiert [1] werden:

  • joystick (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install joystick 

Oder mit apturl installieren, Link: apt://joystick

Hinweis:

Bei Problemen im Zusammenhang mit Emulatoren, VM, ect., ist es derzeit verstärkt ratsam (so lange der Kernel-Fehler existiert - siehe Hinweies oben), man vorher erst testet, ob der Joystick richtig Kalibriert ist, oder zumindest brauchbare Signale empfängt. Wenn dort alles in Ordnung ist, spricht in solchen Fällen vieles dafür, das Problem woanders zu suchen, nämlich bei den betreffenden Emulatoren, VM etc.

Kalibrieren

Programm starten

Um einen Joystick zu kalibrieren, muss nach der Installation von joystick das Programm jscal über ein Terminalfenster[2] aufgerufen werden:

jscal -c /dev/input/js0 

Der Parameter "-c" weist das Programm dabei an, eine Kalibrierung vorzunehmen. "/dev/input/js0" ist die Gerätedatei des Joysticks: Über diese kann das Programm das Gerät ansprechen. Sind mehrere Joysticks an den Rechner angeschlossen, werden sie entsprechend über "/dev/input/js1" usw. angesprochen. Die Ermittlung der richtigen Gerätedatei wird weiter unten beschrieben.

Durchführung der Kalibrierung

Nachdem das Programm gestartet wurde, versucht es, die Tasten und Achsen des Joysticks zu erkennen. Währenddessen sollte der Joystick nicht berührt werden. Nach einer kurzen Zeit erscheint folgende Aufforderung:

"Move axis 0 to minimum position and push any button."

Die einfachen Joysticks/Steuerknüppel verfügen meist nur über 2 Achsen pro Steuerknüppel (von Links nach Rechts, von Oben nach Unten). Normalerweise geht es mit der X-Achse (Von Links nach Rechts) los. Im Idealfall reagiert das Programm eh nur auf jene Bewegung, die mit der zugehörigen Achse und Richtung zu tun hat. Man kann normalerweise ruhig austesten, was so alles passiert, wenn man den Joystick in alle Richtungen bewegt und sollte es auch tun, um heraus zu finden, was die erreichbare kleinste und höchste Zahl ist. Diese Achse muss nun bei der Aufforderung von 'minimum' in eine Position gebracht werden, für die das Programm den kleinstmöglichen Wert ausgibt und anschließend durch eine (Feuer-)Taste des Joysticks bestätigt werden. Danach wird jscal 2 weitere Positionen der gleichen Achse des Joysticks abfragen. Wobei Center die Mitte sein sollte, also den Joystick los lassen. Und Maximum dann normalerweise in der Entgegengesetzte Richtung erreicht wird. Und jedes mal mit (Feuer-)Taste bestätigen. Die erreichbaren Werte können durchaus je nach dem zwischen 0-255, -128 bis 128 oder auch -1 bis +1 sein, um 3 Beispiele zu nennen. Dies hängt eben vom Joystick selbst ab. Deshalb austesten, und sich die jeweiligen Mindest- und Höchstwerte merken. Die selbige Prozedur findet dann auch mit den anderen Achsen statt. Das gleiche geschieht dann auch für die Achsen des Cooliehats (ein kleiner Steuerknüppel, meist auf dem Großen drauf, meist mit 4 Achsen).

Am Ende der Prozedur speichert jscal die ermittelten Daten.

Hinweis:

Ist eine Achse zu viel vorhanden, oder Bewegungen des Steuerknüppels werden als drücken der Feuertaste interpretiert, oder dergleichen, dann hat der Kernel Probleme die Daten Eures Joysticks richtig einzulesen. Siehe Ersten Hinweis. Kalibrieren ist je nach Joystick und Anspruch meist nur Teilweise dann machbar.

Testen

Zum Testen der Kalibrierung steht das Programm jstest bereit. Auch diesem Programm muss die korrekte Gerätedatei übergeben werden:

jstest /dev/input/js0 

jstest gibt nun fortwährend den Status der verschiedenen Achsen und Knöpfe aus:

Axes:  0:   218  1:     20  2:   128  3:   128  4:     0  5:     0 Buttons:  0:on   1:off  2:off  3:off  4:off  5:off  6:off  7:off  8:off  9:off 10:off 11:off

In diesem Beispiel wurde der Haupt-Steuerknüppel nach rechts-oben bewegt (Achsen 0 und 1). Zeitgleich wurde Knopf 1 betätigt.

Die Darstellung wirkt auf den ersten Blick recht unübersichtlich, lässt sich aber schnell erschließen, wenn man beobachtet, wie die Aktionen am Joystick sich auf die Bildschirmausgabe auswirken.

Ermitteln der richtigen Gerätedatei

Es gibt eine einfach Methode um zu ermitteln, welche Gerätedatei zu einem Joystick gehört. Dazu wird folgender Befehl in der Konsole ausgeführt:

cat /proc/bus/input/devices 

Dadurch werden alle angeschlossenen und erkannten Eingabegeräte aufgeführt. Der Abschnitt für ein angeschlossenes Gamepad könnte wie folgt aussehen:

I: Bus=0003 Vendor=054c Product=0268 Version=0111
N: Name="PS3/USB Corded Gamepad"
P: Phys=usb-0000:00:1d.7-6.2.1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.7/usb1/1-6/1-6.2/1-6.2.1/1-6.2.1:1.0/input/input10
U: Uniq=
H: Handlers=event6 js0 
B: EV=1b
B: KEY=fff0000 0 0 0 0 0 0 0 0 0
B: ABS=30027
B: MSC=10

In diesem Fall sind besonders die Abschnitte "N: Name" und "H: Handlers" interessant: Über den Namen kann das richtige Gerät identifiziert werden; der Abschnitt Handlers gibt an, welche Gerätedatei dem Gerät zugeordnet wurde - in diesem Fall js0. Da die Gerätedateien zu den Eingabegeräten immer im Verzeichnis /dev/input/ liegen, lautet die korrekte Gerätedatei zu dem Gamepad in diesem Fall also /dev/input/js0.

Problembehebung

Signale des Joysticks werden unter Xenial nicht erkannt

Bei manchen Kernel, welche in den Paketquellen von Ubuntu 16.04 verfügbar sind, kann es zu Problemen mit dem Einlesen der Daten/Signale von einigen Joysticks kommen. Dies kann dann dazu führen, dass in solchen Fällen beim kalibrieren eine Achse mehr angegeben wird, und/oder eine Joystick-Bewegung als Feuerknopftätigkeit vom Kalibrierungs-Programm/Kernel interpretiert wird.

Abhilfe schafft, eine andere Kernelversion zu nutzen.

Diese Revision wurde am 9. Mai 2017 00:13 von ubot erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Spiele, Hardware, Controller