Linux Support (Beta)

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

Moderator: Moderators for English X Forum

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

Re: Linux Support (Beta)

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

Lander1979 wrote:
Sat, 16. Nov 19, 09:33
I was wondering if maybe trying to change something in udev by applying a rule maybe? My line of thought was to maybe change the device by name to be specific as I noticed I have 2 devices by path but only 1 device by id.
Those symlinks (by-id, by-name, by-path etc.) are created by udev, so you should be able to modify them with an appropriate udev rule. Some reading here and here might be a place to start. I suspect it won't fix your problem, but it can't hurt to try it.

I'd whip you up a rule myself, but I don't actually run udev... or have two identical joysticks.

Ed. Out of interest, can someone with XR installed do a quick ldd on the binary? I'm curious as to if it's linked to libsdl2, libudev, or both.
I own it for sure, but I played about 10 minutes before dumping it and it's kinda a big DL...

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

Re: Linux Support (Beta)

Post by Lander1979 » Sat, 16. Nov 19, 10:46

Ok Im jumping waay waay into the deep end of the pool here, as in I have literally no idea how to do this, but so far;

$ udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/input/js0)

outputs;

Code: Select all

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '//devices/pci0000:00/0000:00:12.0/usb6/6-1/6-1:1.0/0003:044F:B10A.0003/input/input3/js0':
    KERNEL=="js0"
    SUBSYSTEM=="input"
    DRIVER==""

  looking at parent device '//devices/pci0000:00/0000:00:12.0/usb6/6-1/6-1:1.0/0003:044F:B10A.0003/input/input3':
    KERNELS=="input3"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{name}=="Thrustmaster T.16000M"
    ATTRS{phys}=="usb-0000:00:12.0-1/input0"
    ATTRS{properties}=="0"
    ATTRS{uniq}==""

  looking at parent device '//devices/pci0000:00/0000:00:12.0/usb6/6-1/6-1:1.0/0003:044F:B10A.0003':
    KERNELS=="0003:044F:B10A.0003"
    SUBSYSTEMS=="hid"
    DRIVERS=="hid-generic"
    ATTRS{country}=="00"

  looking at parent device '//devices/pci0000:00/0000:00:12.0/usb6/6-1/6-1:1.0':
    KERNELS=="6-1:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usbhid"
    ATTRS{bInterfaceProtocol}=="00"
    ATTRS{authorized}=="1"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{bInterfaceClass}=="03"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceSubClass}=="00"

  looking at parent device '//devices/pci0000:00/0000:00:12.0/usb6/6-1':
    KERNELS=="6-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{version}==" 1.10"
    ATTRS{quirks}=="0x0"
    ATTRS{devnum}=="2"
    ATTRS{idProduct}=="b10a"
    ATTRS{rx_lanes}=="1"
    ATTRS{speed}=="12"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{product}=="T.16000M"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bcdDevice}=="0500"
    ATTRS{removable}=="unknown"
    ATTRS{tx_lanes}=="1"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{manufacturer}=="Thrustmaster"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{idVendor}=="044f"
    ATTRS{devpath}=="1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{devspec}=="(null)"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{configuration}==""
    ATTRS{authorized}=="1"
    ATTRS{busnum}=="6"
    ATTRS{ltm_capable}=="no"
    ATTRS{maxchild}=="0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{urbnum}=="24"

  looking at parent device '//devices/pci0000:00/0000:00:12.0/usb6':
    KERNELS=="usb6"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{manufacturer}=="Linux 5.3.11-arch1-1 ohci_hcd"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{idProduct}=="0001"
    ATTRS{bcdDevice}=="0503"
    ATTRS{authorized}=="1"
    ATTRS{serial}=="0000:00:12.0"
    ATTRS{quirks}=="0x0"
    ATTRS{ltm_capable}=="no"
    ATTRS{idVendor}=="1d6b"
    ATTRS{rx_lanes}=="1"
    ATTRS{busnum}=="6"
    ATTRS{product}=="OHCI PCI host controller"
    ATTRS{devpath}=="0"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{tx_lanes}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{removable}=="unknown"
    ATTRS{urbnum}=="81"
    ATTRS{maxchild}=="5"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{configuration}==""
    ATTRS{authorized_default}=="1"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{version}==" 1.10"
    ATTRS{devspec}=="(null)"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{speed}=="12"
    ATTRS{devnum}=="1"

  looking at parent device '//devices/pci0000:00/0000:00:12.0':
    KERNELS=="0000:00:12.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ohci-pci"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{irq}=="18"
    ATTRS{broken_parity_status}=="0"
    ATTRS{enable}=="1"
    ATTRS{subsystem_device}=="0x4397"
    ATTRS{revision}=="0x00"
    ATTRS{vendor}=="0x1002"
    ATTRS{numa_node}=="0"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{ari_enabled}=="0"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{subsystem_vendor}=="0x1849"
    ATTRS{class}=="0x0c0310"
    ATTRS{d3cold_allowed}=="0"
    ATTRS{device}=="0x4397"
    ATTRS{devspec}==""
    ATTRS{msi_bus}=="1"
    ATTRS{local_cpus}=="f"
    ATTRS{driver_override}=="(null)"

  looking at parent device '//devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
