Kalibrierung und Simulator funktionieren unter Linux nach Erstinstallation nicht mehr

  • Page 2 of 3
Thu Feb 05, 2015 10:51 pm
#16
ni

Hi

sieht so aus, als wenn das "Sim Stick" genannte Teil lieber doch ein Reflex Dongle ist. Dieser scheint zudem im nativen Modus oder zumindesten nicht im Joystick mode (Doppelblinken) zu sein, sonst würde sich das auch als Joystick anmelden.
Das Kernel Modul joydev sollte geladen werden, wenn das Ding als Joystick arbeitet.

Gruß
Dieter


 reply

 Report post
Fri Feb 06, 2015 2:21 pm
#17
He

Hi,

vielen Dank für die Nachricht. Ich hatte gestern per Post die DVD mit dem next bekommen, dacht ich istalliere einfach nochmal neu, siehe da die Kalibrierung im "Joystick" von Linux klaptte, nach der Kalibrierung im next geht auch der Simulator. (Nur wie lange frage ich mich). Mein Dongle oder Stick wie auch immer blinkt doppelt. Ein Problem habe ich nun noch: (wie andere auch) der totberreich ist sehr groß, man kann damit nur schlecht fliegen. Und was meinst Du mit: "das Kernel Modul joydev sollte geladen werden?

Gruß
Timo


 reply

 Report post
Fri Feb 06, 2015 3:42 pm
#18
Ge

Wie gesagt, dass dein Dongle nicht funktioniert hat, dürfte nix mit dem neXt zu tun haben... Warum es jetzt plötzlich funktioniert verstehe ich nicht!?

Zum neuen Problem: Du wirst den Joystick (-> Simstick) auf (Linux-)Systemebene kalibrieren müssen. Das funktioniert z.B. mit dem Kommandozeilen-Tool jscal oder dem GUI-Tool jstest-gtk.
Achtung: Nach einem Neustart des Rechners sind die Kalibrierungswerte weg. Siehe dazu folgenden Thread: Kalibrierung und Simulator funktionieren unter Linux nach Erstinstallation nicht mehr. Am Ende des Threads habe ich eine ganz einfach Lösung gepostet. Vielleicht funktioniert die ja auch bei dir.
Nach der Kalibrierung auf Systemebene musst du die Kalibrierung im neXt nochmal ausführen.

Diese ganze Kalibrierungsgeschichte ist eine echte Komplettkatastrophe. Wegen Problemen dieser Art empfehle ich Linux im Bekanntenkreis nur unter Vorbehalt. Aber in den letzten Jahren hat sich ja schon einiges in Sachen Benutzerfreundlichkeit getan... ;-)


 reply

 Report post
Fri Feb 06, 2015 4:50 pm
#19
Ge

Zitat von GerriJay im Beitrag #18

Siehe dazu folgenden Thread: ...


Hoppla, meinte diesen Thread: Kalibrierung


 reply

 Report post
Fri Feb 06, 2015 7:06 pm
#20
ni

Zitat von Helitimo im Beitrag #17
Hi,

vielen Dank für die Nachricht. Ich hatte gestern per Post die DVD mit dem next bekommen, dacht ich istalliere einfach nochmal neu, siehe da die Kalibrierung im "Joystick" von Linux klaptte, nach der Kalibrierung im next geht auch der Simulator. (Nur wie lange frage ich mich). Mein Dongle oder Stick wie auch immer blinkt doppelt. Ein Problem habe ich nun noch: (wie andere auch) der totberreich ist sehr groß, man kann damit nur schlecht fliegen. Und was meinst Du mit: "das Kernel Modul joydev sollte geladen werden?

Gruß
Timo


Hi

Das Device mit 5 Sekunden drücken bis LED aus, abziehen, 5 Sekunden drücken bis LED aus, abziehen, 5 Sekunden drücken bis LED aus, abziehen vom native Mode auf Joystick Mode bringen, wenn du zwischendurch Reflex fliegst.

