Linux playground

Matias Saibene

Developing and CMakin'
Joined
Jul 7, 2012
Messages
1,079
Reaction score
688
Points
128
Location
Monte Hermoso - Argentina
Website
de-todo-un-poco-computacion-e-ideas.blogspot.com.ar
WOW! Is this real? 🤩 Orbiter is actually really meeting Arch!! 😃
I mean, it's just both on this planet 🌍, but it's even more than that too me.

For years I have been playing with Orbiter on Windows. In recent years, I became a total Linux geek too (especially Arch).
And I also have already experimented with my existing Orbiter 2016 instance in Wine, which already worked almost seamlessly with really decent performance (it worked using a DirectX to Vulcan port if I am right), with only some really small tweaks.

But clearly what we are talking about here looks like a native Linux build (ELF instead of EXE) from the Beta open source version if I am seeing it correctly. That's really amazing (still many credits go to Martin Schweiger for all his years of work of course!).

However, can I ask a question? The thing is, installing from AUR is great, but this generally installs Orbiter on in a centralized way on your system.
On Windows I am used to the fact that I can maintain multiple copies from Orbiter in separate directories.
What options do I have for this on Linux? Can I maintain multiple instances? (What I now about many Linux binaries is that these are often built and linked to specific library paths that cannot be changed, but maybe I can still have multiple user configurations or something like that?).
I usually have several installations of Orbiter on Linux, simply following @Gondos' instructions in the first post and then I can copy and paste the orbiter_test folder wherever I want. Think of the AUR version of Orbiter as an MSI that installs to \ProgramFiles\.
 

johnnymanly

Donator
Donator
Joined
Mar 17, 2008
Messages
55
Reaction score
23
Points
8
Location
Southwest Pennsylginia
WOW! Is this real? 🤩 Orbiter is actually really meeting Arch!! 😃
I mean, it's just both on this planet 🌍, but it's even more than that too me.

For years I have been playing with Orbiter on Windows. In recent years, I became a total Linux geek too (especially Arch).
And I also have already experimented with my existing Orbiter 2016 instance in Wine, which already worked almost seamlessly with really decent performance (it worked using a DirectX to Vulcan port if I am right), with only some really small tweaks.

But clearly what we are talking about here looks like a native Linux build (ELF instead of EXE) from the Beta open source version if I am seeing it correctly. That's really amazing (Still many credits go to Martin Schweiger for all his years of work of course! And amazing too is the fact that he decided to share his code with the community and make it open source, not everyone would do that).

However, can I ask a question? The thing is, installing from AUR is great, but this generally installs Orbiter on in a centralized way on your system.
On Windows I am used to the fact that I can maintain multiple copies from Orbiter in separate directories.
What options do I have for this on Linux? Can I maintain multiple instances? (What I now about many Linux binaries is that these are often built and linked to specific library paths that cannot be changed, but maybe I can still have multiple user configurations or something like that?).
The makepkg doesn't install anything, pacman does. Just don't run pacman after you build the package. Instead copy the relevant package files to whatever orbiter directory.
 

Eduard

Member
Joined
Dec 18, 2015
Messages
57
Reaction score
6
Points
8
I usually have several installations of Orbiter on Linux, simply following @Gondos' instructions in the first post and then I can copy and paste the orbiter_test folder wherever I want. Think of the AUR version of Orbiter as an MSI that installs to \ProgramFiles\.
Ah, thanks. Alright, that's a separate build. Looking at the PKGBUILD would probably also work.
Great time for me to actually start learning a bit more about cmake one day. I have written in C and C++ on moments in the past (mostly not related to Orbiter), but not yet used cmake.
And I have also compiled some existing open source applications by hand in recent years, but just not cmake yet, or they silently had, but I did not need to touch it directly
(I am a software engineer, but mostly in other programming languages, although I have really touched a ton of things)
 
Last edited:

Eduard

Member
Joined
Dec 18, 2015
Messages
57
Reaction score
6
Points
8
The makepkg doesn't install anything, pacman does. Just don't run pacman after you build the package. Instead copy the relevant package files to whatever orbiter directory.
Thanks for your good intentions, but I really know Arch very well, my question was really because I just discovered this thread yet and I just started questioning and exploring how things would work for Orbiter specifically.
 

Col Brubaker

Hoax Developer
Joined
May 21, 2011
Messages
82
Reaction score
40
Points
33
Location
Free Republic of Germany
Thank you MuttonChops2010. But at the moment I have not enough space on my disks. And I don't want to start with Arch another project.

But now I also have a Kali with Orbiter and I am able to make a .iso from it. Well, now I have remove the big planets. But it works.
If somebody is interested, please ask me.


 

johnnymanly

Donator
Donator
Joined
Mar 17, 2008
Messages
55
Reaction score
23
Points
8
Location
Southwest Pennsylginia
I reported, a while ago, that I couldn't control a vessel class written in Lua with the numpad. RCS was fine just no control surfaces.
I just compiled a vessel class (a .so) and I have the same problem. No control surfaces with the numpad. Joystick is fine and stock vessels are fine.
Any similar experiences?
 