and
$ udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/input/js1)

Code: Select all

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '//devices/pci0000:00/0000:00:12.0/usb6/6-2/6-2:1.0/0003:044F:B10A.0007/input/input23/js1':
    KERNEL=="js1"
    SUBSYSTEM=="input"
    DRIVER==""

  looking at parent device '//devices/pci0000:00/0000:00:12.0/usb6/6-2/6-2:1.0/0003:044F:B10A.0007/input/input23':
    KERNELS=="input23"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{phys}=="usb-0000:00:12.0-2/input0"
    ATTRS{name}=="Thrustmaster T.16000M"
    ATTRS{properties}=="0"
    ATTRS{uniq}==""

  looking at parent device '//devices/pci0000:00/0000:00:12.0/usb6/6-2/6-2:1.0/0003:044F:B10A.0007':
    KERNELS=="0003:044F:B10A.0007"
    SUBSYSTEMS=="hid"
    DRIVERS=="hid-generic"
    ATTRS{country}=="00"

  looking at parent device '//devices/pci0000:00/0000:00:12.0/usb6/6-2/6-2:1.0':
    KERNELS=="6-2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usbhid"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceClass}=="03"
    ATTRS{authorized}=="1"
    ATTRS{bInterfaceSubClass}=="00"
    ATTRS{bInterfaceProtocol}=="00"

  looking at parent device '//devices/pci0000:00/0000:00:12.0/usb6/6-2':
    KERNELS=="6-2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{idProduct}=="b10a"
    ATTRS{configuration}==""
    ATTRS{urbnum}=="13"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{rx_lanes}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{busnum}=="6"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{tx_lanes}=="1"
    ATTRS{maxchild}=="0"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{speed}=="12"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{idVendor}=="044f"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{product}=="T.16000M"
    ATTRS{bDeviceClass}=="00"
    ATTRS{manufacturer}=="Thrustmaster"
    ATTRS{devspec}=="(null)"
    ATTRS{version}==" 1.10"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bmAttributes}=="80"
    ATTRS{devnum}=="4"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{authorized}=="1"
    ATTRS{devpath}=="2"
    ATTRS{bcdDevice}=="0500"

  looking at parent device '//devices/pci0000:00/0000:00:12.0/usb6':
    KERNELS=="usb6"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{devpath}=="0"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{maxchild}=="5"
    ATTRS{urbnum}=="81"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{devnum}=="1"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{removable}=="unknown"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{configuration}==""
    ATTRS{bDeviceClass}=="09"
    ATTRS{busnum}=="6"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bmAttributes}=="e0"
    ATTRS{devspec}=="(null)"
    ATTRS{authorized}=="1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{manufacturer}=="Linux 5.3.11-arch1-1 ohci_hcd"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="0000:00:12.0"
    ATTRS{speed}=="12"
    ATTRS{quirks}=="0x0"
    ATTRS{ltm_capable}=="no"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{product}=="OHCI PCI host controller"
    ATTRS{version}==" 1.10"
    ATTRS{idProduct}=="0001"
    ATTRS{idVendor}=="1d6b"
    ATTRS{bcdDevice}=="0503"
    ATTRS{authorized_default}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{tx_lanes}=="1"

  looking at parent device '//devices/pci0000:00/0000:00:12.0':
    KERNELS=="0000:00:12.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ohci-pci"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{irq}=="18"
    ATTRS{enable}=="1"
    ATTRS{driver_override}=="(null)"
    ATTRS{class}=="0x0c0310"
    ATTRS{broken_parity_status}=="0"
    ATTRS{numa_node}=="0"
    ATTRS{msi_bus}=="1"
    ATTRS{ari_enabled}=="0"
    ATTRS{subsystem_device}=="0x4397"
    ATTRS{revision}=="0x00"
    ATTRS{local_cpus}=="f"
    ATTRS{subsystem_vendor}=="0x1849"
    ATTRS{devspec}==""
    ATTRS{device}=="0x4397"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{vendor}=="0x1002"
    ATTRS{d3cold_allowed}=="0"
    ATTRS{local_cpulist}=="0-3"

  looking at parent device '//devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
    
