Linux playground

yitianetie

Member
Joined
Mar 24, 2020
Messages
50
Reaction score
18
Points
23
Location
Brittany
Hi everyone,

I would, like you, to experiment this version of Orbiter on Linux. I have passed the compilation successfully. But I get, every time I launch a scenario, segmentation errors.
Code:
Generic base textures
initialize_saturn
GamepadController: Joystick 0 detected as '(null)'
Sol: Sun
./Config/Sun.cfg
Sol: Mercury
./Config/Mercury.cfg
Sol: Venus
./Config/Venus.cfg
Sol: Earth
./Config/Earth.cfg
./Config/Earth/Base/Doberai.cfg
./Config/Earth/Base/Baikonur.cfg
./Config/Earth/Base/Hammaguira.cfg
./Config/Earth/Base/Gran_canaria.cfg
./Config/Earth/Base/Edwards.cfg
./Config/Earth/Base/Taiyuan.cfg
./Config/Earth/Base/Vandenberg.cfg
./Config/Earth/Base/Al_Anbar.cfg
./Config/Earth/Base/Svobodniy.cfg
./Config/Earth/Base/Musudan.cfg
./Config/Earth/Base/Barent_Sea.cfg
./Config/Earth/Base/Jiuquan.cfg
./Config/Earth/Base/Xichang.cfg
./Config/Earth/Base/Wuzhai.cfg
./Config/Earth/Base/Habana.cfg
./Config/Earth/Base/Overberg.cfg
./Config/Earth/Base/White_Sands.cfg
./Config/Earth/Base/Woomera.cfg
./Config/Earth/Base/Sriharikota.cfg
./Config/Earth/Base/Plesetsk.cfg
./Config/Earth/Base/Matagorda.cfg
./Config/Earth/Base/Tanegashima.cfg
./Config/Earth/Base/San_Marco.cfg
./Config/Earth/Base/Kapustin_Yar.cfg
./Config/Earth/Base/Salto_di_Quirra.cfg
./Config/Earth/Base/Mojave.cfg
./Config/Earth/Base/Wallops_Island.cfg
./Config/Earth/Base/China_Lake.cfg
./Config/Earth/Base/Canaveral.cfg
./Config/Earth/Base/Jingyu.cfg
./Config/Earth/Base/Inyokern.cfg
./Config/Earth/Base/Palmdale.cfg
./Config/Earth/Base/Kagoshima.cfg
./Config/Earth/Base/Kourou.cfg
./Config/Earth/Base/Palmachim.cfg
./Config/Earth/Base/Peenemunde.cfg
./Config/Earth/Base/Alcantara.cfg
./Config/Moon.cfg
./Config/Moon/Base/Brighton.cfg
Sol: Mars
./Config/Mars.cfg
./Config/Mars/Base/Olympus.cfg
./Config/Phobos.cfg
./Config/Deimos.cfg
Sol: Vesta
./Config/Vesta.cfg
Sol: Jupiter
./Config/Jupiter.cfg
./Config/Io.cfg
./Config/Europa.cfg
./Config/Ganymede.cfg
./Config/Callisto.cfg
Sol: Saturn
./Config/Saturn.cfg
./Config/Mimas.cfg
./Config/Enceladus.cfg
./Config/Tethys.cfg
./Config/Dione.cfg
./Config/Rhea.cfg
./Config/Titan.cfg
./Config/Hyperion.cfg
./Config/Iapetus.cfg
Sol: Uranus
./Config/Uranus.cfg
./Config/Miranda.cfg
./Config/Ariel.cfg
./Config/Umbriel.cfg
./Config/Titania.cfg
./Config/Oberon.cfg
Sol: Neptune
./Config/Neptune.cfg
./Config/Triton.cfg
./Config/Proteus.cfg
./Config/Nereid.cfg
ProjectAlpha_ISS (ISS)
Problem: module didn't create a VESSEL instance!
Mir (Mir)
Problem: module didn't create a VESSEL instance!
Wheel (Luna-OB1)
Problem: module didn't create a VESSEL instance!
DG-S (GL-01S)
Vessel::RegisterModule DeltaGlider
basename=DeltaGlider
dirname=.
ShuttleA (SH-03)
Vessel::RegisterModule ShuttleA
basename=ShuttleA
dirname=.
ShuttlePB (PB-01)
Vessel::RegisterModule ShuttlePB
basename=ShuttlePB
dirname=.
DeltaGlider (GL-02)
Vessel::RegisterModule DeltaGlider
basename=DeltaGlider
dirname=.
ShuttleA (SH-01)
Vessel::RegisterModule ShuttleA
basename=ShuttleA
dirname=.
CWD modified by module OGLClient - Fixing.
CWD modified by module ExtMFD - Fixing.
CWD modified by module ApolloRTCCMFD - Fixing.
CWD modified by module ProjectApolloMFD - Fixing.
CWD modified by module AeroBrakeMFD - Fixing.
CWD modified by module LuaInline - Fixing.
PolyLineSet::Load failed ./Config/Earth/Data/contour.vec
Erreur de segmentation

