如何让我的(Linux)计算机使用 Nvidia 驱动程序?

如何让我的(Linux)计算机使用 Nvidia 驱动程序?

我在使用 Linux Mint 18 (MATE)。

大约一周前,我犯了一个非常严重的错误,允许更新管理器帮我更新软件包,从那以后我就无法让我的图形正常工作了。

经过大量努力和阅读其他超级用户的问题后,我:

  • 清除所有 Nvidia 软件包
  • 重新安装 nvidia-384 包
    • 加上一些相关的软件包,nvidia-settings例如nvidia-prime
    • (Prime 是针对像我这样的既有内置英特尔显卡又有独立 NVidia 显卡的电脑的功能;应该让我能够以智能的方式使用两者,但目前我只想 100% 的时间使用 Nvidia 卡)
  • 运行sudo update-alternatives --config x86_64-linux-gnu_gl_conf并选择 Nvidia(这似乎并不重要;无论我选择什么,它都会在我重启后重置)
  • 运行nvidia-xconfig以生成新的 xorg.conf
  • 我甚至编辑了我的 GRUB 配置,以便它不会选择 Noveau 驱动程序:
    • GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noveau.modset=0"

但我的电脑仍然拒绝使用 Nvidia 驱动程序,或者至少拒绝完全使用。如果我运行以下命令,它们会正常工作:

 lspci | grep -i nvidia

我得到:

01:00.0 VGA compatible controller: NVIDIA Corporation GK104M [GeForce GTX 870M] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GK104 HDMI Audio Controller (rev a1)

(之前没有列出任何内容)。如果我运行:

sudo update-alternatives --config x86_64-linux-gnu_gl_conf

看到Nvidia 选项,但无论我选择多少次,重新启动后它都会恢复为 Mesa 选项:

There are 3 choices for the alternative x86_64-linux-gnu_gl_conf (providing /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf).

  Selection    Path                                       Priority   Status
------------------------------------------------------------
  0            /usr/lib/nvidia-384/ld.so.conf              8604      auto     mode
  1            /usr/lib/nvidia-384-prime/ld.so.conf        8603      manual mode
  2            /usr/lib/nvidia-384/ld.so.conf              8604      manual mode
* 3            /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf   500       manual mode

但是当我运行它时nvidia-settings它只是告诉我ERROR: Unable to load info from any available system,如果我sudo prime-select query在重启后运行它只会显示“未知”。然后我可以运行它sudo prime-select nvidia并且它会选择 Nvidia ... 但是然后(像替代文件一样)它会在下次重启后回到未知状态。

所以,我觉得我已经很接近了,我只需要做某物让我的电脑既能使用 Nvidia 驱动程序,更重要的是,在重启后继续使用它。有人能帮忙吗?

PS 我能判断 NVidia 驱动程序未被使用的另一种方法是,我看不到插入 Nvidia 卡的第二台显示器(如果算上笔记本电脑显示器,则是第三台显示器);我只能看到笔记本电脑和显示器 #1。当 Nvidia 卡工作时,我可以看到两个显示器。

PPS 我还尝试使用 从备选列表中删除 MESA 驱动程序sudo update-alternatives --remove x86_64-linux-gnu_gl_conf /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf,但没有帮助。现在当我运行sudo update-alternatives --config x86_64-linux-gnu_gl_conf它时,它声称/usr/lib/nvidia-390/ld.so.conf正在使用,但当我尝试运行nvidia-settings它时,它却声称不是这样:

ERROR: NVIDIA driver is not loaded


ERROR: Unable to load info from any available system

答案1

这最终成为了最奇怪的事情。在某个随机论坛帖子中,有人建议 BIOS 中的安全启动设置可能会导致问题,所以我重新启动,进入 BIOS 设置,果然它已打开。我将其关闭,继续启动,然后突然一切都恢复正常。

相关内容