如何将 nvidia 驱动程序从“nouveau”切换到 nvidia 专有驱动程序

如何将 nvidia 驱动程序从“nouveau”切换到 nvidia 专有驱动程序

我正在使用 Linux Mint。

我最近更新了我的工作站,从这一刻起,我的驱动程序变得疯狂。我之前使用驱动程序工作得很好nvidia-361,当我完成更新并重新启动电脑后,il 正在“软件渲染模式”下运行。

我终于有了一个正确的桌面,但现在,我很确定该卡无法正常运行,因为我无法启动任何简单的 3D 游戏(例如 blazeRush,之前运行良好)。

这是一个结果lspci -vnnn

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF104 [GeForce GTX 460] [10de:0e22] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Gigabyte Technology Co., Ltd GF104 [GeForce GTX 460] [1458:34fc]
Flags: bus master, fast devsel, latency 0, IRQ 124
Memory at dc000000 (32-bit, non-prefetchable) [size=32M]
Memory at d0000000 (64-bit, prefetchable) [size=128M]
Memory at d8000000 (64-bit, prefetchable) [size=64M]
I/O ports at e000 [size=128]
Expansion ROM at de000000 [disabled] [size=512K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [b4] Vendor Specific Information: Len=14 <?>
Capabilities: [100] Virtual Channel
Capabilities: [128] Power Budgeting <?>
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
Kernel driver in use: nouveau
Kernel modules: nvidiafb, nouveau, nvidia_375_drm, nvidia_375

如您所见,使用的内核驱动程序是“nouveau”,但我想使用 nvidia_375 代替。我已经尝试像这样用 apt 进行清除

sudo apt purge *nvidia* xserver-xorg*nouveau* bbswitch*

但是当我这样做时,重新启动后,“nouveau”仍然在这里......我可以尝试再次安装专有驱动程序,但我将回到与清除之前相同的情况。

我已经没有选择了。

答案1

在尝试了不同的事情之后,这对我有用。如果有任何东西看起来没用,我将不胜感激任何建议或解释。

  1. 在我的例子中,从 nvidia 网站下载您想要使用的专有驱动程序:

NVIDIA-Linux-x86_64-375.39.run

  1. 进入非图形模式 ( ctrl-alt-f1)
  2. 终止您的图形进程 ( sudo service mdm stop)。如果屏幕变黑,您可以使用其他计算机的远程连接 (ssh) 执行后续步骤,或再次执行步骤 1。
  3. 编辑你的 grub 文件/etc/default/grub并将其更改GRUB_CMD_LINE_DEFAULT为这个

GRUB_CMDLINE_LINUX_DEFAULT="nouveau.blacklist=1 quiet splash"

  1. 清除您可以拥有的所有驱动程序,nouveau或者nvidia( sudo apt-get purge xserver-xorg-video-nouveau libdrm-nouveau1a nvidia*)
  2. 更新您的 initramfs sudo update-initramfs -u -k all。这一步非常重要,但我理解不正确,所以欢迎您的评论
  3. 重启
  4. 返回非图形模式 ( ctrl-alt-f1)
  5. 终止你的图形进程 ( sudo service mdm stop)。如果屏幕变黑,您可以使用远程连接 (ssh) 执行后续步骤或再次执行步骤 1。
  6. 以 root 模式 ( ) 运行下载的专有驱动程序文件sudo ./NVIDIA-Linux-x86_64-375.39.run并单击“是”,或“接受”所需的任何内容。
  7. 重新启动并享受

lspci -vnnn 现在应该是这样

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF104 [GeForce GTX 460] [10de:0e22] (rev a1) (prog-if 00 [VGA controller])
    Subsystem: Gigabyte Technology Co., Ltd GF104 [GeForce GTX 460] [1458:34fc]
    Flags: bus master, fast devsel, latency 0, IRQ 126
    Memory at dc000000 (32-bit, non-prefetchable) [size=32M]
    Memory at d0000000 (64-bit, prefetchable) [size=128M]
    Memory at d8000000 (64-bit, prefetchable) [size=64M]
    I/O ports at e000 [size=128]
    [virtual] Expansion ROM at de000000 [disabled] [size=512K]
    Capabilities: [60] Power Management version 3
    Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [78] Express Endpoint, MSI 00
    Capabilities: [b4] Vendor Specific Information: Len=14 <?>
    Capabilities: [100] Virtual Channel
    Capabilities: [128] Power Budgeting <?>
    Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
    Kernel driver in use: nvidia
    Kernel modules: nvidiafb, nouveau, nvidia_375_drm, nvidia_drm, nvidia_375, nvidia

您可以看到正在使用的内核驱动程序现在引用 nvidia 而不是 nouveau

答案2

显卡没问题。您的游戏滞后的原因是软件渲染模式意味着操作系统在没有专用 GPU 功率的情况下运行,因此它当然会滞后,因为只使用内部图形芯片。

对您来说,悲伤的消息是,这是 NVIDIA 驱动程序问题,我在许多 Linux 操作系统上也遇到过这个问题。除了更改为以前的工作方法之外,您现在无法做太多事情。

相关内容