So if I am to understand this correctly, I need to try to come up with a rule that looks at these attributes and can identify the difference between them, then use that to change the symlink somehow?
0101...0011...0011...0101...2!

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

Re: Linux Support (Beta)

Post by steve_v » Sat, 16. Nov 19, 11:15

Lander1979 wrote:
Sat, 16. Nov 19, 10:46
So if I am to understand this correctly, I need to try to come up with a rule that looks at these attributes and can identify the difference between them, then use that to change the symlink somehow?
Pretty much. Find an attribute that can be used to tell the devices apart, and have udev make a symlink in /dev/ with an appropriate name when they are plugged in.

I haven't played with udev in a long time, but I'd expect something like:

Code: Select all

SUBSYSTEM=="input", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="YYYY", ATTRS{serial}=="ZZZZ", SYMLINK+="joystick_foo"
is what you're after. As to whether X4 actually looks at symlink names in /dev/, dunno.

This is a good exercise in figuring out the arcane (and constantly changing) potteringware that is udev, but I honestly doubt X4 will notice even if you override the standard by-id links. It is after all a port from windows, and ports love cross-platform APIs like SDL, not looking in GNU/Linux specific places...

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

Re: Linux Support (Beta)

Post by Lander1979 » Sat, 16. Nov 19, 13:20

Every rule I've tried to make seems to have zero effect. I'm unable to change the symlink(though I think this is an issue with me not understanding what is actually going on here). It's sad to think that even if I did that it isn't even going to help with X4 disccovering the Joystick due to the SDL issue.

EDIT: Also these flight sticks are identical in almost every respect. Even down to the vendor id and serial #. The only way to distinguish them apart is by the USB port they are plugged in to.

EDIT: I was able to manually create the missing symlinks to the joystick and it's event, however you were right, it changes nothing. I think I am trying to treat symtoms of the problem here rather than the actual cause...
0101...0011...0011...0101...2!

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

Re: Linux Support (Beta)

Post by Lander1979 » Sun, 17. Nov 19, 04:36

Ok, todays topic will be a crash course on the Linux Kernel and how to manipulate Kernel Modules :sceptic:

Continuing my trip down the rabbit-hole today with the udev/SDL2 Dual T.16000M Conflict I began trawling through SDL2 Bugtrackers and bug posts, and I came across this similar use case that comes with a few work-arounds.

http://forums.libsdl.org/viewtopic.php?p=45762

So I am now going to attempt to find and disable the evdev Kernel module to see if there is any knock-on effect that lets X4 see the second flightstick...

EDIT: Results; Removing the 'evdev' Kernel module appears to brick the PC, requiring a rescue solution. It seems that all inputs are being handled by the evdev module and without it the system will still boot, but there is no keyboard or mouse. If I am to try the 'disable evdev' solution then I need to find another way to use kbd and mouse...

