NVidia driver, normal boot results in blank screen, recovery boot works fine

Ok, so, like many others I'm having a lot of trouble with NVidia drivers, in this case, the new 340.32 ones downloaded from here (http://www.nvidia.com/object/unix.html), but I've had these problems across the board with pretty much all versions.

So, this is currently where I'm at, as far as I can tell, the driver is installed fine, but if I let Ubuntu try to boot normally, I end up at a blank screen and nothing ends up getting displayed. No run level changes work, it's completely locked up, yadda yadda.

If I boot into recovery mode and then resume the boot (with no other changes, I literally just hit "resume boot"), everything seems to work fine.

So I'm assuming that something is starting up with a regular boot that doesn't start up with a recovery boot (there is, obviously, a warning for such when resuming the boot), but I have no idea what or how to diagnose it.

Here's the other major symptom, nvidia-settings launches fine & I can save the xorg.conf file in /etc/X11 with no problem (without merging). However, when I perform a recovery boot, the system has lost any of the changes I made to the configuration, so I'm guessing something isn't reading the xorg file or something like that.

Ubuntu 14.04, kernel 36.
NVidia drivers 340.32 (but happens with all versions that I've tried, even back to 3.04)
2x EVGA NVidia 780 GTX (connected with an SLI bridge) with 2 WQHD Monitors both driven from Card 0, plus an Oculus Rift DK2 that I keep disabling from NVidia Settings but which keeps showing up as active every time I reboot (the problem predates the Rift, so I suspect this is a symptom and not a cause).

Any ideas? How do I even begin to figure out what's tripping the damned thing up on boot?

Thanks.


Solution 1:

This could be fixed by adding the nomodeset value to the grub boot options. To do so open the file:

gksudo gedit /etc/default/grub

then look for the line GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

The quiet splash options may or may not be there, and there may be additional options, don't touch those and add to the end of it nomodeset

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

Save the file and exit gedit, then update grub's configuration in the following way:

sudo update-grub

Source: happened to me

Solution 2:

Ok, so it seems this is actually less to do with the NVidia cards and more to do with the fact that I'm using an SSD as a system drive.

As I understand it, the problem is that it's trying to start lightdm before the video card has finished initializing or some such nonsense.

It's a big problem on Macs; https://devtalk.nvidia.com/default/topic/573252/linux/evo-push-buffer-channel-allocation-failed-is-back-as-usedplib-false-no-more-supported-with-325-15/4/

I've tried a LOT of fixes related to the EVO Buffer problem, but it seems that most of them don't work with Ubuntu.

Seems the only thing that works is to deliberately give the system time to catch up before trying to launch lightdm.

So, in /etc/init.d/lightdm.conf, locate the line that says:

exec lightdm

.. and simply change it to:

sleep 2
exec lightdm

It's an ugly, kludgy fix, but I have no idea how to go about telling lightdm to wait for the cards.

Incidentally, not sure what the fix for the xorg.conf file was, I'd read that copying it to /usr/lib/X11/xorg.conf.d was more reliable and that setting the screens using the Ubuntu display manager was more reliable.

I did both, one of them worked, but I couldn't tell you which one.

Solution 3:

I had similar problems with the NVIDIA driver initially in my machine. I switched to NVIDIA's legacy driver version 173.1439. It seems a lot more stable in two weeks of use. I found it as the second choice in Software & Updates – Additional drivers. This option replaces your driver but you can roll it back if need be.

Solution 4:

Assuming you have a Grub bootloader:

Boot into Ubuntu Recovery mode.

Open Grub Customizer:

sudo grub-customizer
  1. Create a copy of your normal boot (just to be safe) and call it Ubuntu-NVidia.
  2. Edit the Ubuntu-NVidia boot: remove the line containing: gfxmode $linux_gfx_mode
  3. Save your Grub Config
  4. Reboot
  5. Select the Ubuntu-NVidia boot
  6. Your NVidia drivers should be loaded and your desktop should be showing now.

This worked for me on the following configuration:

  • Dell XPS17 (L702X 2011 model)
  • SATA SSD
  • GeForce GT 555M using NVidia driver 390.132
  • Ubuntu 20.04 (LTS) Linux 5.4.0-37-generic
  • GRUB 2.04