For those migrating old Windows 10 PCs to Linux - Why OBS won't work but can work

StefenTower

New Member
First off, I'm not a particular Linux expert, so if I get any terminology wrong, please don't spank me too hard. ;)
Further, this isn't to encourage anyone running OBS on old hardware to expect spectacular performance. What you can do will be somewhat limited.

I had OBS 31 running on old hardware running Windows 10, and after installing Linux Mint over it, and the Linux version of OBS, I was chagrined to see it not run. I got a popup message saying "Failed to initialize video. Your GPU may not be supported, or your graphics drivers may need to be updated."

What I determined was:
- my very old graphics hardware (Intel Mobile 4 Series Chipset) could only (naturally) muster OpenGL 2.1.
- apparently Windows 10 emulates a newer version of OpenGL so OBS would load.
- to run OBS Studio on Linux, you need a graphics card that supports at least OpenGL 3.3.
- my Linux distro (Linux Mint) has a library (Mesa-utils) that could emulate an even newer version of OpenGL than that, but it was initially missing a necessary component, LLVMpipe.

The fix to get OBS to load is as follows:

1) Check your current OpenGL version: Open a terminal and run
Code:
glxinfo | grep "OpenGL version"
to see your current OpenGL version. If OBS hasn't been working for you, the version reported will likely be lower than what's required. Again, it was reported as 2.1 in my case.
2) You need to update your system's graphics drivers to a version that supports at least the required version of OpenGL, which can be achieved by adding a PPA (Personal Package Archive) for newer Mesa graphics drivers.
2a) Open a terminal and run
Code:
sudo add-apt-repository ppa:oibaf/graphics-drivers
.
2b) Still in the terminal, run
Code:
sudo apt update
, and then
Code:
sudo apt upgrade
. Close the terminal.
3) Open a terminal and test that OBS will now execute by running with an environment variable that enables LLVMpipe. Run
Code:
MESA_LOADER_DRIVER_OVERRIDE=llvmpipe obs
.
4) If you want OBS to launch from your menu or panel with this environment variable set, here are instructions for setting that up. The Exec line in your .desktop file will be
Code:
Exec=env MESA_LOADER_DRIVER_OVERRIDE=llvmpipe obs
. Alternatively, you can write a script that sets the environment variable and then launches OBS.

Hope the above helps someone and reduces some headaches as some of you migrate from Windows 10 to Linux as Win10 approaches end of service (October 2025) and you choose to not upgrade to Win11 due to not meeting hardware requirements or other reasons.
 

Tuna

Member
Windows uses DirectX instead of OpenGL. Therefore the requirements between the two are different.

The above way lets OBS run entirely on the CPU instead of the GPU, which probably results in a ver bad performance, especially the more compolex the scenes get.
 

StefenTower

New Member
Windows uses DirectX instead of OpenGL. Therefore the requirements between the two are different.

The above way lets OBS run entirely on the CPU instead of the GPU, which probably results in a ver bad performance, especially the more compolex the scenes get.
Thanks for the clarification about DirectX on Windows. The bottom line for me was the same app/version on the same hardware worked on Windows but not on Linux, before the updates I made.

The reduced performance in this scenario is understood (which I noted in my second sentence), but if anyone wants to stream/record shows with very basic setups, it should work. If someone has an underpowered PC but can't afford to buy new, they can still get something out of it, with a secure OS and OBS still working.
 
Top