Setting SDL_JOYSTICK_DEVICE=/dev/input/js0 in /etc/environment did nothing either. I think I've exhausted all the options and it's safe to call this an X4 Bug. Not just an X4 bug either, but a udev bug and an SDL2 bug, as well as a Thrustmaster bug.
0101...0011...0011...0101...2!

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

Re: Linux Support (Beta)

Post by steve_v » Sun, 17. Nov 19, 13:02

Lander1979 wrote:
Sun, 17. Nov 19, 04:36
Results; Removing the 'evdev' Kernel module appears to brick the PC, requiring a rescue solution.
I have a reply open in another tab, but I became distracted before hitting "submit"... It reads: Make sure you have a way to reverse this without use of your USB input devices, including the mouse and probably the keyboard too. Alternative drivers exist, so long as they're compiled into your kernel.
Uhh, sorry I guess. Oops. I blame Mayhem.

For recovery, either chroot into your install from a livecd or just SSH into your box from another device. This is one of the reasons we run ssh servers. ;)
Lander1979 wrote:
Sun, 17. Nov 19, 04:36
I think I've exhausted all the options and it's safe to call this an X4 Bug. Not just an X4 bug either, but a udev bug and an SDL2 bug, as well as a Thrustmaster bug.
Pretty much, though I'd be more inclined to say:
1) More an oversight, XR handles this fine, so time to port over that solution.
2) Not really udev's problem.
3) A bug if you can call missing features bugs, it's being worked on.
4) If they both report the same serial number (and they probably do), most certainly a bug. Never going to be fixed though, it works on Windoze and manufacturers are generally lazy sods.

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

Re: Linux Support (Beta)

Post by Lander1979 » Fri, 22. Nov 19, 07:18

I have a response from Thrustmaster... They don't support Linux. I suggested they take a queue from Microsoft and get onto it or be left behind.

So as far as X4 is concerned, should I consider this bug as reported? I'd love to know that it's at least on somebodys "to do" list...
0101...0011...0011...0101...2!

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

Re: Linux Support (Beta)

Post by steve_v » Sat, 23. Nov 19, 15:56

Lander1979 wrote:
Fri, 22. Nov 19, 07:18
So as far as X4 is concerned, should I consider this bug as reported?
That's an excellent question, and AFAIK there is no public bugtracker or other facility specifically for reporting bugs.

As far as I can tell, the general approach seems to be opening a new thread in the tech support forum and waiting until someone from egosoft makes comment.

Cadbury
Posts: 7
Joined: Sun, 17. Nov 19, 21:57
x4

Re: Linux Support (Beta)

Post by Cadbury » Sun, 24. Nov 19, 19:23