If someone could help me, I would be very grateful. I use the latest nvidia driver (510) on Debian testing.
 

Jordan

Active member
Joined
May 13, 2010
Messages
136
Reaction score
80
Points
43
Location
Germany
Hi everyone,

I would, like you, to experiment this version of Orbiter on Linux. I have passed the compilation successfully. But I get, every time I launch a scenario, segmentation errors.
Code:
Generic base textures
initialize_saturn
GamepadController: Joystick 0 detected as '(null)'
Sol: Sun
./Config/Sun.cfg
Sol: Mercury
./Config/Mercury.cfg
Sol: Venus
./Config/Venus.cfg
Sol: Earth
./Config/Earth.cfg
./Config/Earth/Base/Doberai.cfg
./Config/Earth/Base/Baikonur.cfg
./Config/Earth/Base/Hammaguira.cfg
./Config/Earth/Base/Gran_canaria.cfg
./Config/Earth/Base/Edwards.cfg
./Config/Earth/Base/Taiyuan.cfg
./Config/Earth/Base/Vandenberg.cfg
./Config/Earth/Base/Al_Anbar.cfg
./Config/Earth/Base/Svobodniy.cfg
./Config/Earth/Base/Musudan.cfg
./Config/Earth/Base/Barent_Sea.cfg
./Config/Earth/Base/Jiuquan.cfg
./Config/Earth/Base/Xichang.cfg
./Config/Earth/Base/Wuzhai.cfg
./Config/Earth/Base/Habana.cfg
./Config/Earth/Base/Overberg.cfg
./Config/Earth/Base/White_Sands.cfg
./Config/Earth/Base/Woomera.cfg
./Config/Earth/Base/Sriharikota.cfg
./Config/Earth/Base/Plesetsk.cfg
./Config/Earth/Base/Matagorda.cfg
./Config/Earth/Base/Tanegashima.cfg
./Config/Earth/Base/San_Marco.cfg
./Config/Earth/Base/Kapustin_Yar.cfg
./Config/Earth/Base/Salto_di_Quirra.cfg
./Config/Earth/Base/Mojave.cfg
./Config/Earth/Base/Wallops_Island.cfg
./Config/Earth/Base/China_Lake.cfg
./Config/Earth/Base/Canaveral.cfg
./Config/Earth/Base/Jingyu.cfg
./Config/Earth/Base/Inyokern.cfg
./Config/Earth/Base/Palmdale.cfg
./Config/Earth/Base/Kagoshima.cfg
./Config/Earth/Base/Kourou.cfg
./Config/Earth/Base/Palmachim.cfg
./Config/Earth/Base/Peenemunde.cfg
./Config/Earth/Base/Alcantara.cfg
./Config/Moon.cfg
./Config/Moon/Base/Brighton.cfg
Sol: Mars
./Config/Mars.cfg
./Config/Mars/Base/Olympus.cfg
./Config/Phobos.cfg
./Config/Deimos.cfg
Sol: Vesta
./Config/Vesta.cfg
Sol: Jupiter
./Config/Jupiter.cfg
./Config/Io.cfg
./Config/Europa.cfg
./Config/Ganymede.cfg
./Config/Callisto.cfg
Sol: Saturn
./Config/Saturn.cfg
./Config/Mimas.cfg
./Config/Enceladus.cfg
./Config/Tethys.cfg
./Config/Dione.cfg
./Config/Rhea.cfg
./Config/Titan.cfg
./Config/Hyperion.cfg
./Config/Iapetus.cfg
Sol: Uranus
./Config/Uranus.cfg
./Config/Miranda.cfg
./Config/Ariel.cfg
./Config/Umbriel.cfg
./Config/Titania.cfg
./Config/Oberon.cfg
Sol: Neptune
./Config/Neptune.cfg
./Config/Triton.cfg
./Config/Proteus.cfg
./Config/Nereid.cfg
ProjectAlpha_ISS (ISS)
Problem: module didn't create a VESSEL instance!
Mir (Mir)
Problem: module didn't create a VESSEL instance!
Wheel (Luna-OB1)
Problem: module didn't create a VESSEL instance!
DG-S (GL-01S)
Vessel::RegisterModule DeltaGlider
basename=DeltaGlider
dirname=.
ShuttleA (SH-03)
Vessel::RegisterModule ShuttleA
basename=ShuttleA
dirname=.
ShuttlePB (PB-01)
Vessel::RegisterModule ShuttlePB
basename=ShuttlePB
dirname=.
DeltaGlider (GL-02)
Vessel::RegisterModule DeltaGlider
basename=DeltaGlider
dirname=.
ShuttleA (SH-01)
Vessel::RegisterModule ShuttleA
basename=ShuttleA
dirname=.
CWD modified by module OGLClient - Fixing.
CWD modified by module ExtMFD - Fixing.
CWD modified by module ApolloRTCCMFD - Fixing.
CWD modified by module ProjectApolloMFD - Fixing.
CWD modified by module AeroBrakeMFD - Fixing.
CWD modified by module LuaInline - Fixing.
PolyLineSet::Load failed ./Config/Earth/Data/contour.vec
Erreur de segmentation

