Linux Support (Beta)

Ask here if you experience technical problems with X4: Foundations.

Moderator: Moderators for English X Forum

lostboron
Posts: 43
Joined: Tue, 4. Jul 17, 19:33

Re: Linux Support (Beta)

Post by lostboron » Thu, 29. Aug 19, 03:25

Frequent crashes during the game. Here is information about some I found in kern.log (steam output does not bring anything relevant):
Aug 26 20:52:23 name_of_my_machine kernel: [12879.007918] Asset Enabling [9566]: segfault at 48 ip 00000000018fed14 sp 00007fa18ec759c0 error 4 in X4[400000+21ea000]
Aug 26 20:58:03 name_of_my_machine kernel: [13219.096220] Movement worker[11230]: segfault at 18 ip 0000000001942ac1 sp 00007feff2ff9850 error 4 in X4[400000+21ea000]
Aug 27 20:35:47 name_of_my_machine kernel: [10588.738074] Movement worker[8246]: segfault at 10 ip 00000000019449ff sp 00007fdce3ffb940 error 4 in X4[400000+21ea000]
Aug 27 20:52:51 name_of_my_machine kernel: [11613.051836] Movement worker[9303]: segfault at fffffffffffffff4 ip 00000000018475d8 sp 00007fd3f9ff79f0 error 5 in X4[400000+21ea000]
Aug 28 19:35:12 name_of_my_machine kernel: [ 6651.567279] Asset Enabling [6009]: segfault at 48 ip 00000000018fed14 sp 00007fcc9988c9c0 error 4 in X4[400000+21ea000]
Aug 28 19:35:33 name_of_my_machine kernel: [ 6673.136344] Movement worker[6266]: segfault at ffffffffffffffef ip 00000000018475d8 sp 00007f9354ff59f0 error 5 in X4[400000+21ea000]
Aug 28 20:51:38 name_of_my_machine kernel: [11237.407735] Asset Enabling [6286]: segfault at 48 ip 00000000018fed14 sp 00007f65eae409c0 error 4 in X4[400000+21ea000]
Config: KUbuntu 18.04, NVidia GeForce GTX 970, driver NVIDIA 430.40. No issue with performance so far.
Does that help ?

User avatar
Knossos
Posts: 56
Joined: Tue, 1. Jun 04, 19:47
x4

Re: Linux Support (Beta)

Post by Knossos » Wed, 11. Sep 19, 21:46

The game just crashed whilst I was docked at my mega-complex:

First came this:
Image

Then came this:
Image

The game ran solidly on older versions (I updated to 2.5 today, from 2.2 (I think)).
Android Software Engineer
Try my hands-free notification reader for your car.

steve_v
Posts: 159
Joined: Sun, 12. Jun 16, 08:39
x4

Re: Linux Support (Beta)

Post by steve_v » Mon, 16. Sep 19, 07:25

Knossos wrote:
Wed, 11. Sep 19, 21:46
Image
The obvious question is, how much VRAM do you have?

User avatar
Knossos
Posts: 56
Joined: Tue, 1. Jun 04, 19:47
x4

Re: Linux Support (Beta)

Post by Knossos » Mon, 16. Sep 19, 08:19

steve_v wrote:
Mon, 16. Sep 19, 07:25
Knossos wrote:
Wed, 11. Sep 19, 21:46
Image
The obvious question is, how much VRAM do you have?
I have 4GB of graphics card memory.

It is a `GeForce GTX 970`.

For what it is worth, I have been playing for hours and the error hasn't occurred again.
Android Software Engineer
Try my hands-free notification reader for your car.

radcapricorn
Moderator (English)
Moderator (English)
Posts: 3230
Joined: Mon, 14. Jul 08, 13:07
x4

Re: Linux Support (Beta)

Post by radcapricorn » Mon, 16. Sep 19, 08:32

Knossos wrote:
Mon, 16. Sep 19, 08:19
For what it is worth, I have been playing for hours and the error hasn't occurred again.
Before launching the game, make sure no other application hogs a large amount of video memory. You can check who's using the VRAM currently with the 'nvidia-smi' command line tool. For example:

Code: Select all

