Fedora 23, Nvidia & Steam - Problems and fixes


Updated: March 25, 2016

Recently, I've been hammering out a bunch of Fedora-related articles, and this is because I happen to be using this distro more and more, and liking it more and more. I have sort of tamed it, and while Gnome 3 still remains a challenge, it is no longer a painful nuisance.

We discussed Skype setup, extensions, and more. But the problem you are facing is as follows. You recently installed Nvidia drivers in your Fedora 23. Now, Steam no longer launches. It complains about libGL error: No matching fbConfigs or visuals found. What do you do now? This is a very important tutorial, so please pay attention. After me.

Problem and attempt to solve

We've seen a similar issue when we tested SteamOS in VirtualBox, and lately, when I showed you how to get Steam working under Nouveau. This let us enjoy Steam. But after getting Nvidia drivers, we are now seeing a new but different problem. Or as eloquently put in a new James Franco gif slash movie reference: same same but different but still same!

steam
Running Steam on fedora 23 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1447125378)
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

To cut the long story short and reduce the guess game, you may try to fix this problem by installing 32-bit Nvidia libraries. This makes sense, as there's a whole bunch of 32-bit stuff that Steam needs. The same problem applies to Skype. Nothing new here.

However, at the moment, the third-party repos containing Nvidia drivers do not seem to have 32-bit dependencies available. There's no Nvidia settings utility either, and that seems to be a part of the same issue. Indeed, if you try to grab the 32-bit package:

dnf install xorg-x11-drv-nvidia-libs.i686

Error: package xorg-x11-drv-nvidia-libs-1:358.16-1.fc23.i686 requires xorg-x11-drv-nvidia = 1:358.16-1.fc23, but none of the providers can be installed (try to add '--allowerasing' to command line to replace conflicting packages)

What now?

The suggestion provided by the dnf command line is valid, but it is also extremely dangerous. You will be deviating from the normal path into manual, forced resolution of conflicts, and that can lead to problems. First, do NOT do this. But assuming you have done this, and you've reached this tutorial because of the issues you are now facing, then let's elaborate what will happen here.

Allow erasing files

sudo dnf install --allowerasing xorg-x11-drv-nvidia-libs.i686

================================================================
Package      Arch       Version       Repository       Size
================================================================
Installing:
akmod-nvidia                              x86_64 1:358.16-1.fc23 rpmfusion-nonfree-updates-testing   69 k
xorg-x11-drv-nvidia                       x86_64 1:358.16-1.fc23 rpmfusion-nonfree-updates-testing  3.7 M
xorg-x11-drv-nvidia-kmodsrc               x86_64 1:358.16-1.fc23 rpmfusion-nonfree-updates-testing  3.9 M
xorg-x11-drv-nvidia-libs                  i686   1:358.16-1.fc23 rpmfusion-nonfree-updates-testing   15 M
xorg-x11-drv-nvidia-libs                  x86_64 1:358.16-1.fc23 rpmfusion-nonfree-updates-testing   13 M

Removing:
akmod-nvidia-340xx                        x86_64 1:340.96-1.fc23 @rpmfusion-nonfree-updates-testing  57 k
kmod-nvidia-340xx-4.2.8-300.fc23.x86_64   x86_64 1:340.96-1.fc23 @@commandline                       14 M
xorg-x11-drv-nvidia-340xx                 x86_64 1:340.96-1.fc23 @rpmfusion-nonfree-updates-testing  25 M
xorg-x11-drv-nvidia-340xx-libs            x86_64 1:340.96-1.fc23 @rpmfusion-nonfree-updates-testing  87 M

What do we have here? Well, tricky. But it would seem that the system decided to try a newer Nvidia driver 358.16 rather than the older 340.96, and install 32-bit libraries, as well. Seems like exactly what we need.

Removed:
akmod-nvidia-340xx.x86_64 1:340.96-1.fc23          
kmod-nvidia-340xx-4.2.8-300.fc23.x86_64.x86_64 1:340.96-1.fc23
xorg-x11-drv-nvidia-340xx.x86_64 1:340.96-1.fc23
xorg-x11-drv-nvidia-340xx-libs.x86_64 1:340.96-1.fc23