If someone could help me, I would be very grateful. I use the latest nvidia driver (510) on Debian testing.

Did you follow the step that Gondos explained in post 1?
To use it, you'll need to extract an official Orbiter2016.zip in e.g. ~/orbiter_test/Orbiter then compile the linux version :
 
Last edited:

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
222
Reaction score
258
Points
78
Location
On my chair
Who doesn't like spaghetti 😅
Got a prototype working for a graphical controller bindings interface and the result can be, hum, interesting ...
One difficulty is that the activation of RCS and Control surfaces is hard coded into the Orbiter core (you cannot activate rotation, translation and air surfaces at the same time with different keys) so I had to change that to be able to de-correlate them. However RCS/Airsurfaces switches have long made their way into most aircraft models so I could not totally break that assumption.

The end result is :
  • keyboard controls [should] act the same as in vanilla Orbiter (on the plus side, I think I fixed the "+" key not setting the engine to full throttle)
  • for joysticks, you can query (or modify) the state of RCS/Airsurfaces from the graph and use filters to send the signals where needed if you want to keep the old behavior, or you can directly wire the controls to the outputs if you have some crazy hardware with enough sticks and buttons (you can even waste a slider to control the HUD brightness if you want:ROFLMAO:).

There are some helper nodes to convert between signals of different types/ranges, and some logic functions to allow more complex behavior.
In this example I used a "Decoder" node and "Filter"s to combine the controller shoulder buttons as some kind of shift-keys.
controllergraph.png
One thing that really needs changing is the explicit conversion from button state to button press events (the "Trigger" nodes on the graph) because they add a lot of noise...
You can edit the graph while flying but I wouldn't advise it ;)

Edit: Forgot to mention it even though it was the initial goal : you can use multiple controllers at the same time:
multicontroller.png
 
Last edited:

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
222
Reaction score
258
Points
78
Location
On my chair
Hmm. That spaghetti debugging is new to me. Which debugger uses that?
This is a custom graph editor used to map controller buttons to actions inside Orbiter. For example this maps Button0 to the KillRot autopilot :
bm.png
 

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
222
Reaction score
258
Points
78
Location
On my chair
I pushed the prototype to github, for now you can right-click on the ingame menu bar to open the joystick configuration window.
The goal is to plug joystick nodes outputs to controller nodes (yeah the name is poorly chosen...) inputs.
There are controller nodes for camera, thrusters, control surfaces, HUD, autopilots...
Orbiter uses [0;1] ranges for thrusters power and [-1;1] for control surfaces, the editor provides conversion nodes to help convert the [-1;1] range given by the controllers to the values required by Orbiter.
The pins are color coded to help you in the process.

Still not satisfied with the way multiple vessel classes are handled (a new profile is created each time you load a new class) but I prefer to post it as-is to see if bigger issues are present.
A markdown parser has been added too (you can check the About dialog to see if it works properly).
I probably messed something up with all the submodules so don't hesitate to post if you have any problem.
Next step I'll probably try to migrate the scenarios to use markdown instead of HTML for their description because integrating a proper HTML parser/renderer is really a massive undertaking and I think it is pretty much overkill for the things we need to show anyway...
The nice thing is that plain text is markdown compatible so it should simplify things a bit.

Edit : preview done
preview.png
 