$ nvidia-smi
Mon Sep 16 09:25:57 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.40       Driver Version: 430.40       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 980 Ti  Off  | 00000000:01:00.0  On |                  N/A |
|  0%   58C    P0    71W / 280W |    588MiB /  6080MiB |      2%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      2337      G   /usr/bin/blender                             103MiB |
|    0      8470      G   ...an/.local/share/Steam/ubuntu12_32/steam    44MiB |
|    0      8503      G   ./steamwebhelper                               3MiB |
|    0     10834      G   /usr/lib/Xorg                                231MiB |
|    0     10984      G   /usr/bin/kwin_x11                            111MiB |
|    0     10991      G   /usr/bin/krunner                               3MiB |
|    0     10993      G   /usr/bin/plasmashell                          64MiB |
|    0     11389      G   /usr/bin/alacritty                            12MiB |
|    0     17030      G   /usr/lib/firefox/firefox                       3MiB |
|    0     29718      G   /usr/lib/firefox/firefox                       3MiB |
+-----------------------------------------------------------------------------+
I've Blender running, which uses 103Mb on its own, and also increases the amount Xorg is using, since in a composited environment extra memory is needed for off-screen window storage. After closing Blender:

Code: Select all

$ nvidia-smi
Mon Sep 16 09:28:07 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.40       Driver Version: 430.40       CUDA Version: 10.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 980 Ti  Off  | 00000000:01:00.0  On |                  N/A |
|  0%   56C    P0    71W / 280W |    465MiB /  6080MiB |      1%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      8470      G   ...an/.local/share/Steam/ubuntu12_32/steam    44MiB |
|    0      8503      G   ./steamwebhelper                               3MiB |
|    0     10834      G   /usr/lib/Xorg                                203MiB |
|    0     10984      G   /usr/bin/kwin_x11                            111MiB |
|    0     10991      G   /usr/bin/krunner                               3MiB |
|    0     10993      G   /usr/bin/plasmashell                          72MiB |
|    0     11389      G   /usr/bin/alacritty                            12MiB |
|    0     17030      G   /usr/lib/firefox/firefox                       3MiB |
|    0     29718      G   /usr/lib/firefox/firefox                       3MiB |
+-----------------------------------------------------------------------------+
...total usage went down by about 120Mb.
Since you only have 4Gb, and the game needs at least 3, it could be that that time when you got the error some app(s) was/were hogging more than 1Gb.

fridl
Posts: 85
Joined: Sun, 22. Mar 09, 22:39
x4

Re: Linux Support (Beta)

Post by fridl » Sun, 20. Oct 19, 16:13

I'd like to use X4:Foundations on a openSUSE Leap 15.1 installation. But I don't have any luck.

To troubleshoot I tried to start Steam with

Code: Select all

steam -console
.
Then I tried to follow https://steamcommunity.com/app/203160/d ... /?l=german and renamed libcrypto.so.1.0.0 in the steam folder.
But both did not help.
If someone could have a look over the log and give me some advice I'd be very happy. I know that openSUSE is not officially supported. But never the less I ask for help here. Thank you!

Code: Select all

GameAction [AppID 392160, ActionID 1] : LaunchApp changed task to ProcessingInstallScript with ""
GameAction [AppID 392160, ActionID 1] : LaunchApp changed task to SynchronizingCloud with ""
[392160]Non-Steam Controller Configs Enabled: 1
Installing breakpad exception handler for appid(steam)/version(1571182697)
GameAction [AppID 392160, ActionID 1] : LaunchApp changed task to SiteLicenseSeatCheckout with ""
GameAction [AppID 392160, ActionID 1] : LaunchApp changed task to CreatingProcess with ""
GameAction [AppID 392160, ActionID 1] : LaunchApp waiting for user response to CreatingProcess ""
GameAction [AppID 392160, ActionID 1] : LaunchApp continues with user response "CreatingProcess"
Opted-in Controller Mask for AppId 392160: 0
Game update: AppID 392160 "", ProcID 13078, IP 0.0.0.0:0
Starting app 392160
>>> Adding process 13078 for game ID 392160
GameAction [AppID 392160, ActionID 1] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/fridl/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/fridl/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
GameAction [AppID 392160, ActionID 1] : LaunchApp changed task to Completed with ""
>>> Adding process 13083 for game ID 392160
ERROR: ld.so: object '/home/fridl/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
pid 13091 != 13083, skipping destruction (fork without exec?)
ERROR: ld.so: object '/home/fridl/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
./X4: /usr/lib64/liblber-2.4.so.2: no version information available (required by ./X4)
./X4: /usr/lib64/libldap_r-2.4.so.2: no version information available (required by ./X4)
./X4: /usr/lib64/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by ./X4)
>>> Adding process 13087 for game ID 392160
>>> Adding process 13088 for game ID 392160
>>> Adding process 13089 for game ID 392160
>>> Adding process 13090 for game ID 392160
>>> Adding process 13092 for game ID 392160
Game removed: AppID 392160 "", ProcID 13078 
Uploaded AppInterfaceStats to Steam
Exiting app 392160
EDIT1:
My YaST2-Software management tells me that:

