here is the solution for ubuntu and a real flight controller:
=== On an Ubuntu 16.04 64-bit install, I first downloaded the source for SDL 2.0 from http://www.libsdl.org/.
I then uncompressed it and built as much of it as I could.
$ tar -xzvf SDL2-2.0.5.tar.gz $ cd SDL2-2.0.5 $ ./configure $ make -k
The '-k' qualifier was very important because not all of the SDL-2.0.5 distribution built on my system. Specifically, I got the error:
LTLINK build/libSDL2.la build/.libs/SDL_mirvideo.o: In function `MIR_InitDisplayFromOutput': /home/paul/src/sandbox/SDL2-2.0.5/src/video/mir/SDL_mirvideo.c:258: undefined reference to `mir_output_get_current_mode' collect2: error: ld returned 1 exit status Makefile:147: recipe for target 'build/libSDL2.la' failed make: *** [build/libSDL2.la] Error 1
but I fully expect that's because I have libSDL2 (2.0.4) already installed on my Ubuntu system.
However, enough of it did that I was able to then go into the test subdirectory and build controllermap with the commands:
$ cd test $ ./configure $ make -k
Once again, not everything built for me, but at least on my system, controllermap did build and I could run it:
Usage: ./controllermap number For example: ./controllermap 0 Or: ./controllermap 0 >> gamecontrollerdb.txt
and since my Interlink showed up as the first element, I then re-ran controllermap as follows:
$ ./controllermap 0
After some trial and error with the interface, I was able to get all of my switches and the reset button mapped properly and I was able to get all four stick axes mapped. I was unable to map the dial on the Interlink to anything but I don't think that matters at this point (at least I don't use it with neXt...)
Here's the environment variable that I set in at the end of my ~/.bashrc file
Now, I still have to tweak the transmitter in neXt because the rates are too slow for me and I think there's a bit too much of a deadband in the middle. However, that should be fairly straightforward to do. ===
finally I have got to work my transmitter working as well. Unfortunately the controllermap doesn't recognize when I move with the sticks. But anyway at least I obtained the guid of the transmitter. Which is in my case:
1
03000000f70600000300000010010000
.
I have installed joystick package
1
sudo apt-get install joystick
I have found out that the transmitter is mapped to /dev/input/js0 so I have ran
1
jstest /dev/input/js0
Here I found out, wich axis are used for pitch, yaw, throttle and roll and used these values to set in SDL_GAMECONTROLLERCONFIG. In my case it was pitch:1, yaw:5, throttle: 2 and roll:0. So the value of SDL_GAMECONTROLLERCONFIG in my case is:
I think that it doesn't matter, how it's mapped, but important is that the right axis are mentioned there. The right mapping is done in sim anyway. Then just set the env variable before running neXt sim through the command:
How can we map more than 4 analog axes? Controllermap can handle only 4. If a switch should be used for autorotation it has to be mapped to a RCx channel not to a button. Thats because next can only use RCx channels for that purpose.
Zitat von Klaus-Eiperle im Beitrag #16here is the solution for ubuntu and a real flight controller:
... ===
$ ./controllermap 0
After some trial and error with the interface, I was able to get all of my switches and the reset button mapped properly and I was able to get all four stick axes mapped. I was unable to map the dial on the Interlink to anything but I don't think that matters at this point (at least I don't use it with neXt...)
... ===
Hi Klaus,
are there any news on this topic?
How did you manage it to get more than 4 prop cannels working? There are only leftx, lefty, rightx, righty which could be mapped. What about functions as autorotation and so on?
Zitat von Klaus-Eiperle im Beitrag #20Unfortunately I have no experiences with Linux and I don't test on Linux anything.
Hi Klaus,
this statement contradicts your statement which I have quoted in my previous posting. There you have presented a "solution for Unbuntu and a real flight controller".
This "solution" seems to be incomplete to me. The input concerning "functions" as autorotation is not explained. It seems even impossible to have more than 4 axes mapped this way.
SAILI Simulator --- XTR5.5+G2+FMS Controller as /devices/pci0000:00/0000:00:14.0/usb3/3-14/3-14:1.1/0003:0B9B:4012.001A/input/input31
is not recognized by 1.497.
I have tried ~/Downloads/sdltest/sdl-jstest/build $ ./sdl2-jstest -l Found 1 joystick(s)
Joystick Name: ' SAILI Simulator --- XTR5.5+G2+FMS Controller' Joystick GUID: 030000009b0b00001240000011010000 Joystick Number: 0 Number of Axes: 4 Number of Buttons: 4 Number of Hats: 0 Number of Balls: 0 GameController: not a gamepad
STEAM (big picture mode) the controller is recognized, but does not "work" as a button-type game controller, obviously not set up to use analog inputs.
Unity does not seem to be too concerned about this?
Starting game from console it complains about: Preloaded 'ScreenSelector.so' Unable to preload the following plugins: ScreenSelector.so Player data archive not found at `/home/user/Downloads/cgm-rc-heli-simulator-linux-x86-64bit-1497/Linux x86+64bit/neXt_Data/data.unity3d`, using local filesystem
After installing "apt-get install joystick" i ran:
~/Downloads/sdltest/sdl-jstest/build $ jstest /dev/input/js0 Driver version is 2.1.0. Joystick ( SAILI Simulator --- XTR5.5+G2+FMS Controller) has 4 axes (X, Y, Rz, Throttle) and 4 buttons (Trigger, ThumbBtn, ThumbBtn2, TopBtn). Testing ... (interrupt to exit) Axes: 0: 14863 1: 0 2: 0 3: 0 Buttons: 0:on 1:off 2:off 3:off
Correctly recognized 4 axes and a button. 0=thr, 1= elev, 2=ruddr, 3=ailerons,
Zitat von reginar im Beitrag #23Starting game from console it complains about: Preloaded 'ScreenSelector.so' Unable to preload the following plugins: ScreenSelector.so Player data archive not found at `/home/user/Downloads/cgm-rc-heli-simulator-linux-x86-64bit-1497/Linux x86+64bit/neXt_Data/data.unity3d`, using local filesystem
For me it works despite the same messages.
Did you export the SDL_GAMECONTROLLERCONFIG env variable holding a meaningful string?