Last edited:

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
222
Reaction score
258
Points
78
Location
On my chair
Some progress on planetarium mode, legacy landmarks are OK but still no luck with the new label format 😫
planetarium.png
Edit : hum, that is odd, if I comment the label_format check in Scene.cpp, I get to see some markers.
Code:
   int label_format = *(int*)oapiGetObjectParam(hObj, OBJPRM_PLANET_LABELENGINE);
   if (/*label_format < 2 &&*/ (plnmode & PLN_LMARK)) { // user-defined planetary surface labels
but both the DX7 and DX9 clients do have the test, even the old GC does it...
 
Last edited:

Matias Saibene

Development hell
Joined
Jul 7, 2012
Messages
1,033
Reaction score
596
Points
128
Location
Monte Hermoso - Argentina
Website
de-todo-un-poco-computacion-e-ideas.blogspot.com.ar
Hi @Gondos
I've retested Orbiter on Linux, but I get this compile error:
make: *** [Makefile:156: all] Error 2

Here's my log so you can check it out when you have time:
Bash:
[matias@matias-pc Orbiter]$ git clone https://github.com/TheGondos/orbiter.git
Clonando en 'orbiter'...
remote: Enumerating objects: 25189, done.
remote: Counting objects: 100% (267/267), done.
remote: Compressing objects: 100% (116/116), done.
remote: Total 25189 (delta 151), reused 259 (delta 151), pack-reused 24922
Recibiendo objetos: 100% (25189/25189), 495.44 MiB | 768.00 KiB/s, listo.
Resolviendo deltas: 100% (14983/14983), listo.
Actualizando archivos: 100% (6465/6465), listo.
[matias@matias-pc Orbiter]$ cd orbiter/
[matias@matias-pc orbiter]$ git checkout linux
rama 'linux' configurada para rastrear 'origin/linux'.
Cambiado a nueva rama 'linux'
[matias@matias-pc orbiter]$ git submodule update --init --recursive
Submódulo 'Addons/Deepstar' (https://github.com/TheGondos/Deepstar.git) registrado para ruta 'Addons/Deepstar'
Submódulo 'Addons/G42-200' (https://github.com/TheGondos/G42-200.git) registrado para ruta 'Addons/G42-200'
Submódulo 'Addons/NASSP' (https://github.com/TheGondos/NASSP.git) registrado para ruta 'Addons/NASSP'
Submódulo 'Addons/UCSO' (https://github.com/TheGondos/UCSO.git) registrado para ruta 'Addons/UCSO'
Submódulo 'Addons/XRVessels' (https://github.com/TheGondos/XRVessels.git) registrado para ruta 'Addons/XRVessels'
Submódulo 'Extern/SDL_GameControllerDB' (https://github.com/gabomdq/SDL_GameControllerDB) registrado para ruta 'Extern/SDL_GameControllerDB'
Submódulo 'Extern/imgui' (https://github.com/TheGondos/imgui.git) registrado para ruta 'Extern/imgui'
Submódulo 'Extern/imgui-node-editor' (https://github.com/TheGondos/imgui-node-editor.git) registrado para ruta 'Extern/imgui-node-editor'
Submódulo 'Extern/imgui-notify' (https://github.com/TheGondos/imgui-notify.git) registrado para ruta 'Extern/imgui-notify'
Submódulo 'Extern/imgui_md' (https://github.com/TheGondos/imgui_md.git) registrado para ruta 'Extern/imgui_md'
Submódulo 'Extern/libnsbmp' (https://github.com/TheGondos/libnsbmp.git) registrado para ruta 'Extern/libnsbmp'
Submódulo 'Extern/md4c' (https://github.com/mity/md4c.git) registrado para ruta 'Extern/md4c'
Submódulo 'OVP/OGLClient/SOIL2' (https://github.com/TheGondos/SOIL2.git) registrado para ruta 'OVP/OGLClient/SOIL2'
Submódulo 'OVP/OGLClient/nanovg' (https://github.com/TheGondos/nanovg.git) registrado para ruta 'OVP/OGLClient/nanovg'
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Addons/Deepstar'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Addons/G42-200'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Addons/NASSP'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Addons/UCSO'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Addons/XRVessels'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/SDL_GameControllerDB'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/imgui'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/imgui-node-editor'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/imgui-notify'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/imgui_md'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/libnsbmp'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/md4c'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/OVP/OGLClient/SOIL2'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/OVP/OGLClient/nanovg'...
Ruta de submódulo 'Addons/Deepstar': check out realizado a 'c67339fdfb8f054ed4234bacdd2a800688a74330'
Ruta de submódulo 'Addons/G42-200': check out realizado a '464692428ccdf6950f4f8208396d067b6babf48c'
Ruta de submódulo 'Addons/NASSP': check out realizado a 'd7bbd12c9d02a513999e7b170798ad5cbe09fc9c'
Ruta de submódulo 'Addons/UCSO': check out realizado a 'd0deb090aa65e9b53424d8411b34a6a140ad2a20'
Ruta de submódulo 'Addons/XRVessels': check out realizado a '1fff9ec7eca68fba01a0b1a9f7721f0b05b18178'
Ruta de submódulo 'Extern/SDL_GameControllerDB': check out realizado a 'ccac7cd97f445955d4437e21c5f82123d9b4349b'
Ruta de submódulo 'Extern/imgui': check out realizado a '6edec9591adbf11a96f13a465dfde76de06539ab'
Ruta de submódulo 'Extern/imgui-node-editor': check out realizado a '1f65fc1823e80f08e87d64a477239d399e5adbd1'
Ruta de submódulo 'Extern/imgui-notify': check out realizado a '62666c000a6cb1fd2e8d60ea7d6da1087484e37f'
Ruta de submódulo 'Extern/imgui_md': check out realizado a 'd8b4147288884caec03d016eb4ed4b336ecadb45'
Ruta de submódulo 'Extern/libnsbmp': check out realizado a '7e38bf4255396225453b72d5972e43a5d6141245'
Ruta de submódulo 'Extern/md4c': check out realizado a 'e9ff661ff818ee94a4a231958d9b6768dc6882c9'
Ruta de submódulo 'OVP/OGLClient/SOIL2': check out realizado a '013be27c69909301e35a87b4f6d4ce0f29d51fb5'
Ruta de submódulo 'OVP/OGLClient/nanovg': check out realizado a 'da45aa84ff9a966850c428d4087d47200c211a48'
[matias@matias-pc orbiter]$ mkdir build
[matias@matias-pc orbiter]$ cd build
[matias@matias-pc build]$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/orbiter_test ..
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Could NOT find LATEX (missing: LATEX_COMPILER)
-- Found OpenGL: /usr/lib/libOpenGL.so  
-- Found Fontconfig: /usr/lib/libfontconfig.so (found version "2.14.0")
-- Found Freetype: /usr/lib/libfreetype.so (found version "2.12.1")
-- Found OpenAL: /usr/lib/libopenal.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/matias/orbiter_test/Orbiter/orbiter/build
[matias@matias-pc build]$ time make -j$(nproc) install
[  0%] Building CXX object CMakeFiles/imgui-node-editor.dir/Extern/imgui-node-editor/imgui_node_editor.cpp.o
...
[ 35%] Linking CXX shared library libLEM.so
[ 35%] Built target LEM
make: *** [Makefile:156: all] Error 2

real    6m16,754s
user    19m21,345s
sys     1m42,975s
[matias@matias-pc build]$
 

Attachments

  • orbiter-build_15_10_2022.txt
    1.6 MB · Views: 2

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
222
Reaction score
258
Points
78
Location
On my chair
Hi @Gondos
I've retested Orbiter on Linux, but I get this compile error:
make: *** [Makefile:156: all] Error 2

Here's my log so you can check it out when you have time:
Bash:
[matias@matias-pc Orbiter]$ git clone https://github.com/TheGondos/orbiter.git
Clonando en 'orbiter'...
remote: Enumerating objects: 25189, done.
remote: Counting objects: 100% (267/267), done.
remote: Compressing objects: 100% (116/116), done.
remote: Total 25189 (delta 151), reused 259 (delta 151), pack-reused 24922
Recibiendo objetos: 100% (25189/25189), 495.44 MiB | 768.00 KiB/s, listo.
Resolviendo deltas: 100% (14983/14983), listo.
Actualizando archivos: 100% (6465/6465), listo.
[matias@matias-pc Orbiter]$ cd orbiter/
[matias@matias-pc orbiter]$ git checkout linux
rama 'linux' configurada para rastrear 'origin/linux'.
Cambiado a nueva rama 'linux'
[matias@matias-pc orbiter]$ git submodule update --init --recursive
Submódulo 'Addons/Deepstar' (https://github.com/TheGondos/Deepstar.git) registrado para ruta 'Addons/Deepstar'
Submódulo 'Addons/G42-200' (https://github.com/TheGondos/G42-200.git) registrado para ruta 'Addons/G42-200'
Submódulo 'Addons/NASSP' (https://github.com/TheGondos/NASSP.git) registrado para ruta 'Addons/NASSP'
Submódulo 'Addons/UCSO' (https://github.com/TheGondos/UCSO.git) registrado para ruta 'Addons/UCSO'
Submódulo 'Addons/XRVessels' (https://github.com/TheGondos/XRVessels.git) registrado para ruta 'Addons/XRVessels'
Submódulo 'Extern/SDL_GameControllerDB' (https://github.com/gabomdq/SDL_GameControllerDB) registrado para ruta 'Extern/SDL_GameControllerDB'
Submódulo 'Extern/imgui' (https://github.com/TheGondos/imgui.git) registrado para ruta 'Extern/imgui'
Submódulo 'Extern/imgui-node-editor' (https://github.com/TheGondos/imgui-node-editor.git) registrado para ruta 'Extern/imgui-node-editor'
Submódulo 'Extern/imgui-notify' (https://github.com/TheGondos/imgui-notify.git) registrado para ruta 'Extern/imgui-notify'
Submódulo 'Extern/imgui_md' (https://github.com/TheGondos/imgui_md.git) registrado para ruta 'Extern/imgui_md'
Submódulo 'Extern/libnsbmp' (https://github.com/TheGondos/libnsbmp.git) registrado para ruta 'Extern/libnsbmp'
Submódulo 'Extern/md4c' (https://github.com/mity/md4c.git) registrado para ruta 'Extern/md4c'
Submódulo 'OVP/OGLClient/SOIL2' (https://github.com/TheGondos/SOIL2.git) registrado para ruta 'OVP/OGLClient/SOIL2'
Submódulo 'OVP/OGLClient/nanovg' (https://github.com/TheGondos/nanovg.git) registrado para ruta 'OVP/OGLClient/nanovg'
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Addons/Deepstar'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Addons/G42-200'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Addons/NASSP'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Addons/UCSO'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Addons/XRVessels'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/SDL_GameControllerDB'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/imgui'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/imgui-node-editor'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/imgui-notify'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/imgui_md'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/libnsbmp'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/Extern/md4c'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/OVP/OGLClient/SOIL2'...
Clonando en '/home/matias/orbiter_test/Orbiter/orbiter/OVP/OGLClient/nanovg'...
Ruta de submódulo 'Addons/Deepstar': check out realizado a 'c67339fdfb8f054ed4234bacdd2a800688a74330'
Ruta de submódulo 'Addons/G42-200': check out realizado a '464692428ccdf6950f4f8208396d067b6babf48c'
Ruta de submódulo 'Addons/NASSP': check out realizado a 'd7bbd12c9d02a513999e7b170798ad5cbe09fc9c'
Ruta de submódulo 'Addons/UCSO': check out realizado a 'd0deb090aa65e9b53424d8411b34a6a140ad2a20'
Ruta de submódulo 'Addons/XRVessels': check out realizado a '1fff9ec7eca68fba01a0b1a9f7721f0b05b18178'
Ruta de submódulo 'Extern/SDL_GameControllerDB': check out realizado a 'ccac7cd97f445955d4437e21c5f82123d9b4349b'
Ruta de submódulo 'Extern/imgui': check out realizado a '6edec9591adbf11a96f13a465dfde76de06539ab'
Ruta de submódulo 'Extern/imgui-node-editor': check out realizado a '1f65fc1823e80f08e87d64a477239d399e5adbd1'
Ruta de submódulo 'Extern/imgui-notify': check out realizado a '62666c000a6cb1fd2e8d60ea7d6da1087484e37f'
Ruta de submódulo 'Extern/imgui_md': check out realizado a 'd8b4147288884caec03d016eb4ed4b336ecadb45'
Ruta de submódulo 'Extern/libnsbmp': check out realizado a '7e38bf4255396225453b72d5972e43a5d6141245'
Ruta de submódulo 'Extern/md4c': check out realizado a 'e9ff661ff818ee94a4a231958d9b6768dc6882c9'
Ruta de submódulo 'OVP/OGLClient/SOIL2': check out realizado a '013be27c69909301e35a87b4f6d4ce0f29d51fb5'
Ruta de submódulo 'OVP/OGLClient/nanovg': check out realizado a 'da45aa84ff9a966850c428d4087d47200c211a48'
[matias@matias-pc orbiter]$ mkdir build
[matias@matias-pc orbiter]$ cd build
[matias@matias-pc build]$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/orbiter_test ..
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Could NOT find LATEX (missing: LATEX_COMPILER)
-- Found OpenGL: /usr/lib/libOpenGL.so
-- Found Fontconfig: /usr/lib/libfontconfig.so (found version "2.14.0")
-- Found Freetype: /usr/lib/libfreetype.so (found version "2.12.1")
-- Found OpenAL: /usr/lib/libopenal.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/matias/orbiter_test/Orbiter/orbiter/build
[matias@matias-pc build]$ time make -j$(nproc) install
[  0%] Building CXX object CMakeFiles/imgui-node-editor.dir/Extern/imgui-node-editor/imgui_node_editor.cpp.o
...
[ 35%] Linking CXX shared library libLEM.so
[ 35%] Built target LEM
make: *** [Makefile:156: all] Error 2

real    6m16,754s
user    19m21,345s
sys     1m42,975s
[matias@matias-pc build]$
The issue is with the use of optional :
Code:
[ 32%] Building CXX object Addons/NASSP/CMakeFiles/LEM.dir/Orbitersdk/samples/ProjectApollo/src_sys/cdu.cpp.o
En el fichero incluido desde /home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Orbiter.h:14,
                 desde /home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Pane.h:15,
                 desde /home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Camera.cpp:18:
/home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Controller.h:106:10: error: ‘optional’ in namespace ‘std’ does not name a template type
  106 |     std::optional<Pin> inAdd;
      |          ^~~~~~~~
/home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Controller.h:13:1: nota: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’?
   12 | #include "crude_json.h"
  +++ |+#include <optional>
   13 |
/home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Controller.h:107:10: error: ‘optional’ in namespace ‘std’ does not name a template type
  107 |     std::optional<Pin> outAdd;
      |          ^~~~~~~~
/home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Controller.h:107:5: nota: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’?
  107 |     std::optional<Pin> outAdd;
      |     ^~~
[ 32%] Building CXX object Addons/NASSP/CMakeFiles/LEM.dir/Orbitersdk/samples/ProjectApollo/src_sys/checklistController.cpp.o
[ 32%] Building CXX object Addons/NASSP/CMakeFiles/LEM.dir/Orbitersdk/samples/ProjectApollo/src_sys/checklistControllerHelpers.cpp.o
make[2]: *** [Src/Orbiter/CMakeFiles/Orbiter_server.dir/build.make:90: Src/Orbiter/CMakeFiles/Orbiter_server.dir/Camera.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2265: Src/Orbiter/CMakeFiles/Orbiter_server.dir/all] Error 2
make[1]: *** Se espera a que terminen otras tareas....
Strange, I got no such error on my side, maybe it has to do with the compiler version.
Try adding
Code:
#include <optional>
in Controller.h
Edit : I pushed the modification along with a fix to update the viewport when resizing the window
 
Last edited:

Matias Saibene

Development hell
Joined
Jul 7, 2012
Messages
1,033
Reaction score
596
Points
128
Location
Monte Hermoso - Argentina
Website
de-todo-un-poco-computacion-e-ideas.blogspot.com.ar
The issue is with the use of optional :
Code:
[ 32%] Building CXX object Addons/NASSP/CMakeFiles/LEM.dir/Orbitersdk/samples/ProjectApollo/src_sys/cdu.cpp.o
En el fichero incluido desde /home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Orbiter.h:14,
                 desde /home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Pane.h:15,
                 desde /home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Camera.cpp:18:
/home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Controller.h:106:10: error: ‘optional’ in namespace ‘std’ does not name a template type
  106 |     std::optional<Pin> inAdd;
      |          ^~~~~~~~
/home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Controller.h:13:1: nota: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’?
   12 | #include "crude_json.h"
  +++ |+#include <optional>
   13 |
/home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Controller.h:107:10: error: ‘optional’ in namespace ‘std’ does not name a template type
  107 |     std::optional<Pin> outAdd;
      |          ^~~~~~~~
/home/matias/orbiter_test/Orbiter/orbiter/Src/Orbiter/Controller.h:107:5: nota: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’?
  107 |     std::optional<Pin> outAdd;
      |     ^~~
[ 32%] Building CXX object Addons/NASSP/CMakeFiles/LEM.dir/Orbitersdk/samples/ProjectApollo/src_sys/checklistController.cpp.o
[ 32%] Building CXX object Addons/NASSP/CMakeFiles/LEM.dir/Orbitersdk/samples/ProjectApollo/src_sys/checklistControllerHelpers.cpp.o
make[2]: *** [Src/Orbiter/CMakeFiles/Orbiter_server.dir/build.make:90: Src/Orbiter/CMakeFiles/Orbiter_server.dir/Camera.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2265: Src/Orbiter/CMakeFiles/Orbiter_server.dir/all] Error 2
make[1]: *** Se espera a que terminen otras tareas....
Strange, I got no such error on my side, maybe it has to do with the compiler version.
Try adding
Code:
#include <optional>
in Controller.h
Edit : I pushed the modification along with a fix to update the viewport when resizing the window
My internet is slow, when I can download it again I will let you know. Thank you very much for your quick reply.
 

Observation

New member
Joined
Jun 13, 2019
Messages
26
Reaction score
5
Points
3
Hi, I'm having some issues doing all this. First of all, I don't have enough storage space left to install the addons, so I selected the git update paths manually and commented the addons out in the makefiles. It compiled fine, but when I run Orbiter, nothing happens at all. In a console window, I get !hRenderWnd and error 255. I can't find any log. Any clue what might be going wrong?
 

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
222
Reaction score
258
Points
78
Location
On my chair
Hi, I'm having some issues doing all this. First of all, I don't have enough storage space left to install the addons, so I selected the git update paths manually and commented the addons out in the makefiles. It compiled fine, but when I run Orbiter, nothing happens at all. In a console window, I get !hRenderWnd and error 255. I can't find any log. Any clue what might be going wrong?
It means the glfwCreateWindow call failed to create a window. Does you GPU support OpenGL3.3 core profile?
Can you try this ?
Code:
gondos@gondos-desktop:~/github/orbiter$ glxinfo|grep "core profile"
OpenGL core profile version string: 3.3.0 NVIDIA 340.108
OpenGL core profile shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
 

Observation

New member
Joined
Jun 13, 2019
Messages
26
Reaction score
5
Points
3
It means the glfwCreateWindow call failed to create a window. Does you GPU support OpenGL3.3 core profile?
Can you try this ?
Code:
gondos@gondos-desktop:~/github/orbiter$ glxinfo|grep "core profile"
OpenGL core profile version string: 3.3.0 NVIDIA 340.108
OpenGL core profile shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
In fact: I get
Code:
Max core profile version: 0.0
I was doing that in a VM since I work on a machine I don't have root rights on, and that was probably not the best idea, though glfwCreateWindow does work in other contexts. I copied the installation onto the host and added some missing shared libraries into the installation directory (libglfw, libc and libstdc++), but now I get a segmentation fault and nothing more :-(
Also something that is strange but that I don't know if it is related to the issue: Orbiter is interpreted as a library. When run file, I get:
Code:
...$ file Orbiter
Orbiter: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=b3eb6531888fcd12b9b5ead062e6502937492e58, for GNU/Linux 3.2.0, not stripped
 

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
222
Reaction score
258
Points
78
Location
On my chair
In fact: I get
Code:
Max core profile version: 0.0
I was doing that in a VM since I work on a machine I don't have root rights on, and that was probably not the best idea, though glfwCreateWindow does work in other contexts. I copied the installation onto the host and added some missing shared libraries into the installation directory (libglfw, libc and libstdc++), but now I get a segmentation fault and nothing more :-(
Also something that is strange but that I don't know if it is related to the issue: Orbiter is interpreted as a library. When run file, I get:
Code:
...$ file Orbiter
Orbiter: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=b3eb6531888fcd12b9b5ead062e6502937492e58, for GNU/Linux 3.2.0, not stripped
Maybe it has to do with compiling with the PIE option. I don't think it's the problem since "file /bin/ls" outputs the same.
Most likely it's a missing file that is mishandled of produced a null pointer access.
If you cannot run with a debugger, you can try to launch with strace to see if there are file errors before the crash,
 

Observation

New member
Joined
Jun 13, 2019
Messages
26
Reaction score
5
Points
3
gdb recieves SIGSEGV in some unknown stack. It doesn't get to the main.
I can't find anything significant in strace: the beginning is:
Code:
execve("./Orbiter", ["./Orbiter"], 0x7fff355cf7f0 /* 59 vars */) = 0
brk(NULL)                               = 0x55f9addf6000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffc1b9ab0c0) = -1 EINVAL (Invalid argument)
readlink("/proc/self/exe", "/rhome/ul2202015/Documents/progr"..., 4096) = 51
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd7af499000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
The errors seem to be common, so nothing special here. It then proceeds to load the shared libraries. At the end there is:
Code:
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff0bffed000
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff0bffea000
arch_prctl(ARCH_SET_FS, 0x7ff0bffea740) = 0
mprotect(0x7ff0c0397000, 16384, PROT_READ) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---
+++ killed by SIGSEGV +++
Segmentation fault
anything thant looks odd? I guess if it crashes just after loading the libraries on the host while it ran up to glfwCreateWindow on the guest, that means the binaries aren't portable? Seems strange since it's both Debian-based (guest is Kali and host is Ubuntu). Would there be settings at compilation time or in the cmake that would help? Or do I have to compile it on the host?
 

Gondos

Well-known member
Joined
Apr 18, 2022
Messages
222
Reaction score
258
Points
78
Location
On my chair
gdb recieves SIGSEGV in some unknown stack. It doesn't get to the main.
I can't find anything significant in strace: the beginning is:
Code:
execve("./Orbiter", ["./Orbiter"], 0x7fff355cf7f0 /* 59 vars */) = 0
brk(NULL)                               = 0x55f9addf6000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffc1b9ab0c0) = -1 EINVAL (Invalid argument)
readlink("/proc/self/exe", "/rhome/ul2202015/Documents/progr"..., 4096) = 51
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fd7af499000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
The errors seem to be common, so nothing special here. It then proceeds to load the shared libraries. At the end there is:
Code:
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff0bffed000
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff0bffea000
arch_prctl(ARCH_SET_FS, 0x7ff0bffea740) = 0
mprotect(0x7ff0c0397000, 16384, PROT_READ) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---
+++ killed by SIGSEGV +++
Segmentation fault
anything thant looks odd? I guess if it crashes just after loading the libraries on the host while it ran up to glfwCreateWindow on the guest, that means the binaries aren't portable? Seems strange since it's both Debian-based (guest is Kali and host is Ubuntu). Would there be settings at compilation time or in the cmake that would help? Or do I have to compile it on the host?
I'd advise you compile on your host because I don't know if kali is using custom compilation flags for its packages...
Tried running a binary compiled from a kali container but it won't even start because my host libc is not compatible :
Code:
gondos@gondos-desktop:~/kali/Orbiter/Orbiter$ ./Orbiter
./Orbiter: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.35' not found (required by ./Orbiter)
./Orbiter: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by ./Orbiter)
./Orbiter: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./Orbiter)
./Orbiter: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./Orbiter)
 
Top