/usr/lib64/liblber-2.4.so.2
/usr/lib64/liblber-2.4.so.2.10.9
/usr/lib64/libldap_r-2.4.so.2
/usr/lib64/libldap_r-2.4.so.2.10.9
is installed.

When searching for libssl it tells:
/usr/lib64/libssl.so.45
/usr/lib64/libssl.so.45.0.1
is installed.

radcapricorn
Moderator (English)
Moderator (English)
Posts: 3230
Joined: Mon, 14. Jul 08, 13:07
x4

Re: Linux Support (Beta)

Post by radcapricorn » Sun, 20. Oct 19, 17:22

fridl wrote:
Sun, 20. Oct 19, 16:13
When searching for libssl it tells:
/usr/lib64/libssl.so.45
/usr/lib64/libssl.so.45.0.1
is installed.
Install libopenssl?

fridl
Posts: 85
Joined: Sun, 22. Mar 09, 22:39
x4

Re: Linux Support (Beta)

Post by fridl » Sun, 20. Oct 19, 17:31

radcapricorn wrote:
Sun, 20. Oct 19, 17:22
Install libopenssl?
libopenssl is in the version installed, that is contined by the openSUSE repos (libopenssl1_1) and contains:

Code: Select all

libcrypto.so.1.1()(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)
libssl.so.1.1()(64bit)
libssl.so.1.1(OPENSSL_1_1_0)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0d)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0f)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0i)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0a)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0c)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0g)(64bit)
libcrypto.so.1.1(OPENSSL_1_1_0h)(64bit)
libssl.so.1.1(OPENSSL_1_1_0d)(64bit)
libopenssl1_1 = 1.1.0i-lp151.8.3.1
libopenssl1_1(x86-64) = 1.1.0i-lp151.8.3.1
and libopenssl1_0_0:

Code: Select all

libcrypto.so.1.0.0()(64bit)
libcrypto.so.1.0.0(OPENSSL_1.0.0)(64bit)
libgost.so()(64bit)
libgost.so(OPENSSL_1.0.0)(64bit)
libpadlock.so()(64bit)
libpadlock.so(OPENSSL_1.0.0)(64bit)
libssl.so.1.0.0()(64bit)
libssl.so.1.0.0(OPENSSL_1.0.0)(64bit)
libopenssl1_0_0 = 1.0.2p-lp151.5.10.1
libopenssl1_0_0(x86-64) = 1.0.2p-lp151.5.10.1
And in addition there is a package libopenssl1.0.0-steam which contains:

Code: Select all

