Kalibrierung Version 1.486 unter Linux

Sun Nov 12, 2017 7:40 pm
#1
sa

Unter Win funktioniert alles bestens.

Unter Linux wird der RX2SIM gefunden.
Im Programm wird "no input device" angezeigt.
Beim durchführen der Kalibrierung Stick/Funke hängt es nach dem 2-ten weiter ! Sprich, der Simulator kann nicht benutzt werden.

Weiss jemand wo der Wurm drin steckt?
Danke

waldo


 reply

 Report post
Wed Nov 15, 2017 10:13 am
#2
avatar

Ja, das ist leider so und lässt sich von meiner Seite aus auch nicht ändern. Unity3D (das ist die Game Engine als Unterbau) hat die Linux Treiber auf die neue Schnittstelle umgestellt.

Hier dazu mehr: The latest version (v1.478) can not find usb controller

Align T-Rex 700X, Goblin 700 Competition CE, MR25, Katana S 33%

 reply

 Report post
Sun Nov 26, 2017 12:17 pm
#3
sa

So schade. Schade wird die Software als Linux tauglich verkauft.

Habe die Angaben der diversen Links ausprobiert auch den oben angegebenen Link, alles erfolglos.

Habe mir einen Abbild-Stick gemacht mit: Linux Mint 18.2 Cinnamon 64-bit.
Die neXt Softwar dort im "home" installiert und es funktioniert.
Beim abschalten wird "home", wie auch alle Einstellungen, gelöscht, also kann dies nicht die Lösung sein.

Es funktionier, aber warum mit dem Abbild-Stick und nicht anderst ?
Da muss es doch eine handlich Lösung geben.

waldo


 reply

 Report post
Sun Nov 26, 2017 4:02 pm (Last edited: Sun Nov 26, 2017 4:02 pm)
#4
avatar

Kannst Du das in ein Script packen und damit den neXt starten?

Von Seiten Unity3D habe ich da keine Hoffnung auf schnelle Lösung... so wie es ausschaut waren das zu wenig Nutzer die sich dort beschwert haben. Das Problem betrifft ja nicht nur den neXt, sondern alle mit Unity3D kompilierten Linux Spiele.

Align T-Rex 700X, Goblin 700 Competition CE, MR25, Katana S 33%


 reply

 Report post
Sun Nov 26, 2017 7:12 pm
#5
sa

Total vergessen zu erwähnen, habe die selbe "Linux Mint 18.2 Cinnamon 64-bit" Version, ab Abbild-Stick, gleich auf dem PC installiert.

So ein Linux Experte bin ich dann doch nicht um ein entsprechendes Script zu erstellen, ohne Hilfe.

Ganz naiv, wenn es doch ab Abbild-Stick funktioniert müsste es doch auch ab PC-HD funktionieren.
Aber was fehlt denn, ebne nicht so Experte.

waldo


 reply

 Report post
Sun Dec 03, 2017 8:39 pm
#6
ni

Zitat von Klaus-Eiperle im Beitrag #2
Ja, das ist leider so und lässt sich von meiner Seite aus auch nicht ändern. Unity3D (das ist die Game Engine als Unterbau) hat die Linux Treiber auf die neue Schnittstelle umgestellt.

Hier dazu mehr: The latest version (v1.478) can not find usb controller


Hallo Herr Eiperle

Ändern könnten Sie aber Ihr Verhalten, solche Sachen ungetestet zum Download anzubieten und damit die Installationen Ihrer Kunden zu zerstören.

Viele Grüße
Dieter Brüggemann


 reply

 Report post
Sun Dec 03, 2017 9:19 pm
#7
avatar

Hallo Herr Brüggemann,

wir testen die Builds vor Veröffentlichung auf Windows und Mac OSX. Wie Sie richtig erkannt haben genießt Linux diesen Service nicht. Linux hatte aber schon immer den Einsatz des Benutzers gefordert, wie Sie in diesem Forum recherchieren könnten. Alleine die Totzone der Sticks wurde vom Linux System auf Treiberebene bei jedem Start auf Joystick-Standard gesetzt, was natürlich viel zu großzügig war. Da kann ich nix ändern, ausser vielleicht in der Systemvorraussetzung das Wort 'Experimental' hinzuzufügen. Es wird nie möglich sein mit vertretbarem Aufwand alle Linux-Distributionen vor dem Release zu testen.

Viele Grüße,
Klaus

Align T-Rex 700X, Goblin 700 Competition CE, MR25, Katana S 33%

 reply

 Report post
Sun Dec 03, 2017 11:59 pm
#8
ni

Hi

Ich schildere mal mein Vorgehen:

Opensuse Leap 14.2

bischen gesucht

jstest-sdl nicht vorhandem.

https://github.com/meleu/jstest-sdl probiert
scheitert weil libSDL-1_2-0 devel nicht verfügbar ist:

https://github.com/meleu/jstest-sdl gefunden
hier wird nur SDL2 verwendet. Kann also compiliert werden auf meinem System