Matias Saibene

Developing and CMakin'
Joined
Jul 7, 2012
Messages
1,079
Reaction score
688
Points
128
Location
Monte Hermoso - Argentina
Website
de-todo-un-poco-computacion-e-ideas.blogspot.com.ar
I reported, a while ago, that I couldn't control a vessel class written in Lua with the numpad. RCS was fine just no control surfaces.
I just compiled a vessel class (a .so) and I have the same problem. No control surfaces with the numpad. Joystick is fine and stock vessels are fine.
Any similar experiences?
Have you tried ALT+/ to activate the control surfaces? It happened to me with my I.Ae 37.
 

Sword7

Member
Joined
Mar 23, 2008
Messages
143
Reaction score
18
Points
18
Location
Gaithersburg, MD
One suggestion: There is Ajaja's SPICE for Orbiter module on GitHub so that this Orbiter can have full solar system with Pluto, etc.

I got SPICE toolkit from NAIF website and you can compile SPICE into a shared library as spice.so. Ajaja's module can link spice.so for function calls like spkgeo_c, etc.
 

Hecata

New member
Joined
Oct 18, 2023
Messages
2
Reaction score
0
Points
1
Location
Semey
Hi! I have an issue with installation of Orbiter on fedora 38. After "time make -j$(nproc) install" command I have:

[ 4%] Building CXX object Addons/NASSP/CMakeFiles/CMChute.dir/Orbitersdk/samples/ProjectApollo/src_landing/CMChute.cpp.o
make[2]: *** No rule to make target 'Src/Orbitersdk/libOrbitersdk.a', needed by 'Addons/NASSP/libCMChute.so'. Stop.
make[2]: *** Waiting for unfinished jobs....

Then,

[ 6%] Built target imgui-node-editor
make: *** [Makefile:156: all] Error 2

Do you know how to fix it?
 

Jordan

Active member
Joined
May 13, 2010
Messages
137
Reaction score
80
Points
43
Location
Germany
It would be better to include the entire build log. But paste it as CODE don't just copy it into your comment.
 

Hecata

New member
Joined
Oct 18, 2023
Messages
2
Reaction score
0
Points
1
Location
Semey
It would be better to include the entire build log. But paste it as CODE don't just copy it into your comment.
Orbiter 2016 was installed successfully today (laptop was restarted). The scenarios crashes few seconds after they've loaded. Here is the log.
Code:
Generic base textures
initialize_saturn
InputController::GlobalInit
Sol: Sun
./Config/Sun.cfg
Sol: Mercury
./Config/Mercury.cfg
Sol: Venus
./Config/Venus.cfg
Sol: Earth
./Config/Earth.cfg
./Config/Earth/Base/Al_Anbar.cfg
./Config/Earth/Base/Alcantara.cfg
./Config/Earth/Base/Baikonur.cfg
./Config/Earth/Base/Barent_Sea.cfg
./Config/Earth/Base/Canaveral.cfg
./Config/Earth/Base/China_Lake.cfg
./Config/Earth/Base/Doberai.cfg
./Config/Earth/Base/Edwards.cfg
./Config/Earth/Base/Gran_canaria.cfg
./Config/Earth/Base/Habana.cfg
./Config/Earth/Base/Hammaguira.cfg
./Config/Earth/Base/Inyokern.cfg
./Config/Earth/Base/Jingyu.cfg
./Config/Earth/Base/Jiuquan.cfg
./Config/Earth/Base/Kagoshima.cfg
./Config/Earth/Base/Kapustin_Yar.cfg
./Config/Earth/Base/Kourou.cfg
./Config/Earth/Base/Matagorda.cfg
./Config/Earth/Base/Mojave.cfg
./Config/Earth/Base/Musudan.cfg
./Config/Earth/Base/Overberg.cfg
./Config/Earth/Base/Palmachim.cfg
./Config/Earth/Base/Palmdale.cfg
./Config/Earth/Base/Peenemunde.cfg
./Config/Earth/Base/Plesetsk.cfg
./Config/Earth/Base/Salto_di_Quirra.cfg
./Config/Earth/Base/San_Marco.cfg
./Config/Earth/Base/Sriharikota.cfg
./Config/Earth/Base/Svobodniy.cfg
./Config/Earth/Base/Taiyuan.cfg
./Config/Earth/Base/Tanegashima.cfg
./Config/Earth/Base/Vandenberg.cfg
./Config/Earth/Base/Wallops_Island.cfg
./Config/Earth/Base/White_Sands.cfg
./Config/Earth/Base/Woomera.cfg
./Config/Earth/Base/Wuzhai.cfg
./Config/Earth/Base/Xichang.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!
Atlantis (STS-101)
Vessel::RegisterModule Atlantis
basename=Atlantis
dirname=.
CWD modified by module OGLClient - Fixing.
CWD modified by module AtmConfig - Fixing.
CWD modified by module XRSound - Fixing.
CWD modified by module ExtMFD - Fixing.
CWD modified by module ApolloRTCCMFD - Fixing.
CWD modified by module ProjectApolloMFD - Fixing.
CWD modified by module ScnEditor - Fixing.
CWD modified by module Orb42S - Fixing.
Loading XRSound/Default/SwitchOn1.wav
Loading XRSound/Default/SwitchOff1.wav
Loading XRSound/Default/Air Conditioning.wav
Loading XRSound/Default/Landed Wind.wav
Loading XRSound/Default/Welcome Aboard All Systems Nominal.wav
Loading XRSound/Default/Wheelbrakes Noise.wav
Loading XRSound/Default/Docking Radar Beep.wav
Loading XRSound/Default/Main Engines.wav
Loading XRSound/Default/RCS Attack.wav
Loading XRSound/Default/RCS Sustain.wav
Loading XRSound/Default/Crash.wav
Loading XRSound/Default/Metal Crunch.wav
Loading XRSound/Default/Touchdown.wav
Loading XRSound/Default/100 Knots.wav
Loading XRSound/Default/Flight Wind.wav
Loading XRSound/Default/Reentry Plasma.wav
Loading XRSound/Default/Autopilot On.wav
Loading XRSound/Default/Autopilot Off.wav
Loading XRSound/Default/Sonic Boom.wav
Loading XRSound/Default/Subsonic.wav
Loading XRSound/Default/Wheels Down.wav
Loading XRSound/Default/Wheel Chirp.wav
Loading XRSound/Default/Wheel Stop.wav
Loading XRSound/Default/Tires Rolling.wav
Loading XRSound/Default/Sonic Boom Twin.wav
Segmentation fault (core dumped)

