[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete installieren:Pakete installieren] [:Terminal: Ein Terminal öffnen] [:Programme starten: Ein Programm starten] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/joystick.png,,align=left)]] Das Paket '''joystick''' stellt Programme zum Kalibrieren und Testen von Joysticks bereit. = Installation = Folgendes Paket muss installiert [1] werden: {{{#!vorlage Paketinstallation joystick, universe }}} {{{#!vorlage Hinweis Bei Problemen im Zusammenhang mit Emulatoren, VM, etc., ist es ratsam vorher zu [:joystick/#Testen:testen], ob der Joystick richtig kalibriert ist, oder zumindest brauchbare Signale empfängt. Wenn dort alles in Ordnung ist, spricht 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: {{{#!vorlage Befehl 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 nur auf jene Bewegung, die mit der zugehörigen Achse und Richtung zu tun hat. Man kann austesten, was passiert, wenn man den Joystick in alle Richtungen bewegt und sollte dies auch tun, um herauszufinden, 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, d.h. der Joystick befindet sich in der Ausgangsposition und anschließend 'Maximum' in der entgegengesetzten Richtung zum vorherigen 'Minimum'. Jede dieser Vorgänge muss mit der (Feuer-)Taste bestätigt werden. Die erreichbaren Werte können bspw. zwischen 0-255, -128 bis 128 oder auch -1 bis +1 sein, um 3 Beispiele zu nennen. Dies ist vom Joystickmodell abhängig. Das gleiche geschieht dann auch für die Achsen des [wikipedia:Cooliehat:Cooliehats] (sofern vorhanden). Am Ende der Prozedur speichert '''jscal''' die ermittelten Daten. {{{#!vorlage Hinweis Ist eine Achse zu viel vorhanden, oder Bewegungen des Steuerknüppels werden als drücken der Feuertaste interpretiert o.ä., dann hat der Kernel Probleme die Daten des Joysticks richtig auszulesen (siehe Hinweis unten). Kalibrieren ist in solch einem Fall ggf. nur teilweise machbar.}}} == Testen == Zum Testen der Kalibrierung steht das Programm '''jstest''' bereit. Auch diesem Programm muss die korrekte Gerätedatei übergeben werden: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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'''. #tag: Hardware, Spiele, Controller