zweistein:~ # jstest-sdl -l
Found 1 joystick(s)

Joystick Name: 'RCWARE RX2SIM Game Controller'
Joystick GUID: 0300000083040000eba0000001010000
Joystick Number: 0
Number of Axes: 8
Number of Buttons: 8
Number of Hats: 0

jstest-sdl -t 0
Zeigt auch was an, aber große Totzonen.

Umgebungsvariable mit den Strings aus aus "jstest-sdl -l" ( Joystick Name: xxxx Joystick GUID: xxxx) zusammensetzen:
Was die anderen Parameter bedeuten und ob sie richtig sind habe ich noch nicht nachgesehen.

SDL_GAMECONTROLLERCONFIG="0300000083040000eba0000001010000,RCWARE RX2SIM Game Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,"
export SDL_GAMECONTROLLERCONFIG
/array_data01/next/Linux\ x86+64bit/neXt.x86_64

next läßt sich steuern, aber mit Totzonen.

evdev-joystick ist auf meinem System nicht verfügbar. Das Package heißt hier linuxconsoletools und beinhaltet nur die tools für das alte Interface (js-test, js-cal ...)

Das linux console project stellt einen Download bereit:
https://sourceforge.net/projects/linuxco...ce=typ_redirect
(linuxconsoletools-1.6.0)

Die Sources lassen sich auf meinem System nicht compilieren, weil wieder die devel Sachen von libSDL-1 fehlen
Im Makefile linuxconsoletools-1.6.0/utils/Makefile kommentiere ich die original Zeile PROGRAMS aus
und füge eine andere Zeile PROGRAMS evdev-joystick hinzu.
Also nur evdev-joystick soll erzeugt werden. Jetzt funktioniert "make"

zweistein:~ # evdev-joystick --l
/dev/input/by-id/usb-RCWARE_RX2SIM_Game_Controller_8D8B128C5751-event-joystick

zweistein:~ # evdev-joystick --evdev /dev/input/by-id/usb-RCWARE_RX2SIM_Game_Controller_8D8B128C5751-event-joystick -d 0
Event device file: /dev/input/by-id/usb-RCWARE_RX2SIM_Game_Controller_8D8B128C5751-event-joystick
New dead zone value: 0
Trying to set all axes deadzone to: 0
Absolute axis 0x00 (0) (X Axis) Setting deadzone value to : 0
(value: 2050, min: 0, max: 4095, flatness: 0 (=0.00%), fuzz: 15)
Absolute axis 0x01 (1) (Y Axis) Setting deadzone value to : 0
(value: 2050, min: 0, max: 4095, flatness: 0 (=0.00%), fuzz: 15)
Absolute axis 0x02 (2) (Z Axis) Setting deadzone value to : 0
(value: 2049, min: 0, max: 4095, flatness: 0 (=0.00%), fuzz: 15)
Absolute axis 0x03 (3) (X Rate Axis) Setting deadzone value to : 0
(value: 1829, min: 0, max: 4095, flatness: 0 (=0.00%), fuzz: 15)
Absolute axis 0x04 (4) (Y Rate Axis) Setting deadzone value to : 0
(value: 1264, min: 0, max: 4095, flatness: 0 (=0.00%), fuzz: 15)
Absolute axis 0x05 (5) (Z Rate Axis) Setting deadzone value to : 0
(value: 1829, min: 0, max: 4095, flatness: 0 (=0.00%), fuzz: 15)
Absolute axis 0x06 (6) (Throttle) Setting deadzone value to : 0
(value: 2048, min: 0, max: 4095, flatness: 0 (=0.00%), fuzz: 15)
Absolute axis 0x07 (7) (Rudder) Setting deadzone value to : 0
(value: 2047, min: 0, max: 4095, flatness: 0 (=0.00%), fuzz: 15)

Jetzt läuft next wieder wie gehabt, der Abend ist hin und permanent muss es auch noch genacht werden.

Gruß
Dieter


 reply

 Report post
Mon Dec 04, 2017 7:41 pm
#9
ni

Hi

ich habe leider keine Ahnung wie ich einen Schalter für Autorotation auf eine analoge Achse mappen kann. In next sind Schalter und Taster hier ausgegreyed. Es gibt nur die Möglichkeit einen Proportionalkanal zu verwenden.
Der Gamecontroller wie im tool controllermap gezeigt kennt nur 4 Achsen.

Wie übersetzt sich das in Bestandteile der Umgebungsvariable SDL_GAMECONTROLLERCONFIG?

Gruß
Dieter


 reply

 Report post
Mon Dec 04, 2017 9:52 pm
#10
avatar

Hallo Dieter,

das ist nicht gut. Der RX2SIM liefert ja bis zu 8 Proportionalkanäle. Schaltkanäle (auch Buttons genannt, mit Zustand aus und ein) werden da gar nicht angezeigt. Deshalb sind die nicht benötigten Zuordnungsmethoden 'Taster' und 'Schalter' ausgegraut.

