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.
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.
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.