mit "su -" oder "sudo su -" root auf dem Host werden.

Device Anstecken

# dmesg | grep -i joy
(Beispiel, wichtig, dass hier "Joystick" auftaucht)
[29241.011723] hid-generic 0003:0483:A0EB.0009: input,hidraw1: USB HID v1.01 Joystick [RCWARE RX2SIM Game Controller] on usb-0000:00:1a.2-2/input0

# lsmod | grep joy
(das Kernelmodul heißt jodev und wird immer geladen auch bei Gameport Joysticks)
joydev ...

# ls /dev/input/js*
(es sollte nur js0 und keine weiteren js1 .. jsn geben)
/dev/input/js0

# jscal /dev/input/js0
(hier die Entertaste von der Tastatur als "beliebiger Button" benutzen mangels vorhandenen Joystick buttons)

Die Achsen die nicht vom Sender angesteuert werden einfach mit enter, enter, enter, bei min, center, max überspringen oder besser vorher passend mit Schaltern belegen .

Testen:
# jstest /dev/input/js0
(hier sollten alle max Ausschläge der benutzten Achsen dann +-32767 anzeigen und die Mitten ideallerweise 0 oder fast 0 sein.

Dann:
# jscal -p /dev/input/js0 > /usr/bin/jscal.sh
# chmod +x /usr/bin/jscal.sh
(jetzt hast du ein primitives shellscript erzeugt)

Je nachdem ob bei dir /dev/input/jsX für alle, eine Gruppe oder nur für root schreibbar ist musst du dann nach Anstecken und vor dem Start von neXt
"jscal.sh" entweder als root oder als user ausführen um die in dem erzeugten Script gespeicherten Werte wieder in den Treiber/Kernel zu schreiben.

Erst nach dem Kalibrieren mit jscal oder, nach neu Anstecken, erst nach der Ausführung von jscal.sh kann der neXt kalibriert und oder benutzt werden.
Die Totwinkel sind dann weg.

Vor jedem Start von neXt im Sender auf "Monitor" gehen und den Pitchknüppel peinlichtst genau auf die Mitte stellen.

PS eine Automatisierung mit udev ist mir mit dem RX2SIM Teil nicht gelungen. Das Ding muss ich außerdem nach jedem Reboot einmal
neu anstecken. Sonst ist zwar /dev/input/js0 da aber es gibt nichts von sich.

Gruß
Dieter


 reply

 Report post
Sat Feb 07, 2015 11:24 am
#21
Ge

@nichtgedacht
Deine Anweisungen sind zwar richtig, aber ohne weitere Erklärung, was die Befehle tun, relativ sinnlos für einen Laien.
Zum Speichern der Kalibrierung: Hast du folgenden Kommentar gelesen?
Kalibrierung
Wäre nett, wenn du wenigstens drauf eingegangen wärst. Falls das funktioniert, ist das sicher die einfachste Lösung.
Nich falsch verstehen, ich meins nicht bös.

@Klaus-Eiperle
Wäre es für dich interessant, wenn wir Linuxer vllt. mal eine Kurzanleitung für die Hauptseite zusammenstellen? Die Kalibrierung unter Linux ist in der aktuellen Form ja offensichtlich alles andere als trivial.


 reply

 Report post
Sat Feb 07, 2015 11:48 am
#22
avatar

Hallo,

ja, da würde ich mich sehr freuen. Die Anleitung würde ich sehr gerne in die FAQ auf der Homepage einbauen.

Könntet Ihr diese Beschreibung bitte in Englisch verfassen?

Viele Grüße,
Klaus

T-Rex 700E DFC HV, T-Rex 550 DFC, T-Rex 450 DFC, Katana S 33%

 reply

 Report post
Sat Feb 07, 2015 1:07 pm (Last edited: Sat Feb 07, 2015 1:07 pm)
#23
ni

Zitat von GerriJay im Beitrag #21
@nichtgedacht
Deine Anweisungen sind zwar richtig, aber ohne weitere Erklärung, was die Befehle tun, relativ sinnlos für einen Laien.
Zum Speichern der Kalibrierung: Hast du folgenden Kommentar gelesen?
Kalibrierung
Wäre nett, wenn du wenigstens drauf eingegangen wärst. Falls das funktioniert, ist das sicher die einfachste Lösung.
Nich falsch verstehen, ich meins nicht bös.



Hallo

Was ist denn bei Linux ein Laie? Jemand der sich weigert die Doku zu lesen?
Wer Linux verwendet wird hoffenlich wissen, dass man fast immer mit "man BEFEHL" oder BEFEHL --help mehr erfährt.
Wenn das nichts hilft: "find /usr/share/doc/packages/ -type f -print0 | xargs -0 grep BEFEHL" oder "google BEFEHL"
Eigentlich findet man Pointer auf Alles was man hier wissen will in der Kernel Doku falls die Sourcen installiert sind:
/usr/src/linux/Documentation/input/joystick-api.txt /usr/src/linux/Documentation/input/joystick.txt

Die Kommandos jscal-store und jscal-restore gibt es auf meinem System OpenSuse nicht.
Auch werden hierfür keine udev rules automatisch erzeugt durch irgendein Paket.
Abgesehen davon muss man jscal-restore ja genauso irgendwo aufrufen wie die mit jscal -p erzeugte Scriptzeile.

Wenn du was nützliches beitragen willst, kannst du ja eine getestete udev rule posten.

Bei mir ist wie gesagt nach einem Warmstart (usb devices bleiben ständig mit Spannung versorgt) der RX2SIM Adapter
erst mal tot. Den Reflex Dongle will ich nicht ständig im Mode switchen müssen und betreibe ihn daher parallel an enem alten Sim Stick
mit einem weiteren Empfänger.

Gruß
Dieter


 reply

 Report post
Sat Feb 07, 2015 1:19 pm
#24
Ge

Zu OpenSuse:
Die Tools gibt es scheinbar schon. Siehe hier: https://software.opensuse.org/package/linuxconsoletools?search_term=linuxconsoletools
Ob die udev-Regeln (wie unter Ubuntu) automatisch generiert werden, weiß ich leider nicht.


 reply

 Report post
Sat Feb 07, 2015 2:33 pm
#25
He

Hi

vielen Dank Dieter für die wichtige Info, ich habe das Problem gefunden. Es lag wirklich am Modus vom Device. Klar immer wenn ich den Reflex probierte, musste ich den Stick umschalten. Ich wusste da noch nicht das man zwischen verschiedenen Modi umher schalten kann. So war das reiner Zufall, das der Next mal ging, mal nicht. Ich habe nun nach deiner Beschreibung die Umstellung vorgenommen, geht alles!!!! Habe dann auch bewusst den Joystick-Modus verlassen um die Funktion zu testen, der next geht natürlich damit nicht. Ich bin froh, nun den Fehler mit deiner Hilfe gefunden zu haben. An die Totzoneneinstellung werde ich mich nun herantasten, da ich wirklich ein Linux-Laie bin. Mal sehen, wie ich das bewerkstellige. Nochmals meinen Dank.

Gruß
Timo


 reply

 Report post
Sat Feb 07, 2015 2:45 pm
#26
Ge

@Helitimo
Schön, dass es jetzt funktioniert! :-) Falls du noch Fragen hast, immer raus damit.

