NVidia 驱动程序,正常启动导致黑屏,恢复启动正常

NVidia 驱动程序,正常启动导致黑屏,恢复启动正常

好的,所以,像许多其他人一样,我在使用 NVidia 驱动程序时遇到了很多麻烦,在这种情况下,从这里下载的新的 340.32 驱动程序(http://www.nvidia.com/object/unix.html),但是我在使用几乎所有版本时都遇到了这些问题。

所以,这就是我目前的情况,据我所知,驱动程序安装得很好,但如果我让 Ubuntu 尝试正常启动,我最终会进入空白屏幕,什么都没有显示。运行级别更改不起作用,它完全被锁定了,等等。

如果我启动到恢复模式,然后恢复启动(没有其他更改,我实际上只是点击“恢复启动”),一切似乎都正常工作。

因此,我假设某些东西是通过常规启动启动的,而不是通过恢复启动启动的(显然,在恢复启动时会出现这样的警告),但我不知道是什么或如何诊断它。

这是另一个主要症状,nvidia-settings 启动正常,我可以在 /etc/X11 中毫无问题地保存 xorg.conf 文件(无需合并)。但是,当我执行恢复启动时,系统丢失了我对配置所做的任何更改,所以我猜想有些东西没有读取 xorg 文件或类似的东西。

Ubuntu 14.04,内核 36。NVidia
驱动程序 340.32(但我尝试过的所有版本都会发生这种情况,甚至早于 3.04)
2x EVGA NVidia 780 GTX(通过 SLI 桥连接),带有 2 个 WQHD 显示器,均由卡 0 驱动,再加上一个 Oculus Rift DK2,我一直从 NVidia 设置中禁用它,但每次重新启动时它都会显示为活动状态(问题早于 Rift,所以我怀疑这是一种症状而不是原因)。

有什么想法吗?我该如何弄清楚是什么在启动时绊倒了这该死的东西?

谢谢。

答案1

可以通过将 nomodeset 值添加到 grub 启动选项来解决此问题。为此,请打开文件:

gksudo gedit /etc/default/grub

然后寻找GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

这些quiet splash选项可能存在,也可能不存在,并且可能还有其他选项,不要触碰它们,并在其末尾添加 nomodeset

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

保存文件并退出 gedit,然后按以下方式更新 grub 的配置:

sudo update-grub

来源:发生在我身上

答案2

好的,所以看起来这实际上与 NVidia 卡关系不大,而与我使用 SSD 作为系统驱动器有关。

据我了解,问题在于它试图在视频卡完成初始化之前启动 lig​​htdm 或类似的废话。

这是 Mac 上的一个大问题; 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/

我尝试了很多与 EVO Buffer 问题相关的修复方法,但似乎大多数方法都不适用于 Ubuntu。

似乎唯一有效的方法是故意给系统时间来赶上,然后再尝试启动 lig​​htdm。

因此,在 /etc/init.d/lightdm.conf 中,找到以下行:

exec lightdm

..然后简单地将其更改为:

sleep 2
exec lightdm

这是一个丑陋的、笨拙的修复,但我不知道如何告诉 lightdm 等待卡片。

顺便说一句,不确定 xorg.conf 文件的修复方法是什么,我读到将其复制到 /usr/lib/X11/xorg.conf.d 更可靠,并且使用 Ubuntu 显示管理器设置屏幕更可靠。

我都做了,其中一个有效,但我无法告诉你哪一个。

答案3

我最初在计算机上使用 NVIDIA 驱动程序时也遇到了类似的问题。我切换到了 NVIDIA 的旧版驱动程序版本 173.1439。使用两周后,它似乎稳定得多。我在“软件和更新 - 附加驱动程序”中找到了第二个选择。此选项将替换您的驱动程序,但您可以根据需要将其回滚。

答案4

VFXGordon 回答为我解决了这个问题,但是由于自 Ubuntu 14.04 以来文件名和命令发生了变化,它有点过时了。

对于 Ubuntu 20.04,解决方案如下:

  1. 在 中/etc/init.d/lightdm,找到以下行:
       start-stop-daemon --start --quiet $SSD_START_ARGS
    
  2. 并将其更改为:
       sleep 2
       start-stop-daemon --start --quiet $SSD_START_ARGS
    

该解决方案的解释可以在VFXGordon 回答

相关内容