Anyone tried a Saitek X52 pro? I can get all the buttons to map but any axes are completely unresponsive :(

I can see all the axes correctly responding in the Manjaro game controller setup window.

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

Re: Linux Support (Beta)

Post by Rastuasi » Sun, 24. Nov 19, 20:18

I use the x56 warthog with no issues on Arch

Cadbury
Posts: 7
Joined: Sun, 17. Nov 19, 21:57
x4

Re: Linux Support (Beta)

Post by Cadbury » Sun, 24. Nov 19, 22:09

I did find a reddit post of someone having the same issue - https://www.reddit.com/r/X4Foundations/ ... e_game_on/

Reading through past posts in this thread, it looks like it did work at some point but doesn't seem to any more :(

Cadbury
Posts: 7
Joined: Sun, 17. Nov 19, 21:57
x4

Re: Linux Support (Beta)

Post by Cadbury » Sun, 24. Nov 19, 22:21

Well, how about that. I changed the menu option "gamepad mode" to "for all controllers/joysticks" and my axes sprang to life! I can use my x52 again!

Alan Phipps
Moderator (English)
Moderator (English)
Posts: 30425
Joined: Fri, 16. Apr 04, 19:21
x4

Re: Linux Support (Beta)

Post by Alan Phipps » Mon, 25. Nov 19, 11:25

It might be that the joystick hints in the 'Known Issues' Sticky might have helped too.
A dog has a master; a cat has domestic staff.

knro
Posts: 2
Joined: Wed, 27. Nov 19, 17:54

Re: Linux Support (Beta)

Post by knro » Wed, 27. Nov 19, 17:59

Lander1979 wrote:
Fri, 22. Nov 19, 07:18
I have a response from Thrustmaster... They don't support Linux. I suggested they take a queue from Microsoft and get onto it or be left behind.

So as far as X4 is concerned, should I consider this bug as reported? I'd love to know that it's at least on somebodys "to do" list...
I actually just registered on this forum to search for this exact problem. Same here with two Thursmasters. They work fine with Star Citizen under proton. This is an X4 issue, but SDL2 issue as well since it needs to handle duplicate entries. Not sure how to handle this now... maybe dig SDL2 and/or kernel code to patch something.

Vadi
Posts: 39
Joined: Mon, 21. Oct 13, 22:23
x3ap

Re: Linux Support (Beta)

Post by Vadi » Sat, 30. Nov 19, 08:17

Just chiming in to say that I am getting the "couldn't allocate heap" error reported in viewtopic.php?f=180&t=414524&p=4894872& ... p#p4894872 as well.

Code: Select all

Computer Information:
    Manufacturer:  Unknown
    Model:  Unknown
    Form Factor: Desktop
    No Touch Input Detected

Processor Information:
    CPU Vendor:  GenuineIntel
    CPU Brand:         Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
    CPU Family:  0x6
    CPU Model:  0x2a
    CPU Stepping:  0x7
    CPU Type:  0x0
    Speed:  3700 Mhz
    4 logical processors
    4 physical processors
    HyperThreading:  Unsupported
    FCMOV:  Supported
    SSE2:  Supported
    SSE3:  Supported
    SSSE3:  Supported
    SSE4a:  Unsupported
    SSE41:  Supported
    SSE42:  Supported
    AES:  Supported
    AVX:  Supported
    AVX2:  Unsupported
    AVX512F:  Unsupported
    AVX512PF:  Unsupported
    AVX512ER:  Unsupported
    AVX512CD:  Unsupported
    AVX512VNNI:  Unsupported
    SHA:  Unsupported
    CMPXCHG16B:  Supported
    LAHF/SAHF:  Supported
    PrefetchW:  Unsupported

Operating System Version:
    Ubuntu 19.10 (64 bit)
    Kernel Name:  Linux
    Kernel Version:  5.3.0-23-generic
    X Server Vendor:  The X.Org Foundation
    X Server Release:  12005000
    X Window Manager:  Compiz
    Steam Runtime Version:  steam-runtime_0.20191119.3

Video Card:
    Driver:  NVIDIA Corporation GeForce GTX 1080/PCIe/SSE2
    Driver Version:  4.6.0 NVIDIA 430.50
    OpenGL Version: 4.6
    Desktop Color Depth: 24 bits per pixel
    Monitor Refresh Rate: 59 Hz
    VendorID:  0x10de
    DeviceID:  0x1b80
    Revision Not Detected
    Number of Monitors:  1
    Number of Logical Video Cards:  1
    Primary Display Resolution:  1920 x 1200
    Desktop Resolution: 1920 x 1200
    Primary Display Size: 21.50" x 13.86" (25.55" diag)
                                            54.6cm x 35.2cm (64.9cm diag)
    Primary Bus: PCI Express 16x
    Primary VRAM: 8192 MB
    Supported MSAA Modes:  2x 4x 8x 16x 

Sound card:
    Audio device: %s1

Memory:
    RAM:  15996 Mb

Miscellaneous:
    UI Language:  English
    LANG:  en_AU.UTF-8
    Total Hard Disk Space Available:  104566 Mb
    Largest Free Hard Disk Block:  9506 Mb
    VR Headset: None detected

Steam Linux Runtime Information:
{
  "can-write-uinput" : true,
  "steam-installation" : {
    "path" : "/home/vadi/.local/share/Steam",
    "data_path" : "/home/vadi/.local/share/Steam",
    "issues" : [
    ]
  },
  "runtime" : {
    "path" : "/home/vadi/.local/share/Steam/ubuntu12_32/steam-runtime",
    "version" : "0.20191119.3",
    "issues" : [
    ],
    "pinned_libs_32" : {
      "list" : [
        "  6086760      4 drwxr-xr-x   2 vadi     vadi         4096 Nov 27 19:13 pinned_libs_32",
        "  6030432      8 -rw-r--r--   1 vadi     vadi            0 Nov 27 19:13 pinned_libs_32/has_pins",
        "  6030426      4 lrwxrwxrwx   1 vadi     vadi           98 Nov 27 19:13 pinned_libs_32/libGLU.so.1 -> /home/vadi/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libGLU.so.1.3.08004",
        "  6030437      4 lrwxrwxrwx   1 vadi     vadi           93 Nov 27 19:13 pinned_libs_32/libdbus-1.so.3 -> /home/vadi/.local/share/Steam/ubuntu12_32/steam-runtime/lib/i386-linux-gnu/libdbus-1.so.3.5.8",
        "  6030439     12 -rw-r--r--   1 vadi     vadi           76 Nov 27 19:13 pinned_libs_32/system_libdbus-1.so.3",
        "  6030429     12 -rw-r--r--   1 vadi     vadi           76 Nov 27 19:13 pinned_libs_32/system_libGLU.so.1"
      ]
    },
    "pinned_libs_64" : {
      "list" : [
        "  6086761      4 drwxr-xr-x   2 vadi     vadi         4096 Nov 27 19:13 pinned_libs_64",
        "  6030334     12 -rw-r--r--   1 vadi     vadi          101 Nov 27 19:13 pinned_libs_64/system_libdbusmenu-glib.so.4",
        "  6030369      8 -rw-r--r--   1 vadi     vadi            0 Nov 27 19:13 pinned_libs_64/has_pins",
        "  6030330      4 lrwxrwxrwx   1 vadi     vadi          107 Nov 27 19:13 pinned_libs_64/libdbusmenu-glib.so.4 -> /home/vadi/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libdbusmenu-glib.so.4.0.13",
        "  6030417     12 -rw-r--r--   1 vadi     vadi           94 Nov 27 19:13 pinned_libs_64/system_libpangox-1.0.so.0",
        "  6030375      4 lrwxrwxrwx   1 vadi     vadi          100 Nov 27 19:13 pinned_libs_64/libGLU.so.1 -> /home/vadi/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.08004",
        "  6030444      4 lrwxrwxrwx   1 vadi     vadi           12 Nov 27 19:13 pinned_libs_64/libcurl.so.3 -> libcurl.so.4",
        "  6030423     12 -rw-r--r--   1 vadi     vadi           99 Nov 27 19:13 pinned_libs_64/system_libdbusmenu-gtk.so.4",
        "  6030394      4 lrwxrwxrwx   1 vadi     vadi           97 Nov 27 19:13 pinned_libs_64/libcurl.so.4 -> /home/vadi/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libcurl.so.4.2.0",
        "  6030378     12 -rw-r--r--   1 vadi     vadi           80 Nov 27 19:13 pinned_libs_64/system_libGLU.so.1",
        "  6030412      4 lrwxrwxrwx   1 vadi     vadi          106 Nov 27 19:13 pinned_libs_64/libpangox-1.0.so.0 -> /home/vadi/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libpangox-1.0.so.0.3000.0",
        "  6030421      4 lrwxrwxrwx   1 vadi     vadi          106 Nov 27 19:13 pinned_libs_64/libdbusmenu-gtk.so.4 -> /home/vadi/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libdbusmenu-gtk.so.4.0.13",
        "  6030407     12 -rw-r--r--   1 vadi     vadi           82 Nov 27 19:13 pinned_libs_64/system_libcurl.so.4"
      ]
    }
  },
  "os-release" : {
    "id" : "ubuntu",
    "id_like" : [
      "debian"
    ],
    "name" : "Ubuntu",
    "pretty_name" : "Ubuntu 19.10",
    "version_id" : "19.10",
    "version_codename" : "eoan"
  },
  "architectures" : {
    "i386-linux-gnu" : {
      "can-run" : true,
      "library-issues-summary" : [
      ],
      "graphics-details" : {
        "x11/vulkan" : {
          "messages" : "ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.\nERROR: [Loader Message] Code 0 : /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS64\nERROR: [Loader Message] Code 0 : /usr/lib/x86_64-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS64\n",
          "renderer" : "GeForce GTX 1080",
          "version" : "1.1.99 (device 10de:1b80) (driver 430.200.0)"
        },
        "glx/gl" : {
          "messages" : "ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.\n",
          "renderer" : "GeForce GTX 1080/PCIe/SSE2",
          "version" : "4.6.0 NVIDIA 430.50"
        },
        "egl_x11/gl" : {
          "messages" : "ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.\nWaffle error: 0x1 WAFFLE_ERROR_FATAL: dlopen(\"libEGL.so.1\") failed: libEGL.so.1: wrong ELF class: ELFCLASS64\n",
          "renderer" : null,
          "version" : null,
          "issues" : [
            "cannot-load"
          ]
        },
        "egl_x11/glesv2" : {
          "messages" : "ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.\nWaffle error: 0x1 WAFFLE_ERROR_FATAL: dlopen(\"libEGL.so.1\") failed: libEGL.so.1: wrong ELF class: ELFCLASS64\n",
          "renderer" : null,
          "version" : null,
          "issues" : [
            "cannot-load"
          ]
        }
      }
    },
    "x86_64-linux-gnu" : {
      "can-run" : true,
      "library-issues-summary" : [
      ],
      "graphics-details" : {
        "x11/vulkan" : {
          "renderer" : "GeForce GTX 1080",
          "version" : "1.1.99 (device 10de:1b80) (driver 430.200.0)"
        },
        "glx/gl" : {
          "renderer" : "GeForce GTX 1080/PCIe/SSE2",
          "version" : "4.6.0 NVIDIA 430.50"
        },
        "egl_x11/gl" : {
          "renderer" : "GeForce GTX 1080/PCIe/SSE2",
          "version" : "4.6.0 NVIDIA 430.50"
        },
        "egl_x11/glesv2" : {
          "renderer" : "GeForce GTX 1080/PCIe/SSE2",
          "version" : "OpenGL ES 3.2 NVIDIA 430.50"
        }
      }
    }
  },
  "locale-issues" : [
  ],
  "locales" : {
    "<default>" : {
      "resulting-name" : "en_AU.UTF-8",
      "charset" : "UTF-8",
      "is_utf8" : true
    },
    "C" : {
      "resulting-name" : "C",
      "charset" : "ANSI_X3.4-1968",
      "is_utf8" : false
    },
    "C.UTF-8" : {
      "resulting-name" : "C.UTF-8",
      "charset" : "UTF-8",
      "is_utf8" : true
    },
    "en_US.UTF-8" : {
      "resulting-name" : "en_US.UTF-8",
      "charset" : "UTF-8",
      "is_utf8" : true
    }
  },
  "egl" : {
    "icds" : [
      {
        "json_path" : "/usr/share/glvnd/egl_vendor.d/10_nvidia.json",
        "library_path" : "libEGL_nvidia.so.0"
      },
      {
        "json_path" : "/usr/share/glvnd/egl_vendor.d/50_mesa.json",
        "library_path" : "libEGL_mesa.so.0"
      }
    ]
  },
  "vulkan" : {
    "icds" : [
      {
        "json_path" : "/usr/share/vulkan/icd.d/nvidia_icd.json",
        "library_path" : "libGLX_nvidia.so.0",
        "api_version" : "1.1.99"
      },
      {
        "json_path" : "/usr/share/vulkan/icd.d/radeon_icd.x86_64.json",
        "library_path" : "/usr/lib/x86_64-linux-gnu/libvulkan_radeon.so",
        "api_version" : "1.1.107"
      },
      {
        "json_path" : "/usr/share/vulkan/icd.d/intel_icd.x86_64.json",
        "library_path" : "/usr/lib/x86_64-linux-gnu/libvulkan_intel.so",
        "api_version" : "1.1.102"
      }
    ]
  }
}

The Steam Linux Runtime container tool is not installed.

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

Re: Linux Support (Beta)

Post by Lander1979 » Tue, 3. Dec 19, 00:16

@knro
If you're able to script in python or something similar there exists the possibility of making a custom unified Joystick device by bridging the two joysticks into 1 virtual device. I did look into this but so far it's way over my head as I'm not a programmer(program tinkerer at best).

Also it would be helpful for you to give Thrustmaster Support an Email about the issue. The more voices they hear asking for Linux support the better.
Adding a comment here; https://discourse.libsdl.org/t/linux-bu ... lict/26848 to confirm the problem will also help with the SDL2 side of the issue.

@Vadi
I have found that having had other programs open such as Chromium web browser causes the issue, even when they've been shut down before launching X4 the issue still arises. Try launching the game after a clean boot and removing any unnecessary programs with Htop.
0101...0011...0011...0101...2!

fallenwizard
Posts: 628
Joined: Tue, 13. Apr 10, 20:03
x4

Re: Linux Support (Beta)

Post by fallenwizard » Thu, 5. Dec 19, 17:37

@timon37

I apologize in advance if you already know about this. I also apologize if this isn't the correct thread for a bug report related to the 3.0 beta.
I am just posting it here because it seems to have been hidden by the flood of bug reports in the public beta forum.

In 3.0 (since Beta 1), there have been flickering artifacts with RADV. The only workaround is to disable delta color compression ( RADV_DEBUG=nodcc ), which obviously results in a FPS drop.
Trying X4 with amdvlk resulted in a GPU hang. The reason are a bunch of validation errors.

The latest version it happened was with 3.0 Beta 3

Links:
viewtopic.php?f=192&t=420291
viewtopic.php?f=192&t=419952 (with validation layers enabled & renderdoc captures posted)

shmerl
Posts: 18
Joined: Fri, 5. Jul 19, 22:10

Re: Linux Support (Beta)

Post by shmerl » Tue, 24. Dec 19, 06:44

When trying to run the game with radv/aco, it segfaults on startup (RX 5700 XT Navi card). Did anyone encounter this? With radv/llvm it starts up fine.

I use Mesa master, and start the game with:

Code: Select all

RADV_PERFTEST=aco
Game version: 2.60 hotfix 2 (GOG).

<Also see this thread for more details. Alan Phipps>

wasted90
Posts: 244
Joined: Fri, 2. Nov 18, 03:29
x4

Re: Linux Support (Beta)

Post by wasted90 » Sat, 4. Jan 20, 21:15

hey guys everytime i close X4 via the menu the game isn't terminated normally. right after i got back to my desktop systemd-coredump is running and sptitting a ~500MB file in /var/lib/systemd/coredump. already have six of them.
if this is not a common issue i can send one at ES.

does anybody else have this issue?

i'm running arch @ zen-kernel '5.4.7-zen1-1'
i5-3570k @ 3,8 GHz
8 GB RAM xmp
nvidia GTX-1050ti @ stock
using steam runtime

game version 3.00 beta (378025)

if i can provide any further information just let me know.

UPDATE:
also happens with standart arch-distribution-kernel

ajmind66
Posts: 34
Joined: Sat, 15. May 04, 01:36
x4

Re: Linux Support (Beta)

Post by ajmind66 » Tue, 7. Jan 20, 18:00

shmerl wrote:
Tue, 24. Dec 19, 06:44
When trying to run the game with radv/aco, it segfaults on startup (RX 5700 XT Navi card). Did anyone encounter this? With radv/llvm it starts up fine.
So far no problem on

Code: Select all

5.4.8-arch1-1
With RX5700 and recent Beta 3.x
wasted90 wrote:
Sat, 4. Jan 20, 21:15
does anybody else have this issue?
Nope, runs fine here.

Post Reply

Return to “X4: Foundations - Technical Support”