Today I have read that it was the case of porting exercise. I am going to delete it. Sorry for bothering you! Have a good day!
 

Sword7

Member
Joined
Mar 23, 2008
Messages
143
Reaction score
18
Points
18
Location
Gaithersburg, MD
I reviewed entire orbiter and OpenGL client source codes. I now learned that Orbiter uses left-handed rule for math because its original Direct3D interface uses left-handed rule as default. Physics uses right-handed rule. I googled some and now learned about left-hand and right-hand coordinate systems.

OpenGL uses right-handed rule as default. If you use right-handed rule, everything will be in reversal image. To convert to right-handed rule, just negate Z values or use glm:: perspectiveLH function call. I saw UpdateProjectionMatrix function call in Camera.cpp uses 1.0 in m22 as left-handed rule. For best results and ways, use glm:: perspectiveLH for projection matrix in graphics client to keep Orbiter source codes in preservation (UpdateProjectionMatrix function call already uses own custom formula for left-handed perspective).
 

Matias Saibene

Developing and CMakin'
Joined
Jul 7, 2012
Messages
1,079
Reaction score
688
Points
128
Location
Monte Hermoso - Argentina
Website
de-todo-un-poco-computacion-e-ideas.blogspot.com.ar
I reviewed entire orbiter and OpenGL client source codes. I now learned that Orbiter uses left-handed rule for math because its original Direct3D interface uses left-handed rule as default. Physics uses right-handed rule. I googled some and now learned about left-hand and right-hand coordinate systems.

OpenGL uses right-handed rule as default. If you use right-handed rule, everything will be in reversal image. To convert to right-handed rule, just negate Z values or use glm:: perspectiveLH function call. I saw UpdateProjectionMatrix function call in Camera.cpp uses 1.0 in m22 as left-handed rule. For best results and ways, use glm:: perspectiveLH for projection matrix in graphics client to keep Orbiter source codes in preservation (UpdateProjectionMatrix function call already uses own custom formula for left-handed perspective).
Excuse my ignorance, but if the Orbiter coordinate system is changed to one that is right-based, would the change have to be updated in all add-ons?
 

n72.75

Move slow and try not to break too much.
Orbiter Contributor
Addon Developer
Tutorial Publisher
Donator
Joined
Mar 21, 2008
Messages
2,703
Reaction score
1,367
Points
128
Location
Saco, ME
Website
mwhume.space
Preferred Pronouns
he/him
Excuse my ignorance, but if the Orbiter coordinate system is changed to one that is right-based, would the change have to be updated in all add-ons?

Please no. I've already dedicated my life to Orbiter's quirky lefthandness.

Worst case, getting a new addon or new code to work is a case of adding a negative sign or swapping y and z.

Getting everything to work in some big conversion effort would be a nightmare. Many things could be broken in ways that are not obvious or easy to test.
 

Sword7

Member
Joined
Mar 23, 2008
Messages
143
Reaction score
18
Points
18
Location
Gaithersburg, MD
Please no. I've already dedicated my life to Orbiter's quirky lefthandness.

Worst case, getting a new addon or new code to work is a case of adding a negative sign or swapping y and z.

Getting everything to work in some big conversion effort would be a nightmare. Many things could be broken in ways that are not obvious or easy to test.

Yeah. That is right. We have to use left-handed perspective to keep everything unchanged.
 
Top