This is for a Debian system, but should work for any Linux box. The essential problem is that whenever you run an update for the nVidia drivers or xOrg or your Kernel, you might not be able to get into X. After laboriously trying to figure out still why X doesn’t load, you go to Google and miraculously come here. Then, you continue reading to find the solution.
Starting in xOrg version 7, they are no longer using the /usr/X11R6 as the primary directory for all the X stuff. They still have some lingering items in there, but the move towards /usr/lib/xorg is happening very quickly. As such, the traditional nVidia driver installer is still trying to use the /usr/X11R6 rather than the new /usr/lib/xorg as the directory to install it’s glx module into.
So, here’s what happens when you update your drivers. nVidia compiles it and installes the nvidia module hopefully in the proper location, but the glx module does not get put in the proper directory. So, when you try to start X after loading the new nvidia module, you get logs that look like the following:
Great, so first you notice glx is unable to be loaded and then nvidia can’t be loaded. Now what to do? Well, time to go back and recompile the nVidia driver with new options.
Basically, you need to point the installer at the new modules directory. Don’t try to run the installer with the ‘–x-prefix’ directive, as the nVidia driver won’t compile correctly. You need to run the following command:
You don’t technically need the ‘-anN’ on the front, but I used it to auto accept the license and not to download updates from the nVidia website (I was having problems with the internet at the time). It should compile correctly and install in the proper place.