One of the disadvantages of using the Nvidia installer as opposed to installing the rpms provided by the RPMfusion repository is that updating your system may break things. The latest Fedora 18 updates caused X server issues on my machine. I noticed the gdm login screen looked different, but I thought maybe they changed it for some reason so I didn’t pay much attention to it.
Then I noticed Cinnamon wasn’t working anymore, the machine was booting a butt-ugly Gnome-like failover session instead. So I chose MATE and it was OK at first but when I tried to open Steam the X session crashed. Tried it again with Gnome 3 and KDE, same thing.
After analysing the log file (/var/logXorg.0.log) I found this:
212.522] (**) NVIDIA(0): Enabling 2D acceleration
[ 212.522] (EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X
[ 212.522] (EE) NVIDIA(0): log file that the GLX module has been loaded in your X
[ 212.522] (EE) NVIDIA(0): server, and that the module is the NVIDIA GLX module. If
[ 212.522] (EE) NVIDIA(0): you continue to encounter problems, Please try
[ 212.522] (EE) NVIDIA(0): reinstalling the NVIDIA driver.
So there was an issue with the GLX module. Scrolling through the log I also found this:
212.520] (II) LoadModule: "glx"
[ 212.521] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
[ 212.521] (II) Module glx: vendor="X.Org Foundation"
[ 212.521] compiled for 1.13.0, module version = 1.0.0
[ 212.521] ABI class: X.Org Server Extension, version 7.0
The X server was using its own GLX extension module which was not linked to the one compiled by the Nvidia installer.
rpm -qf /usr/lib64/xorg/modules/extensions/libglx.so
What happened was that an updated xorg-x11-server-Xorg package modified libglx.so. Downgrading was not an option since the file had already been overwritten. The fix was to re-run the Nvidia installer in runlevel 3 (a dkms rebuilt would not have worked since that only rebuilds the Nvidia kernel module) to recompile all modules against the new Xorg. The installer worked fine, everything was rebuilt without errors and the GLX module is now linked correctly:
/usr/lib64/xorg/modules/extensions/libglx.so -> libglx.so.313.18
And I’ve got my OpenGL support back:
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 660/PCIe/SSE2
OpenGL version string: 4.3.0 NVIDIA 313.18
OpenGL shading language version string: 4.30 NVIDIA via Cg compiler
Hope this helps. Cheers.