CapnBlackHeart Posted January 17 Report Posted January 17 (edited) I haven't seen many people mention Slackware on this forum so I figured I'd make a thread about running Vintage Story on Slackware specifically. Namely, I'm having trouble with the installation of OpenGL. The documentation and installation guide are geared towards Debian and Ubuntu and "other distros" which means finding relevant information means disregarding 80% of the material and using 5 year old Youtube videos. Here's my machine's specs: Machine: Lenovo ThinkPad T480s OS: Slackware 15.0 CPU: Intel i7-8550U RAM: 23808M GPU: Integrated graphics So far, I've tried https://wikis.khronos.org/opengl/Getting_Started which eventually brings you to Mesa, which means you have to download and install Meson, which hasn't worked no matter what I try. What am I missing? Is there a different/better way to install just OpenGL? Is there better documentation specifically for Slackware? Edited January 17 by CapnBlackHeart verified ram amount
Diff Posted January 17 Report Posted January 17 Nah, there's not really a way to just install OpenGL because it's provided/implemented by the drivers for your hardware. On Linux, for Intel integrated graphics, that is indeed Mesa. But like. If you have a graphical user interface, you should have Mesa and OpenGL installed. Did you see an error message that sent you down this rabbit hole?
pigfood Posted January 17 Report Posted January 17 (edited) 7 hours ago, CapnBlackHeart said: So far, I've tried https://wikis.khronos.org/opengl/Getting_Started which eventually brings you to Mesa, which means you have to download and install Meson, which hasn't worked no matter what I try. Are you saying, you don't have Mesa installed (that would be rather surprising)? It should come with a tiny OpenGL demo app "glxgears". Do you have that? Does it work? What does "inxi -G" say? Edited January 17 by pigfood
CapnBlackHeart Posted January 17 Author Report Posted January 17 1 hour ago, pigfood said: Are you saying, you don't have Mesa installed (that would be rather surprising)? It should come with a tiny OpenGL demo app "glxgears". Do you have that? Does it work? What does "inxi -G" say? Running "glxgears returns: Error: couldn't get an RGB, Double-buffered visual Running "inxi -G" returns: /usr/bin/env: ‘perl’: No such file or directory I should mention that when I installed Slackware recently, I opted to not include the d/ (development) module since i did not plan on developing software on mylaptop. Is this why I don't have Mesa installed?
CapnBlackHeart Posted January 17 Author Report Posted January 17 5 hours ago, Diff said: Nah, there's not really a way to just install OpenGL because it's provided/implemented by the drivers for your hardware. On Linux, for Intel integrated graphics, that is indeed Mesa. But like. If you have a graphical user interface, you should have Mesa and OpenGL installed. Did you see an error message that sent you down this rabbit hole? What sent me down this rabbit hole was following the installation steps of .NET 8 (which was another story but I got it working), installing OpenAL (which was a breeze), and getting to the graphics drivers step. I know when I bought this laptop that it has integrated graphics (and not the upgradeable option Nvidia integrated graphics) so I tried following the steps I mentioned earlier. I know it has some drivers installed because I have the /x, /xap, and /xfce packages installed and the desktop works just fine. Obviously there's an easy way to do this and clearly I haven't done that lol. 1
Diff Posted January 17 Report Posted January 17 2 hours ago, CapnBlackHeart said: I know it has some drivers installed because I have the /x, /xap, and /xfce packages installed and the desktop works just fine. If you have Xfce running you almost certainly have a functional set of kernel-mesa modules and userland-mesa libraries and utilities installed. What are you seeing that is telling you that this is not the case?
CapnBlackHeart Posted January 17 Author Report Posted January 17 This is my current crash log report: Running on 64 bit Linux (Slackware 15.0 x86_64) [Kernel 5.15.19.0] with 23808 MB RAM Game Version: v1.21.6 (Stable) 1/17/2026 1:53:03 PM: Critical error occurred Loaded Mods: System.TypeInitializationException: The type initializer for 'OpenTK.Windowing.Desktop.Monitors' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'glfw' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: /root/comp/vintagestory/glfw.so: cannot open shared object file: No such file or directory /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.20/glfw.so: cannot open shared object file: No such file or directory /root/comp/vintagestory/Lib/glfw.so: cannot open shared object file: No such file or directory /root/comp/vintagestory/libglfw.so: cannot open shared object file: No such file or directory /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.20/libglfw.so: cannot open shared object file: No such file or directory /root/comp/vintagestory/Lib/libglfw.so: cannot open shared object file: No such file or directory /root/comp/vintagestory/glfw: cannot open shared object file: No such file or directory /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.20/glfw: cannot open shared object file: No such file or directory /root/comp/vintagestory/Lib/glfw: cannot open shared object file: No such file or directory /root/comp/vintagestory/libglfw: cannot open shared object file: No such file or directory /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.20/libglfw: cannot open shared object file: No such file or directory /root/comp/vintagestory/Lib/libglfw: cannot open shared object file: No such file or directory at System.Runtime.InteropServices.NativeLibrary.LoadLibraryByName(String libraryName, Assembly assembly, Nullable`1 searchPath, Boolean throwOnError) at OpenTK.Windowing.GraphicsLibraryFramework.GLFWNative.LoadLibrary(String libraryName, Version version, Assembly assembly, Nullable`1 searchPath) at OpenTK.Windowing.GraphicsLibraryFramework.GLFWNative.<>c.<.cctor>b__4_0(String name, Assembly assembly, Nullable`1 path) at System.Runtime.InteropServices.NativeLibrary.LoadLibraryCallbackStub(String libraryName, Assembly assembly, Boolean hasDllImportSearchPathFlags, UInt32 dllImportSearchPathFlags) at OpenTK.Windowing.GraphicsLibraryFramework.GLFWNative.glfwSetErrorCallback(ErrorCallback callback) at OpenTK.Windowing.GraphicsLibraryFramework.GLFW.SetErrorCallback(ErrorCallback callback) at OpenTK.Windowing.Desktop.GLFWProvider.EnsureInitialized() at OpenTK.Windowing.Desktop.Monitors..cctor() --- End of inner exception stack trace --- at OpenTK.Windowing.Desktop.Monitors.GetPrimaryMonitor() at VSPlatform.XPlatImpl.GetScreenSize() in XPlatformInterface\PlatformFormsImpl.cs:line 32 at Vintagestory.Client.NoObf.ClientPlatformWindows..ctor(Logger logger) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 64 at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 171 at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 131 at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95 System.DllNotFoundException: Unable to load shared library 'glfw' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: /root/comp/vintagestory/glfw.so: cannot open shared object file: No such file or directory /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.20/glfw.so: cannot open shared object file: No such file or directory /root/comp/vintagestory/Lib/glfw.so: cannot open shared object file: No such file or directory /root/comp/vintagestory/libglfw.so: cannot open shared object file: No such file or directory /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.20/libglfw.so: cannot open shared object file: No such file or directory /root/comp/vintagestory/Lib/libglfw.so: cannot open shared object file: No such file or directory /root/comp/vintagestory/glfw: cannot open shared object file: No such file or directory /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.20/glfw: cannot open shared object file: No such file or directory /root/comp/vintagestory/Lib/glfw: cannot open shared object file: No such file or directory /root/comp/vintagestory/libglfw: cannot open shared object file: No such file or directory /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.20/libglfw: cannot open shared object file: No such file or directory /root/comp/vintagestory/Lib/libglfw: cannot open shared object file: No such file or directory at System.Runtime.InteropServices.NativeLibrary.LoadLibraryByName(String libraryName, Assembly assembly, Nullable`1 searchPath, Boolean throwOnError) at OpenTK.Windowing.GraphicsLibraryFramework.GLFWNative.LoadLibrary(String libraryName, Version version, Assembly assembly, Nullable`1 searchPath) at OpenTK.Windowing.GraphicsLibraryFramework.GLFWNative.<>c.<.cctor>b__4_0(String name, Assembly assembly, Nullable`1 path) at System.Runtime.InteropServices.NativeLibrary.LoadLibraryCallbackStub(String libraryName, Assembly assembly, Boolean hasDllImportSearchPathFlags, UInt32 dllImportSearchPathFlags) at OpenTK.Windowing.GraphicsLibraryFramework.GLFWNative.glfwSetErrorCallback(ErrorCallback callback) at OpenTK.Windowing.GraphicsLibraryFramework.GLFW.SetErrorCallback(ErrorCallback callback) at OpenTK.Windowing.Desktop.GLFWProvider.EnsureInitialized() at OpenTK.Windowing.Desktop.Monitors..cctor()
pigfood Posted January 18 Report Posted January 18 (edited) You have glxgears, so you do have Mesa installed. Something is wrong with your graphics drivers. E.g., you might be using the generic VESA kernel module, instead of the proper i915 driver. The VESA driver works for basic things, but doesn't support graphics acceleration or 3D stuff like OpenGL. You have to install Perl for "inxi" to work. It can tell you your driver situation, without having to dig through other stuff. The output of "inxi -G" for a properly working setup would look something like this: Graphics: Device-1: Intel HD Graphics 620 driver: i915 v: kernel Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X: loaded: modesetting unloaded: fbdev,vesa dri: iris gpu: i915 resolution: 1920x1080~60Hz API: EGL v: 1.5 drivers: iris,swrast platforms: gbm,x11,surfaceless,device API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 25.0.7-0ubuntu0.24.04.2 renderer: Mesa Intel HD Graphics 620 (KBL GT2) (Your integrated GPU is a HD Graphics 620.) Edited January 18 by pigfood
pigfood Posted January 18 Report Posted January 18 (edited) BTW, choosing Slackware this day and age seems like a very odd choice. I've used it 25+ years ago, but nowadays I can't think of a good reason to use it (and the current user base is TINY). If I wanted to tinker with stuff, I would use Arch (binary packages with no distro-tweaks and it's the base for SteamOS) or Gentoo (build from source). If I wanted something that most of time works well out of the box, I would choose some Debian or Ubuntu derivative. There is a variant for whatever desktop environment you want. Most Linux OS ISOs can be used as Live images booted from USB sticks without installation, so you can easily experiment with stuff. Edited January 18 by pigfood
CapnBlackHeart Posted January 18 Author Report Posted January 18 I installed Perl an ran "inxi -G". this is the output from that: bash-5.1# inxi -G Graphics: Device-1: Intel UHD Graphics 620 driver: i915 v: kernel Device-2: Acer SunplusIT Integrated Camera type: USB driver: uvcvideo Display: server: X.Org 1.20.14 driver: loaded: modesetting unloaded: vesa resolution: 1920x1080~60Hz OpenGL: renderer: N/A v: N/A I'm going to try updating the BIOS on my laptop and see if that helps. Lenovo does not offer and non-Windows update for the graphics drivers through their website so I don't have any options for that.
CapnBlackHeart Posted January 18 Author Report Posted January 18 Just now, pigfood said: BTW, choosing Slackware this day and age seems like a very odd choice. I've used it 25+ years ago, but nowadays I can't think of a good reason to use it (and the current user base is TINY). If I wanted to tinker with stuff, I would use Arch (binary packages with no distro-tweaks and it's the base for SteamOS) or Gentoo (build from source). If I wanted something that most of time works well out of the box, I would choose some Debian or Ubuntu derivative. There is a variant for whatever desktop environment you want. Most Linux OS ISOs can be used as Live images booted from USB sticks without installation, so you can easily experiment with stuff. I'm using Slackware because my father has been using it since before 1.0 and is very well accustomed to it so I can ask as many questions as I need
Diff Posted January 19 Report Posted January 19 On 1/17/2026 at 2:53 PM, CapnBlackHeart said: This is my current crash log report: Odd, just taking this at face value, it looks like it's failing to load the glfw library. That's shipped with VintageStory itself, so I don't believe it's something you'd have to install. Log says to set `LD_DEBUG` to get more info out of it to explain why it's failing to load.
pigfood Posted January 19 Report Posted January 19 On 1/18/2026 at 5:14 PM, CapnBlackHeart said: I installed Perl an ran "inxi -G". this is the output from that: bash-5.1# inxi -G Graphics: Device-1: Intel UHD Graphics 620 driver: i915 v: kernel Device-2: Acer SunplusIT Integrated Camera type: USB driver: uvcvideo Display: server: X.Org 1.20.14 driver: loaded: modesetting unloaded: vesa resolution: 1920x1080~60Hz OpenGL: renderer: N/A v: N/A I'm going to try updating the BIOS on my laptop and see if that helps. Lenovo does not offer and non-Windows update for the graphics drivers through their website so I don't have any options for that. That inxi output does look ok. The kernel i915 driver is used and X11 uses the correct modesetting driver. Do you have "glxinfo"? What does "glxinfo -B" say? Do you have the libraries from the files list of this package (I don't know if that binary package is trustworthy): https://slackware.pkgs.org/15.0/slackware-x86_64/mesa-21.3.5-x86_64-2.txz.html What does "LIBGL_DEBUG=verbose glxgears" say?
CapnBlackHeart Posted January 19 Author Report Posted January 19 (edited) Just now, Diff said: Odd, just taking this at face value, it looks like it's failing to load the glfw library. That's shipped with VintageStory itself, so I don't believe it's something you'd have to install. Log says to set `LD_DEBUG` to get more info out of it to explain why it's failing to load. I ran "LD_DEBUG=all ./run.sh" and got walls of debug logs but couldn't write it to a file to sift through it, so I ran LD_DEBUG=all ./run.sh >> crash.log" and got the same crash log I've been getting. Just now, pigfood said: Do you have "glxinfo"? What does "glxinfo -B" say? That returns: name of display: :0.0 Error: couldn't find RGB GLX visual or fbconfig Just now, pigfood said: Do you have the libraries from the files list of this package (I don't know if that binary package is trustworthy): https://slackware.pkgs.org/15.0/slackware-x86_64/mesa-21.3.5-x86_64-2.txz.html What does "LIBGL_DEBUG=verbose glxgears" say? I have all of those files in /usr/bin, and "LIBGL_DEBUG=verbose glxgears" returns: Error: couldn't get an RGB, Double-buffered visual What I could do is wipe the drive and reinstall (I have nothing important on this machine) and install all of the available packages (full install) and see if that fixes anything. My thought is that since I didn't opt for the program development package, I'm missing some important programs or links or libs somewhere that most people would ordinarily have. Edited January 19 by CapnBlackHeart
CapnBlackHeart Posted Friday at 10:11 PM Author Report Posted Friday at 10:11 PM I reinstalled Slackware (full this time, no packages left out) and updated it, installed ASP.NET Core 8, made sure Perl and OpenAL were installed, ran "inxi -G" and this was the output: Graphics: Device-1: Intel UHD Graphics 620 driver: i915 v: kernel Device-2: Acer SunplusIT Integrated Camera type: USB driver: uvcvideo Display: server: X.Org 1.20.14 driver: loaded: modesetting unloaded: vesa resolution: 1920x1080~60Hz OpenGL: renderer: Mesa Intel UHD Graphics 620 (KBL GT2) v: 4.6 Mesa 21.3.5 After running that, I ran "glxinfo -B" and got: name of display: :0 display: :0 screen: 0 direct rendering: Yes Extended renderer info (GLX_MESA_query_renderer): Vendor: Intel (0x8086) Device: Mesa Intel(R) UHD Graphics 620 (KBL GT2) (0x5917) Version: 21.3.5 Accelerated: yes Video memory: 3072MB Unified memory: yes Preferred profile: core (0x1) Max core profile version: 4.6 Max compat profile version: 4.6 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.2 OpenGL vendor string: Intel OpenGL renderer string: Mesa Intel(R) UHD Graphics 620 (KBL GT2) OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.3.5 OpenGL core profile shading language version string: 4.60 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL version string: 4.6 (Compatibility Profile) Mesa 21.3.5 OpenGL shading language version string: 4.60 OpenGL context flags: (none) OpenGL profile mask: compatibility profile OpenGL ES profile version string: OpenGL ES 3.2 Mesa 21.3.5 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20 The problem is, I'm still getting the same crash report, even now when Mesa and OpenGL seem to register fine with my system now. Does anyone know what could still be causing this? Is it a bug?
Diff Posted Saturday at 12:15 AM Report Posted Saturday at 12:15 AM If it's still glfw that's freaking out, I'd say try exporting that LD DEBUG variable. I'm a little rusty on the finer details of environment variables but passing it in by prepending it *may* not propagate it correctly to everything in the shell script.
pigfood Posted Sunday at 08:21 AM Report Posted Sunday at 08:21 AM Recent Vintage Story versions (including 1.21.6) come with the glfw library included (as Lib/libglfw.so.3). It gets properly loaded and used on my systems. The version that comes with Vintage Story is used, even if a system version of glfw is also installed. What does "ldd Lib/libglfw.so.3" run from the Vintage Story directory say? (glfw/libglfw is the same library it's trying to load using different possible names.) Does "glxgears" work and give you the spinning gears window? 1
Sleeves Posted Sunday at 03:15 PM Report Posted Sunday at 03:15 PM On 1/18/2026 at 8:03 AM, pigfood said: BTW, choosing Slackware this day and age seems like a very odd choice. I've used it 25+ years ago, but nowadays I can't think of a good reason to use it (and the current user base is TINY). If I wanted to tinker with stuff, I would use Arch (binary packages with no distro-tweaks and it's the base for SteamOS) or Gentoo (build from source). If I wanted something that most of time works well out of the box, I would choose some Debian or Ubuntu derivative. There is a variant for whatever desktop environment you want. Most Linux OS ISOs can be used as Live images booted from USB sticks without installation, so you can easily experiment with stuff. True or not, it's always a good opportunity to test software on different systems to ensure everything's properly modular. Ideally the game will run on any system with the correct dependencies; if not, something's wrong and needs to be fixed on the game's and/or the system's end.
pigfood Posted Sunday at 07:24 PM Report Posted Sunday at 07:24 PM (edited) 4 hours ago, Sleeves said: True or not, it's always a good opportunity to test software on different systems to ensure everything's properly modular. Ideally the game will run on any system with the correct dependencies; if not, something's wrong and needs to be fixed on the game's and/or the system's end. IMO, Slackware is an expert-only distribution. It has the worst package management / dependency tracking out there and has a tiny user base these days. It's extremely easy to end up with a broken system with incompatible or missing dependencies. No offense to OP, but he is running VS as root and very clearly not in the target audience. While I've been using Linux for 3 decades, I'm also aware of the fact that distributing software for it is a nightmare with dozens of distributions doing weird incompatible crap. The kernel itself has rather good backwards compatibility, pretty much everything else doesn't. Even if the libraries are compatible, there is a huge amount of "minor" surrounding things that aren't compatible between different versions, let alone different distributions. The error handling and reporting in the Linux graphics stack is absolutely atrocious. Edited Sunday at 07:34 PM by pigfood
CapnBlackHeart Posted Sunday at 08:56 PM Author Report Posted Sunday at 08:56 PM On 1/23/2026 at 6:15 PM, Diff said: If it's still glfw that's freaking out, I'd say try exporting that LD DEBUG variable. I'm a little rusty on the finer details of environment variables but passing it in by prepending it *may* not propagate it correctly to everything in the shell script. Working with LD_DEBUG_OUTPUT is proving to be more of a headache than I'm willing to deal with at the moment so I'm going to circle back to that bu thanks for pointing me to that option. 12 hours ago, pigfood said: Recent Vintage Story versions (including 1.21.6) come with the glfw library included (as Lib/libglfw.so.3). It gets properly loaded and used on my systems. The version that comes with Vintage Story is used, even if a system version of glfw is also installed. What does "ldd Lib/libglfw.so.3" run from the Vintage Story directory say? (glfw/libglfw is the same library it's trying to load using different possible names.) Does "glxgears" work and give you the spinning gears window? Running "glxgears' produces the desired output, the small window with spinning gears, and running "ldd Lib'libglfw.so.3" returns: Lib/libglfw.so.3: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by Lib/libglfw.so.3) the problem with that is when I search for glibc with slackpkg, I get: ... [ installed ] - glibc-2.33-x86_64-8_slack15.0 [ installed ] - glibc-i18n-2.33-x86_64-8_slack15.0 [ installed ] - glibc-profile-2.33-x86_64-8_slack15.0 [ installed ] - glibc-zoneinfo-2025c-noarch-1_slack15.0 ... None of these show an option for upgrading. I've already updated and upgraded all packages in my system (and ran lilo) so unless different mirrors have different versions of packages (I'm using the princeton mirror, option #1 in the U.S. list), I don't have know how to upgrade that
Sleeves Posted Sunday at 09:09 PM Report Posted Sunday at 09:09 PM (edited) 13 minutes ago, CapnBlackHeart said: Running "glxgears' produces the desired output, the small window with spinning gears, and running "ldd Lib'libglfw.so.3" returns: Lib/libglfw.so.3: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by Lib/libglfw.so.3) the problem with that is when I search for glibc with slackpkg, I get: [ installed ] - glibc-2.33-x86_64-8_slack15.0 I looked at slackware's packages and it seems that, in version 15, the latest version of glibc is 2.33. Given there seems to be no glfw package (at least not an official one), I think your easiest solution would be to simply download an older glfw version that works with glibc 2.33 - a quick search told me 3.3.10 but I couldn't immediately find a concrete answer. Then you'd tell Vintage Story to use that copy instead. Though it may not actually work with the game, which is always a concern with downgrading packages. Edited Sunday at 09:10 PM by Sleeves Clarify VS may not work with old glfw
CapnBlackHeart Posted Sunday at 10:03 PM Author Report Posted Sunday at 10:03 PM Would downgrading glfw be preferable to upgading to Slackware-current from 15?
vinnland Posted yesterday at 02:16 AM Report Posted yesterday at 02:16 AM I have two T480. One slackware, one debian 12. I play on debian 12 without issue. I know this isn't really an answer but because these laptops are so cheap, maybe consider getting a second one with debian and skip all this stuff.
pigfood Posted yesterday at 10:01 AM Report Posted yesterday at 10:01 AM (edited) 13 hours ago, CapnBlackHeart said: Working with LD_DEBUG_OUTPUT is proving to be more of a headache than I'm willing to deal with at the moment so I'm going to circle back to that bu thanks for pointing me to that option. LD_DEBUG_OUTPUT isn't going to tell you anything new. The .NET runtime failed to load glfw, since it was linked against a glibc that was too new. 12 hours ago, CapnBlackHeart said: Would downgrading glfw be preferable to upgading to Slackware-current from 15? Downgrading glfw probably won't be enough. At least the sqlite and openal libraries that come with Vintage Story were linked against more recent glibc versions (meaning they won't work on your system). If you have Slackware 15 versions for these installed, that may work. (Try "ldd ..." against all the files in the Lib dir with .so in their name.) Edited yesterday at 10:41 AM by pigfood
Recommended Posts