Installed:
akmod-nvidia.x86_64 1:358.16-1.fc23    
xorg-x11-drv-nvidia.x86_64 1:358.16-1.fc23
xorg-x11-drv-nvidia-kmodsrc.x86_64 1:358.16-1.fc23
xorg-x11-drv-nvidia-libs.i686 1:358.16-1.fc23 
xorg-x11-drv-nvidia-libs.x86_64 1:358.16-1.fc23

Reboot. Cry.

However, this will most likely result in your system not being able to reach the desktop. For a variety of reasons, the setup will fail. You will also most likely have Nouveau drivers loaded into memory, and a conflicting X11 Nvidia-specific config file that does not match the kernel state. This might be related to the akmod error we saw in the original Nvidia review, but it might not be the case. What we need to do now is somehow resolve this problem.

Solution

There are several things you need to do, and you need to work slowly, step by step. The first thing is to check if you have networking. In my case, it was working, so I could use the package manager from the command line. If you do not have networking, you will need to try the second method listed in the article.

1. Remove new files, install old ones

We want to fix two things at once - get rid of Nouveau, and go back to the sane state, with older drivers. To wit, we will use dnf to expunge the 358 driver series and reinstall the older 340 series. Launch a virtual console - Ctrl + Alt + F1-7. Login as root or your own user and then use sudo.

dnf remove xorg-x11-drv-nvidia akmod-nvidia

After you remove the old set, install:

dnf install kmod-nvidia

Reboot. Wait. Hope.

2. If this does not work, stock Nvidia drivers

Should this method fail - and most likely, it will - then you need to try something else. My warmest recommendation is to actually install the official Nvidia drivers from their site. If your system does not have a working network, you will need to download the drivers on a different host or from a live CD/DVD session, and then copy them to the local disk. This may not be the most elegant method, but it is definitely the smartest one, and it's never failed us before. You will temporarily lose flexibility of having the driver ready in-between kernel updates, but it is better than a system that does not work at all.

There are several things you need to take into account, the same way we did many times before with Fedora, CentOS and friends. We might need to blacklist Nouveau, if it's loaded into memory, and/or install build tools, including gcc, make, kernel, and kernel-headers. This is explained in detail in the linked guide.

Then, execute the NVIDIA-<something>.run file. It should install cleanly, change the Xorg config, as well as setup 32-bit libraries. Reboot. This time, your system should come up fine, without any issues or errors. You will also have the Nvidia control panel, as well as 32-bit support, so Steam should run like a champ.

Nvidia running like a champ

Other methods of recovery

The best thing is not to get into this kind of issue in the first place. You may want to consider system imaging, or even backing up Nvidia files to a safe location, so you can restore them should something go wrong.

However, the process is not robust, and it is very easy to make mistakes and ruin your desktop. At the moment, if you are looking for the kmod functionality AND Steam, then it's not really doable, I'm afraid.

You can also try to fix Xorg files and such, but this is not a trivial procedure, because when you combine GRUB2 with UEFI and systemd, things are not going to be fun. The simplest solution is to focus on the one thing that went wrong - drivers installation. Rather than changing other unknown factors in the system, it is best to handle just the one element we know for sure has changed and in an adverse way. Component search and all that.

Conclusion

This tutorial may not leave you with a hot fuzzy feeling in your belly. But it may give you your desktop back. We tried to fix a Steam problem, we caused an Nvidia problem, and then we fixed the Nvidia issue with official drivers. It seems like a convoluted path, but now that you have your desktop working again, you can start from scratch.

However, given the differences between the kmod method and the official setup, I'd recommend you do not use the extra repos for Nvidia at the moment. It is just not complete enough. Steam does not work well, and you don't get 32-bit libraries. Fedora, mind. Not other distributions. Whoever created the solution had the best intents, but the delivery is far from being perfect. For now, the official channels are your best and safest if not the most elegant bet. Still, all considered, you learned something new. Moving on.

Cheers.

RSS Feed icon

del.icio.us del.icio.us stumbleupon stumble digg digg reddit reddit slashdot slashdot



Advertise!

Would you like to advertise your product/site on Dedoimedo?

Read more

Donate to Dedoimedo!

Do you want to
help me take early retirement? How about donating
some dinero to
Dedoimedo?

Read more

Donate