@nichtgedacht
Die entsprechende udev-Regel aus dem Ubuntu-Paket sieht übrigens so aus:

1
2
 
# Restore any stored calibration for the device
ACTION=="add", KERNEL=="js*", RUN+="/lib/udev/jscal-restore %E{DEVNAME}"
 


Sofern jscal-store und jscal-restore installiert sind, dürfte die Regel (unter Anpassung des Pfads) auch unter anderen Linux-Distris funktionieren.


 reply

 Report post
Sat Feb 07, 2015 2:55 pm
#27
ni

Hi

die Automatisierung mit udev läuft jetzt bei mir. Der Trick war, dass eine Datei, hier jscal.sh, nicht automatisch als Shellscript aufgerufen wird wie auf der Kommandozeile. Man muss schon den Interpreter rein schreiben, also '#!/bin/sh'

Nochmal zum Mitmeisseln:
# udevadm info /dev/input/js0
...
E: ID_MODEL_ID=a0eb
...
E: ID_SERIAL=RCWARE_RX2SIM_Game_Controller_8D8B128C5751
...
E: ID_VENDOR_ID=0483
...

Als root:
Kalibrieren mit jscal dann "jscal -p > /usr/bin/jscal.sh"
"vi /usr/bin/jscal.sh"
diese she bang Zeile oben rein schreiben:
#!/bin/sh/

