shkhln / linuxulator-steam-utils

Steam launcher for FreeBSD
MIT License
126 stars 12 forks source link

Graphical Steam issues #69

Closed irinlith closed 2 years ago

irinlith commented 2 years ago

There are various issues with libGL apparently, causing Steam to just display a black screen except for the interface, Big Picture does work and starting a game that would work according to the compatibility list doesn't launch due to this apparently

/bin/sh: error while loading shared libraries: /usr/local/lib/libGL.so.1: ELF file OS ABI invalid

I have all the Linux stuff enabled and mounted so I don't know what's up with that, but I can tell that Steam is probably trying to load libGL from the wrong directory

I have installed Steam on my main user instead of a dedicated one, because the dedicated one fails to connect to XWayland, although the dedicated one was in my xhosts by doing xhost +si:localuser:steamuser.

I hope that this graphical issue (and maybe the issue with the dedicated user) can get resolved.

shkhln commented 2 years ago

causing Steam to just display a black screen except for the interface

Restart it.

/bin/sh: error while loading shared libraries: /usr/local/lib/libGL.so.1: ELF file OS ABI invalid

What did you modify?

irinlith commented 2 years ago

Restart it.

The issue remains, still a black screen except for the interface.

What did you modify?

Nothing, I just ran steam-install with the flags for installing it on my main user and then I just ran steam, I made sure that Linux support was loaded and mounted before any of this.

shkhln commented 2 years ago

Would you mind providing full console output?

irinlith commented 2 years ago
ERROR: ld.so: object 'steamfix.so' from LD_PRELOAD cannot be preloaded: ignored.
libGL error: MESA-LOADER: failed to retrieve device information
[intel_init_bufmgr:1009] Error initializing buffer manager.
libGL error: failed to create dri screen
libGL error: failed to load driver: i915
Loaded SDL version 2.0.17-6897280
sh: lspci: command not found
libGL error: MESA-LOADER: failed to retrieve device information
[intel_init_bufmgr:1009] Error initializing buffer manager.
libGL error: failed to create dri screen
libGL error: failed to load driver: i915
libGL error: MESA-LOADER: failed to retrieve device information
[intel_init_bufmgr:1009] Error initializing buffer manager.
libGL error: failed to create dri screen
libGL error: failed to load driver: i915
libGL error: MESA-LOADER: failed to retrieve device information
[intel_init_bufmgr:1009] Error initializing buffer manager.
libGL error: failed to create dri screen
libGL error: failed to load driver: i915

Not sure if this is enough, but there are definitely a lot of libGL errors which are likely the source of the issues.

shkhln commented 2 years ago

Which GPU would that be?

irinlith commented 2 years ago

It's Intel integrated graphics, Intel Iris Xe Graphics or something like that

shkhln commented 2 years ago

Just tell me the CPU model.

irinlith commented 2 years ago

hw.model: 11th Gen Intel(R) Core(TM) i5-1135G7

shkhln commented 2 years ago

What does /compat/linux/bin/glxinfo (from linux-c7-glx-utils) print?

irinlith commented 2 years ago

/compat/linux/bin/glxinfo: error while loading shared libraries: /usr/local/lib/libGL.so.1: ELF file OS ABI invalid

shkhln commented 2 years ago

truss /compat/linux/bin/glxinfo?

irinlith commented 2 years ago
/compat/linux/bin/glxinfo: error while loading shared libraries: /usr/local/lib/libGL.so.1: ELF file OS ABI invalid
truss: Unable to enable LWP events for pid 92131: No such process
shkhln commented 2 years ago

Why are you running it from root? Not to mention it gives you a different error this way.

irinlith commented 2 years ago

I thought this was the correct output, I've edited the message with the actually correct output now.

shkhln commented 2 years ago

I'd suggest reverting "hardening" sysctls you applied until it actually works.

irinlith commented 2 years ago
linux_brk(0x0)                   = 6336512 (0x60b000)
linux_newuname(0x7fffffffd5fa)           = 0 (0x0)
linux_mmap2(0x0,0x1000,0x3,0x22,0xffffffffffffffff,0x0) = 34366205952 (0x80062b000)
linux_access("/etc/ld.so.preload",R_OK)      ERR#-2 'No such file or directory'
linux_open("/usr/local/lib/tls/x86_64/libGL.so.1",0x80000,040540520) ERR#-2 'No such file or directory'
linux_newstat("/usr/local/lib/tls/x86_64",0x7fffffffd050) ERR#-2 'No such file or directory'
linux_open("/usr/local/lib/tls/libGL.so.1",0x80000,040540520) ERR#-2 'No such file or directory'
linux_newstat("/usr/local/lib/tls",0x7fffffffd050) ERR#-2 'No such file or directory'
linux_open("/usr/local/lib/x86_64/libGL.so.1",0x80000,040540520) ERR#-2 'No such file or directory'
linux_newstat("/usr/local/lib/x86_64",0x7fffffffd050) ERR#-2 'No such file or directory'
linux_open("/usr/local/lib/libGL.so.1",0x80000,040540520) = 3 (0x3)
read(3,"\^?ELF\^B\^A\^A\t\0\0\0\0\0\0\0"...,832) = 832 (0x340)
close(3)                     = 0 (0x0)
/compat/linux/bin/glxinfo: error while loading shared libraries: /usr/local/lib/libGL.so.1: ELF file OS ABI invalid
writev(2,[{"/compat/linux/bin/glxinfo",25},{": ",2},{"error while loading shared libra"...,36},{": ",2},{"/usr/local/lib/libGL.so.1",25},{": ",2},{"ELF file OS ABI invalid",23},{0x800625f5a,0},{0x800625f5a,0},{"\n",1}],10) = 116 (0x74)
linux_exit_group(0x7f)              
process exit, rval = 127
shkhln commented 2 years ago

echo $LD_LIBRARY_PATH?

irinlith commented 2 years ago

/usr/local/lib

shkhln commented 2 years ago

And what is it doing there?

irinlith commented 2 years ago

I see where the problem was, I removed LD_LIBRARY_PATH and now it works, however there are huge stutters so I don't really know what's up with that or if that's just normal.

shkhln commented 2 years ago

To be fair, bin/steam is actually supposed to set up LD_LIBRARY_PATH for you. I'll have to investigate what's the issue there.

irinlith commented 2 years ago

Alright, well things work now except for extreme stutters, there are still the same libGL errors (the i915 stuff etc.), however Steam and its games actually run now.

irinlith commented 2 years ago

Any idea why the buffer manager fails to initialize causing a failure in loading the i915 driver and creating a dri screen?

shkhln commented 2 years ago

Linux Mesa libs in our repos are pretty old, so it's probably just that.

irinlith commented 2 years ago

Oh that really sucks, isn't there a way to manually update it? Otherwise Steam games are pretty much just unplayable

shkhln commented 2 years ago

Nothing I feel comfortable recommending at the moment. We'll probably do something with unprivileged chroots (https://cgit.freebsd.org/src/commit/?id=a40cf4175c90142442d0c6515f6c83956336699b) eventually.

shkhln commented 2 years ago

bin/steam is actually supposed to set up LD_LIBRARY_PATH

Fixed in 237fe0151294dbc40bc4c94e071873c9b8b9a712.