libopenssl1_0_0-steam = 1.0.2p-lp151.5.10.1
libopenssl1_0_0-steam(x86-64) = 1.0.2p-lp151.5.10.1
Have I to search for a repo which provides `OPENSSL_1.0.1'?

radcapricorn
Moderator (English)
Moderator (English)
Posts: 3230
Joined: Mon, 14. Jul 08, 13:07
x4

Re: Linux Support (Beta)

Post by radcapricorn » Sun, 20. Oct 19, 18:36

As far as I can tell, you need both openssl1.0 and 1.1. Perhaps look at the output of this in a terminal:

Code: Select all

$ ldd /path/to/x4/X4
...and see if there are any 'not found'. It may give you a clue on which packages you're missing. (I'm not using SUSE btw, just going by what I can see here on my Arch).

corax
Posts: 16
Joined: Wed, 6. Nov 02, 20:31
x4

Re: Linux Support (Beta)

Post by corax » Sun, 20. Oct 19, 19:36

Same issue here on a GOG install on Gentoo.

Code: Select all

$ for i in x4-2.*; do ldd $i/game/X4 > ldd-$i; done; grep "not found" ldd-x4-2.*
ldd-x4-2.50hf1:	libluajit-5.1.so.2 => not found
ldd-x4-2.50hf1:	libavformat.so.55 => not found
ldd-x4-2.50hf1:	libavcodec.so.55 => not found
ldd-x4-2.50hf1:	libswscale.so.2 => not found
ldd-x4-2.50hf1:	libswresample.so.0 => not found
ldd-x4-2.50hf1:	libavutil.so.52 => not found
ldd-x4-2.50hf1:	libboost_filesystem.so.1.63.0 => not found
ldd-x4-2.50hf1:	libboost_regex.so.1.63.0 => not found
ldd-x4-2.50hf1:	libboost_system.so.1.63.0 => not found
ldd-x4-2.60:	libluajit-5.1.so.2 => not found
ldd-x4-2.60:	libavformat.so.55 => not found
ldd-x4-2.60:	libavcodec.so.55 => not found
ldd-x4-2.60:	libswscale.so.2 => not found
ldd-x4-2.60:	libswresample.so.0 => not found
ldd-x4-2.60:	libavutil.so.52 => not found
ldd-x4-2.60:	libboost_filesystem.so.1.63.0 => not found
ldd-x4-2.60:	libboost_regex.so.1.63.0 => not found
ldd-x4-2.60:	libboost_system.so.1.63.0 => not found
ldd-x4-2.60:	liblber-2.4.so.2 => not found
ldd-x4-2.60:	libldap_r-2.4.so.2 => not found
ldd-x4-2.60:	libssl.so.1.0.0 => not found
ldd-x4-2.60:	libcrypto.so.1.0.0 => not found
 
2.50 ran fine, despite apparently missing a few libraries. The ones new in 2.60 are liblber and libldap, which I found in OpenLDAP/Kerberos, and libssl and libcrypto, which are part of OpenSSL. My package manager prevents me from installing openssl in version 1.0.x because (a considerable number of) packages in my system depend on SSL newer than 1.0, and I besides, I wouldn't want to rely on an old version of a security relevant package anyway.

Anyway, get those packages from somewhere, extract them in a convenient place, and link them into ./{X4path}/game/lib/
Gentoo specific
Show
If anybody runs Gentoo and is wondering how, here's what I did to get those libraries:

Code: Select all

# PKGDIR=/var/cache/binpkgs emerge --buildpkgonly openldap "=dev-libs/openssl-1.0.2t-r1"; # openldap version doesn't matter, ssl does
If you're on a different distro, there has to be a repository somewhere, look for "openldap" and "openssl".

Code: Select all

$ ls -torgal game/lib/
total 21252
-rwxrwxr-x 1 5707349 2019-10-18 18:54 libSDL2-2.0.so.0
-rwxrwxr-x 1 6207136 2019-10-18 18:54 libavcodec.so.55
-rwxrwxr-x 1 1148008 2019-10-18 18:54 libavformat.so.55
-rwxrwxr-x 1  248656 2019-10-18 18:54 libavutil.so.52
-rwxrwxr-x 1  130498 2019-10-18 18:54 libboost_filesystem.so.1.63.0
-rwxrwxr-x 1 1216642 2019-10-18 18:54 libboost_regex.so.1.63.0
-rwxrwxr-x 1   20001 2019-10-18 18:54 libboost_system.so.1.63.0
-rwxrwxr-x 1  462240 2019-10-18 18:54 libluajit-5.1.so.2
-rwxrwxr-x 1   72699 2019-10-18 18:54 libogg.so.0
-rwxrwxr-x 1 2929259 2019-10-18 18:54 libopenal.so.1
-rwxrwxr-x 1   96560 2019-10-18 18:54 libswresample.so.0
-rwxrwxr-x 1  383232 2019-10-18 18:54 libswscale.so.2
-rwxrwxr-x 1  243550 2019-10-18 18:54 libvorbis.so.0
-rwxrwxr-x 1   45564 2019-10-18 18:54 libvorbisfile.so.3
-rwxrwxr-x 1 1264750 2019-10-18 18:54 libvulkan.so.1
-rwxrwxr-x 1 1421816 2019-10-18 18:54 libxml2.so.2
-rwxrwxr-x 1  121865 2019-10-18 18:54 libz.so.1
drwx------ 8    4096 2019-10-18 18:55 ..
lrwxrwxrwx 1      42 2019-10-20 17:17 libssl.so.1.0.0 -> ../../../workdir/usr/lib64/libssl.so.1.0.0
lrwxrwxrwx 1      36 2019-10-20 17:17 libssl.so -> ../../../workdir/usr/lib64/libssl.so
lrwxrwxrwx 1      39 2019-10-20 17:17 libldap_r.so -> ../../../workdir/usr/lib64/libldap_r.so
lrwxrwxrwx 1      51 2019-10-20 17:17 libldap_r-2.4.so.2.10.11 -> ../../../workdir/usr/lib64/libldap_r-2.4.so.2.10.11
lrwxrwxrwx 1      45 2019-10-20 17:17 libldap_r-2.4.so.2 -> ../../../workdir/usr/lib64/libldap_r-2.4.so.2
lrwxrwxrwx 1      37 2019-10-20 17:17 libldap.so -> ../../../workdir/usr/lib64/libldap.so
lrwxrwxrwx 1      49 2019-10-20 17:17 libldap-2.4.so.2.10.11 -> ../../../workdir/usr/lib64/libldap-2.4.so.2.10.11
lrwxrwxrwx 1      43 2019-10-20 17:17 libldap-2.4.so.2 -> ../../../workdir/usr/lib64/libldap-2.4.so.2
lrwxrwxrwx 1      37 2019-10-20 17:17 liblber.so -> ../../../workdir/usr/lib64/liblber.so
lrwxrwxrwx 1      49 2019-10-20 17:17 liblber-2.4.so.2.10.11 -> ../../../workdir/usr/lib64/liblber-2.4.so.2.10.11
lrwxrwxrwx 1      43 2019-10-20 17:17 liblber-2.4.so.2 -> ../../../workdir/usr/lib64/liblber-2.4.so.2
lrwxrwxrwx 1      45 2019-10-20 17:17 libcrypto.so.1.0.0 -> ../../../workdir/usr/lib64/libcrypto.so.1.0.0
lrwxrwxrwx 1      39 2019-10-20 17:17 libcrypto.so -> ../../../workdir/usr/lib64/libcrypto.so
drwx------ 2    4096 2019-10-20 17:17 .


Egosoft, is it possible to depend on libssl >= 1.0.0 (emphasis on "or greater than")?
My guess is most systems would have at least some form of SSL (probably openssl or libressl), although likely in a newer version than what you require. As for ldap, possibly not, but please bundle them up?

fridl
Posts: 85
Joined: Sun, 22. Mar 09, 22:39
x4

Re: Linux Support (Beta)

Post by fridl » Sun, 20. Oct 19, 21:26

Ok, thats right, the Output from ldd tells as well:

Code: Select all

> ldd X4
./X4: /usr/lib64/liblber-2.4.so.2: no version information available (required by ./X4)
./X4: /usr/lib64/libldap_r-2.4.so.2: no version information available (required by ./X4)
./X4: /usr/lib64/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by ./X4)
I think I have the right versions of liblder and libldap, but the wrong of libssl. Perhaps therefore there is a issue with the other two libs as well. So I also hope for a change on egosofts side, because I can't find a place providing the "proper" libssl for my system... And I'm not that deep in the topic :wink:

steve_v
Posts: 159
Joined: Sun, 12. Jun 16, 08:39
x4

Re: Linux Support (Beta)

Post by steve_v » Mon, 21. Oct 19, 10:47

I've not spun up 2.60 yet, but you guys might try grabbing some libs from steam-runtime as an interim solution while we wait for Egosoft to link against some non-ancient ssl libraries.
It's got libssl.so.1.0.0, but you'll probably need to cherry-pick it as the libav libraries it includes are a mite old.

Readelf says:

Code: Select all

  0x0060:   Name: OPENSSL_1.0.1  Flags: none  Version: 6
  0x0070:   Name: OPENSSL_1.0.0  Flags: none  Version: 4
so It looks like the version you need.

Just a suggestion, it's saved my bacon in the past. I'll get around to actually testing it (gentoo here too) soon if nobody else is game. Good luck.

andrewpc
Posts: 23
Joined: Sun, 27. Jan 19, 19:11
x4

Re: Linux Support (Beta)

Post by andrewpc » Mon, 21. Oct 19, 21:51

I run X4 (including the new 2.6 version) on my openSUSE Tumbleweed install without issue. Here are my library versions
andrew@host:/mnt/sdb3/home/andrew/SteamLibrary/steamapps/common/X4 Foundations> ldd X4
./X4: /usr/lib64/liblber-2.4.so.2: no version information available (required by ./X4)
./X4: /usr/lib64/libldap_r-2.4.so.2: no version information available (required by ./X4)
linux-vdso.so.1 (0x00007fffe17cb000)
libsteam_api.so => lib/libsteam_api.so (0x00007f29e52b8000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f29e5090000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f29e5068000)
libluajit-5.1.so.2 => lib/libluajit-5.1.so.2 (0x00007f29e4df0000)
libavformat.so.55 => lib/libavformat.so.55 (0x00007f29e4ad8000)
libavcodec.so.55 => lib/libavcodec.so.55 (0x00007f29e3e20000)
libswscale.so.2 => lib/libswscale.so.2 (0x00007f29e3bb8000)
libswresample.so.0 => lib/libswresample.so.0 (0x00007f29e39a0000)
libavutil.so.52 => lib/libavutil.so.52 (0x00007f29e3758000)
libboost_filesystem.so.1.63.0 => lib/libboost_filesystem.so.1.63.0 (0x00007f29e3538000)
libboost_regex.so.1.63.0 => lib/libboost_regex.so.1.63.0 (0x00007f29e3240000)
libboost_system.so.1.63.0 => lib/libboost_system.so.1.63.0 (0x00007f29e3038000)
libxml2.so.2 => lib/libxml2.so.2 (0x00007f29e2cd8000)
libopenal.so.1 => lib/libopenal.so.1 (0x00007f29e29f0000)
libvorbisfile.so.3 => lib/libvorbisfile.so.3 (0x00007f29e27e0000)
libSDL2-2.0.so.0 => lib/libSDL2-2.0.so.0 (0x00007f29e24c0000)
libvulkan.so.1 => lib/libvulkan.so.1 (0x00007f29e2278000)
libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007f29e2270000)
libuuid.so.1 => /usr/lib64/libuuid.so.1 (0x00007f29e2260000)
libm.so.6 => /lib64/libm.so.6 (0x00007f29e2118000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f29e2110000)
liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2 (0x00007f29e20f8000)
libldap_r-2.4.so.2 => /usr/lib64/libldap_r-2.4.so.2 (0x00007f29e20a0000)
libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0 (0x00007f29e2028000)
libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x00007f29e1db0000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f29e1d90000)
libc.so.6 => /lib64/libc.so.6 (0x00007f29e1bc8000)
librt.so.1 => /lib64/librt.so.1 (0x00007f29e1bb8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f29e5518000)
libz.so.1 => lib/libz.so.1 (0x00007f29e1998000)
libvorbis.so.0 => lib/libvorbis.so.0 (0x00007f29e1758000)
libogg.so.0 => lib/libogg.so.0 (0x00007f29e1550000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f29e1538000)
libsasl2.so.3 => /usr/lib64/libsasl2.so.3 (0x00007f29e1518000)
libssl.so.1.1 => /usr/lib64/libssl.so.1.1 (0x00007f29e1480000)
libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007f29e11b0000)

Note that I have libraries for libssl.so.1.0 and 1.1 and also liblber and libldap

Code: Select all

 
> zypper search --provides -s libssl.so
S  | Name                  | Type    | Version      | Arch   | Repository             
---+-----------------------+---------+--------------+--------+------------------------
   | boringssl-devel       | package | 20190916-1.1 | x86_64 | openSUSE-Tumbleweed-Oss
   | boringssl-devel       | package | 20190916-1.1 | i586   | openSUSE-Tumbleweed-Oss
   | libboringssl1         | package | 20190916-1.1 | x86_64 | openSUSE-Tumbleweed-Oss
   | libboringssl1         | package | 20190916-1.1 | i586   | openSUSE-Tumbleweed-Oss
i+ | libopenssl1_0_0       | package | 1.0.2t-1.1   | x86_64 | openSUSE-Tumbleweed-Oss
v  | libopenssl1_0_0       | package | 1.0.2t-1.1   | i586   | openSUSE-Tumbleweed-Oss
   | libopenssl1_0_0-32bit | package | 1.0.2t-1.1   | x86_64 | openSUSE-Tumbleweed-Oss
i+ | libopenssl1_1         | package | 1.1.1c-1.4   | x86_64 | openSUSE-Tumbleweed-Oss
v  | libopenssl1_1         | package | 1.1.1c-1.4   | i586   | openSUSE-Tumbleweed-Oss
i+ | libopenssl1_1-32bit   | package | 1.1.1c-1.4   | x86_64 | openSUSE-Tumbleweed-Oss
   | libssl47              | package | 2.9.2-1.2    | x86_64 | openSUSE-Tumbleweed-Oss
   | libssl47              | package | 2.9.2-1.2    | i586   | openSUSE-Tumbleweed-Oss
   | libssl47-32bit        | package | 2.9.2-1.2    | x86_64 | openSUSE-Tumbleweed-Oss

>

and for liblber

Code: Select all

S  | Name                | Type    | Version     | Arch   | Repository             
---+---------------------+---------+-------------+--------+------------------------
i+ | libldap-2_4-2       | package | 2.4.48-48.2 | x86_64 | openSUSE-Tumbleweed-Oss
v  | libldap-2_4-2       | package | 2.4.48-48.2 | i586   | openSUSE-Tumbleweed-Oss
i+ | libldap-2_4-2-32bit | package | 2.4.48-48.2 | x86_64 | openSUSE-Tumbleweed-Oss

Sorry I gave up the static versions and moved to the rolling distribution but that may help

User avatar
Lander1979
Posts: 1017
Joined: Mon, 4. Aug 14, 05:18
x4

Re: Linux Support (Beta)

Post by Lander1979 » Tue, 5. Nov 19, 08:34

I can no longer launch X4. Instead a box opens that says;

X4 - Fatal Error
A fatal error has occurred and X cannot recover:
Vulkan::CreateMemoryHeaps() Couldn't allocate heap 9
Version: 2.60 - Code revision: 370595

Please inform EGOSOFT GmbH technical support.

OS: Arch Linux Rolling Stable.
Launcher: STEAM Runtime.
GFX: Nvidia 1050 2GB

EDIT: After a clean reboot X4 launches ok so the problem seems to be intermittent. I will update if I can narrow down the cause of the error.
0101...0011...0011...0101...2!

Rastuasi
Posts: 455
Joined: Mon, 1. Oct 18, 16:28
x4

Re: Linux Support (Beta)

Post by Rastuasi » Tue, 5. Nov 19, 15:31

I'm running a custom version of the arch kernel, I've not had this, but I do get menu artifacts, where lines occasionally stick while scrolling.

radcapricorn
Moderator (English)
Moderator (English)
Posts: 3230
Joined: Mon, 14. Jul 08, 13:07
x4

Re: Linux Support (Beta)

Post by radcapricorn » Tue, 5. Nov 19, 16:52

Rastuasi wrote:
Tue, 5. Nov 19, 15:31
I'm running a custom version of the arch kernel, I've not had this, but I do get menu artifacts, where lines occasionally stick while scrolling.
That's a known issue and isn't Linux-specific.

@Lander1979 I have been getting that beautiful red window crash occasionally in recent builds as well.

radcapricorn
Moderator (English)
Moderator (English)
Posts: 3230
Joined: Mon, 14. Jul 08, 13:07
x4

Re: Linux Support (Beta)

Post by radcapricorn » Fri, 15. Nov 19, 14:22

Yay, mouse pointer finally got some love with 3.0 beta!

User avatar
Lander1979
Posts: 1017
Joined: Mon, 4. Aug 14, 05:18
x4

Re: Linux Support (Beta)

Post by Lander1979 » Sat, 16. Nov 19, 03:41

I have a small issue that I've been trying to fix since moving from Win10 to Arch Linux, In Win10 both of my Thrustmaster T.16000M flightsticks work out of the box, however in Linux only one of the two flightsticks is detected by X4.
In Arch Linux both joysticks are detected on dev/input/js0 and dev/input/js1, but with identical names in jstest-gtk . In Steam both joysticks are detected but also with identical names, but in the game only the first stick (or dev/input/js0) is detected and mappable. Is there any way to get X4 to detect Both sticks and make them mappable?

EDIT: Just tested X-Rebirth on Arch Linux and both controllers are detected and working fine there so this is definitely an X4 issue and not a me\OS issue.

EDIT: I think the problem is the name of the flightstick, if I swap out either stick for a different brand both are detected. This seems to be the case with X-Rebirth as well, however I didn't notice as it initially detects both sticks and places them on a slot, however if that is changed one of the sticks speaks for both and clears the slot of the other stick, very annoying. X4 unfortunately isn't even listing the second flightstick or giving it an initial slot as Rebirth did.

Now, the question is, how do I change the name of the sticks so the game sees them as unique and doesnt confuse them and ignore the existence of the second stick?

Here is the output of $ udevadm info /dev/input/js0

Code: Select all

P: /devices/pci0000:00/0000:00:12.0/usb6/6-1/6-1:1.0/0003:044F:B10A.0003/input/input3/js0
N: input/js0
L: 0
S: input/by-path/pci-0000:00:12.0-usb-0:1:1.0-joystick
S: input/by-id/usb-Thrustmaster_T.16000M-joystick
E: DEVPATH=/devices/pci0000:00/0000:00:12.0/usb6/6-1/6-1:1.0/0003:044F:B10A.0003/input/input3/js0
E: DEVNAME=/dev/input/js0
E: MAJOR=13
E: MINOR=0
E: SUBSYSTEM=input
E: USEC_INITIALIZED=14653899
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_VENDOR=Thrustmaster
E: ID_VENDOR_ENC=Thrustmaster
E: ID_VENDOR_ID=044f
E: ID_MODEL=T.16000M
E: ID_MODEL_ENC=T.16000M
E: ID_MODEL_ID=b10a
E: ID_REVISION=0500
E: ID_SERIAL=Thrustmaster_T.16000M
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:12.0-usb-0:1:1.0
E: ID_PATH_TAG=pci-0000_00_12_0-usb-0_1_1_0
E: ID_FOR_SEAT=input-pci-0000_00_12_0-usb-0_1_1_0
E: DEVLINKS=/dev/input/by-path/pci-0000:00:12.0-usb-0:1:1.0-joystick /dev/input/by-id/usb-Thrustmaster_T.16000M-joystick
E: TAGS=:uaccess:seat:
Also the output of $ udevadm info /dev/input/js1

Code: Select all

P: /devices/pci0000:00/0000:00:12.0/usb6/6-2/6-2:1.0/0003:044F:B10A.0007/input/input23/js1
N: input/js1
L: 0
S: input/by-path/pci-0000:00:12.0-usb-0:2:1.0-joystick
S: input/by-id/usb-Thrustmaster_T.16000M-joystick
E: DEVPATH=/devices/pci0000:00/0000:00:12.0/usb6/6-2/6-2:1.0/0003:044F:B10A.0007/input/input23/js1
E: DEVNAME=/dev/input/js1
E: MAJOR=13
E: MINOR=1
E: SUBSYSTEM=input
E: USEC_INITIALIZED=6194827722
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_VENDOR=Thrustmaster
E: ID_VENDOR_ENC=Thrustmaster
E: ID_VENDOR_ID=044f
E: ID_MODEL=T.16000M
E: ID_MODEL_ENC=T.16000M
E: ID_MODEL_ID=b10a
E: ID_REVISION=0500
E: ID_SERIAL=Thrustmaster_T.16000M
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:12.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_00_12_0-usb-0_2_1_0
E: ID_FOR_SEAT=input-pci-0000_00_12_0-usb-0_2_1_0
E: DEVLINKS=/dev/input/by-path/pci-0000:00:12.0-usb-0:2:1.0-joystick /dev/input/by-id/usb-Thrustmaster_T.16000M-joystick
E: TAGS=:seat:uaccess:
0101...0011...0011...0101...2!

steve_v
Posts: 159
Joined: Sun, 12. Jun 16, 08:39
x4

Re: Linux Support (Beta)

Post by steve_v » Sat, 16. Nov 19, 09:22

Lander1979 wrote:
Sat, 16. Nov 19, 03:41
how do I change the name of the sticks so the game sees them as unique and doesnt confuse them
The real question is: How does X4 query available devices? It's linked against SDL2, so presumably that's how it's handling input?

If it is using SDL2, a quick rummage around in the SDL code suggests that SDL_JoystickName is just going to report whatever the input driver gives it... and the input driver (usbhid) is going to report whatever the USB device identifies itself as.
If your joysticks both report "Thrustmaster T.16000M flightstick" over the USB bus, that's what SDL will tell X4, and X4 will get confused because it probably doesn't have any code to handle this corner-case.
It's a limitation of the SDL joystick API, and no more useful identifier than name and index will you get.

Until SDL2's new GameController API is production ready (i.e. supports real joysticks properly), the only way I can see to work around this is for X4 to query the OS for more information directly - device serial numbers are available via sysfs, lsusb or libudev. The latter is probably the way to go.

adamto99 wrote:
Tue, 12. Nov 19, 14:24
Ahem ... why is the Linux version linked against kerberos and libssh2 libs?
Ahem, please stop hiding random links in your quotes. Reported for spam.
As for ssh and kerberos, it's probably using some of the crypto functions for the whole "let's screw over people who like mods" online stuff.

User avatar
Lander1979
Posts: 1017
Joined: Mon, 4. Aug 14, 05:18
x4

Re: Linux Support (Beta)

Post by Lander1979 » Sat, 16. Nov 19, 09:33

I was looking at trying to change something in udev by applying a rule maybe? My line of thought was to change the device by name to be specific as I noticed I have 2 devices by path but only 1 device by id. Though I am an absolute Linux newb having just come from Windows so I really don't know how these things work. At this stage I'm blindly fumbling my way along poorly documented udev tutorials hoping to find an answer...
Last edited by Lander1979 on Sat, 16. Nov 19, 09:41, edited 1 time in total.
0101...0011...0011...0101...2!

Post Reply

Return to “X4: Foundations - Technical Support”