Also sieht das Script etwa so aus:
#!/bin/sh
jscal -s 8,1,0,2048,2048,685638,690044,1,0,2048,2048,693611,690044,1,0,2048,2048,690932,690044,1,0,2050,2050,1104639,1084555,1,0,2048,2048,684763,683891,1,0,2046,2046,1056800,1060977,1,0,2048,2048,990507,1054724,1,0,2048,2048,-2147483648,-2147483648 /dev/input/js0

Dann in /etc/udev/rules.d/ eine neue Datei z.B. "85-jscal.rules" erzeugen mit Inhalt:
SUBSYSTEM=="input", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a0eb", ACTION=="add", RUN+="/usr/bin/jscal.sh"

Vendor ID und Product ID aus dem zuvor genannten udevadm Aufruf nehmen.

Gruß
Dieter


 reply

 Report post
Sat Feb 07, 2015 3:42 pm
#28
He

Hallo Dieter,

ich habe die Kalibrierung in der Console erfolgreich durchgeführt, allerdings war im next eine große Totzone noch vorhanden. Daraufhin hatte ich nochmal in der Console den Test laufen lassen: die Endwerte und die Nullwerte sehen alle sehr gut aus, nur ist da schon die selbe Totzone zu sehen. Mit dem Auslenken eines Knüppels wird erst nach einem gewissen Weg ein Wert von 338 angezeigt, also zwischen 0 und 338 keine Veränderung, entsprechend auch der Knüppelweg. Nebenbei noch: habe den next auf meinen Mac installiert, alles total problemlos. Nur ist dort der Bildschirm nicht so groß. Vielleicht hast du noch ne Idee zwecks Totzone.

Gruß
Timo


 reply

 Report post
Sat Feb 07, 2015 5:07 pm
#29
Ge

Schwer zu sagen woran es liegen könnte per Ferndiagnose.
Versuch doch mal die Kalibrierung mit dem Tool jstest-gtk durchzuführen, nur um sicher zu gehen. Das Ergebnis sollte das gleiche sein wenn du alles richtig machst!
Programm starten -> Joystick auswählen -> "Calibration" -> "Start Calibration". Wenn du das durchgeführt hast, kannst in der Ansicht davor dir die genauen Werte grafisch anschauen. Ist im Prinzip das gleiche wie jstest, nur grafisch.
Nochmal der Hinweis: Wenn du den Rechner neu startest, sind die Kalibrierungswerte futsch, wenn du nicht einen der hier vorgestellten Lösungswege benutzt hast. (Kann sein, dass das auch schon bei ein-/ausstecken passiert!?) Das bedeutet letztendlich, dass nach einem Neustart die Totzone wieder da ist.
Daher führe die Kalibrierung per jscal oder jstest-gtk aus und kontrolliere direkt anschließend die Ausgabewerte.


 reply

 Report post
Sat Feb 07, 2015 6:16 pm
#30
ni

Zitat von Helitimo im Beitrag #28
Hallo Dieter,