Viele Grüße,
Klaus

Align T-Rex 700X, Goblin 700 Competition CE, MR25, Katana S 33%

 reply

 Report post
Mon Dec 04, 2017 10:59 pm
#11
ni

Hallo Klaus,

die Frage war ja auch auf das Mapping bezogen.

Dieses verdammte "controllermap" zeigt ein Bild von einem Gamecontroller ohne Beschriftung und man soll die Elemente wie aufgefordert an der Fernsteuerung betätigen, die ja völlig anders aussieht. Zudem reagiert eigentlich gar nichts.
heraus kommem soll ein String der der Umgebungsvariablen SDL_GAMECONTROLLERCONFIG zugewiesen wird. Da tauchen dann Bezeichner auf, die es nur an diesem Gamecontroller gibt, wie der Knopf rightshoulder usw.
Da "controllermap" kaputt ist und nicht wirklich auf Eingaben reagiert, wird der String nicht vollständig erzeugt. Außerdem kann ich dadurch nicht das Mapping "Schalter an Fernsteuerung -> komischer Bezeichner" erfahren. Also übernehme
ich einen String aus Beispielen und versuche zu modifizieren. Da aber die Bezeichenr keinen normalen JS Funktionen 1 bis x zugeordnet sind kriege ich da Mapping nicht hin. Mit jstest-sdl wird alles korrekt angezeigt, die JS Funktionen werden
in SDL abgebildet. D.h. auch die verwendeten Schalter steuern normale Proportionalkanäle. Davon kommt in UNITY aber nur das an was per SDL_GAMECONTROLLERCONFIG auf diese dämlichen Bezeichner gemappt wird.
Ich muss weitere analog Achsen mappen, kenne aber die Namen der komischen Bezeichner nicht und weiß nicht mal welche es überhaupt gibt.

Ich hab also total verloren und kann den Next wegwerfen.

Gruß
Dieter


 reply

 Report post
Tue Dec 26, 2017 12:07 am
#12
ni

Hi,

inzwischen bin ich geringfügig schlauer geworden.

Offenbar lässt sich Unity3d seit Umstellung auf den Abstaktionlayer SDL2 nur noch mit Gamecontrollern steuern die auf die Funktionalität vom Xbox360Controller gemapped werden können.

Es gibt dabei theoretisch 8 analoge Achsen.

Siehe http://wiki.unity3d.com/index.php?title=Xbox360Controller

In Linux gibt es im SDL2 System vordefinierte Controller Mappings.
Siehe SDL2-2.0.4/src/joystick/SDL_gamecontrollerdb.h

Example:
#if defined(__LINUX__)
...
"030000006d04000018c2000010010000,Logitech RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
...

Wenn der Controller anhand der GUID, das ist die Nummer am Anfang der Zeile, nicht gefunden wird, wird in der Umgebungsvariable SDL_GAMECONTROLLERCONFIG nachgesehen.
Für analoge Achsen gibt es die Bezeichner rightx, righty, leftx, lefty.

Die Bezeicher dpright, dpleft, dpup, dpdown gehen unter Linux nicht für analoge Achsen zu mappen wenn RX2SIM verwendet wird.

Die Bezeicher righttrigger, lefttrigger kann man auf analoge Achsen mappen (z.B. .righttrigger:a5) aber sie resultieren in eine Ausgabe 0 bis 100 % und nicht -100% bis 100%.

Mit diesem Startscript bekomme ich so wieder einen Schalter für Autorotation hin und ein weiterer Schalter steht auch noch zur Verfügung:

#!/bin/bash

# controller bekannt machen
export SDL_GAMECONTROLLERCONFIG="0300000083040000eba0000001010000,RCWARE RX2SIM Game Controller,leftx:a0,lefty:a1,rightx:a2,righty:a3,righttrigger:a6,lefttrigger:a4,"

# Totzonen auf 0 setzen
evdev-joystick --evdev /dev/input/by-id/usb-RCWARE_RX2SIM_Game_Controller_8D8B128C5751-event-joystick -d 0

# Game starten
/array_data01/next/Linux\ x86+64bit/neXt.x86_64

Die zu mappenden Achsennummern können aus der Anzeige von "jstest-sdl -t 0" entnommen werden.
Das zeigt die rohen SDL2 Daten an.

Die konkreten Bezeichner für die Achsen in SDL_GAMECONTROLLERCONFIG habe ich aus Beispielen. Eine Dokumentation konnte ich nicht finden.

Dieter


 reply

 Report post
Tue Dec 26, 2017 11:42 am
#13
avatar

Vielen Dank für Deinen Post. So hilft es hoffentlich den anderen Linux Nutzern weiter. Ich bin nach wie vor von den Linux Entwicklern und der Unity3D Linux Portierung enttäuscht.

Align T-Rex 700X, Goblin 700 Competition CE, MR25, Katana S 33%

 reply

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