ich habe die Kalibrierung in der Console erfolgreich durchgeführt, allerdings war im next eine große Totzone noch vorhanden. Daraufhin hatte ich nochmal in der Console den Test laufen lassen: die Endwerte und die Nullwerte sehen alle sehr gut aus, nur ist da schon die selbe Totzone zu sehen. Mit dem Auslenken eines Knüppels wird erst nach einem gewissen Weg ein Wert von 338 angezeigt, also zwischen 0 und 338 keine Veränderung, entsprechend auch der Knüppelweg. Nebenbei noch: habe den next auf meinen Mac installiert, alles total problemlos. Nur ist dort der Bildschirm nicht so groß. Vielleicht hast du noch ne Idee zwecks Totzone.

Gruß
Timo


Hi Timo,

du hast "jscal -c /dev/input/js0" als root ausgeführt?

Jscal testet zuerst die päzision und geht dann in die Kalibrierung:

zweistein:~ # jscal -c /dev/input/js0
Joystick has 8 axes and 8 buttons.
Correction for axis 0 is broken line, precision is 0.
Coeficients are: 2048, 2048, 685638, 690044
Correction for axis 1 is broken line, precision is 0.
Coeficients are: 2048, 2048, 693611, 690044
Correction for axis 2 is broken line, precision is 0.
Coeficients are: 2048, 2048, 690932, 690044
Correction for axis 3 is broken line, precision is 0.
Coeficients are: 2050, 2050, 1104639, 1084555
Correction for axis 4 is broken line, precision is 0.
Coeficients are: 2048, 2048, 684763, 683891
Correction for axis 5 is broken line, precision is 0.
Coeficients are: 2046, 2046, 1056800, 1060977
Correction for axis 6 is broken line, precision is 0.
Coeficients are: 2048, 2048, 990507, 1054724
Correction for axis 7 is broken line, precision is 0.
Coeficients are: 2048, 2048, -2147483648, -2147483648

Calibrating precision: wait and don't touch the joystick.
Done. Precision is: 2041, 2041 Axis 4: 2833, 2833 Axis 5: 2833, 2833 Axis 6: 2048, 2048 Axis 7: 2048, 2048
Axis: 0: 0
Axis: 1: 0
Axis: 2: 0
Axis: 3: 0
Axis: 4: 0
Axis: 5: 0
Axis: 6: 0
Axis: 7: 0

Move axis 0 to minimum position and push any button.
Axis 0: 1265
Hold ... OK.
Move axis 0 to center position and push any button.
Axis 0: 2048
Hold ... OK.
Move axis 0 to maximum position and push any button.
Axis 0: 2827
Hold ... OK.
usw.

zweistein:~ # jscal -p /dev/input/js0
jscal -s 8,1,0,2048,2048,685638,690044,1,0,2048,2048,693611,690044,1,0,2048,2048,690932,690044,1,0,2050,2050,1104639,1084555,1,0,2048,2048,684763,683891,1,0,2046,2046,1056800,1060977,1,0,2048,2048,990507,1054724,1,0,2048,2048,-2147483648,-2147483648 /dev/input/js0

Was kommt da jeweils bei dir? Ist die Totzone anschließend symmetrisch um die Mitte oder einseitig? Wenn sie einseitig ist, hat das Kalibrieren gar nicht geklappt.
Wie gesagt musst du jscal -c wahrscheinlich als root ausführen, weill /dev/input/js0 nur für root schreibbar sein sollte:
zweistein:~ # ls -l /dev/input/js0
crw-rw-r--+ 1 root root 13, 0 Feb 7 14:32 /dev/input/js0

338 ist ein sehr kleiner Wert. Das sind etwa 1,5 Trimmklicks bei mir. Musst du den Knüppel nach der Kalibrierung wirklich noch 3-4 Grad bewegen bis die Achse auf diesen Wert springt?
Ich kann mit jstest beobachtet auch nichts Feineres steuern als vielleicht 124 wenn ich den Knüppel vorsichtig aus der Mitte drücke. Das ist dann aber eine winzige Bewegung die fast noch in der Reproduziergenauigkeit untergeht auf meiner DX7s

Gruß
Dieter


 reply

 Report post
Already a member?
Register now!
Create an account?
Sign up now!