Nvidia 驱动程序在更新时损坏 - 无法重新安装

Nvidia 驱动程序在更新时损坏 - 无法重新安装

我运行的是 Ubuntu 20.04,上次重启后,我的图形驱动程序出现了问题——系统分辨率低,只有一台显示器在工作。

调试输出

$ sudo lshw -C display
  *-display UNCLAIMED       
       description: VGA compatible controller
       product: TU104 [GeForce RTX 2070 SUPER]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:31:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller cap_list
       configuration: latency=0
       resources: memory:f5000000-f5ffffff memory:e0000000-efffffff memory:f0000000-f1ffffff ioport:f000(size=128) memory:f6000000-f607ffff
$ sudo dkms status
nvidia, 510.47.03: added

这种状态看起来有点奇怪,至少我在谷歌搜索时没有发现很多类似的情况。

$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
$ modinfo nvidia
modinfo: ERROR: Module nvidia not found.

在系统信息中,我看到“llvmpipe(LLVM 12.0.0,256 位)”作为我的图形。

我尝试过

我尝试了多种安装 Nvidia 驱动程序的方法,我使用了 apt sudo apt autoremove --purge nvidia* && sudo apt install nvidia-driver-510、“附加驱动程序”UI 和ubuntu-drivers,我尝试了当前最新版本 510 和之前可以使用的旧版本 - 470。我也尝试过选择 nvidiasudo prime-select nvidia以及选择 intel 并切换回 nvidia - 结果相同。

背景

我使用了 Nvidia 驱动程序 470 和内核 5.13.0.26,然后重启后我得到了内核 .27 并且没有 wifi,我最近因为 Nvidia 驱动程序而遇到了这个问题(需要为新内核安装 linux-modules-extra),所以我决定升级驱动程序希望一切都能解决。这导致了目前的情况:安装linux-modules-extra-5.13.0-27-generic然后切换到 510 - .28 也修复了 wifi 问题,但视频驱动程序已损坏。使用 5.13.0.27 时,我能够启动 5.13.0.26 并且我有工作视频,现在情况并非如此,因为 .27 是 Grub 菜单中最近内核中最旧的。

我觉得我缺少了一些可以解决这个问题的步骤,如果能提供任何帮助我将不胜感激。

更新型多巴胺

sudo dkms install -m nvidia -v 510.47.03 -k 5.13.0-28-generic --force
Error! Your kernel headers for kernel 5.13.0-28-generic cannot be found.
Please install the linux-headers-5.13.0-28-generic package,
or use the --kernelsourcedir option to tell DKMS where it's located
$ sudo dkms build -m nvidia -v 510.47.03
Error! Your kernel headers for kernel 5.13.0-28-generic cannot be found.
Please install the linux-headers-5.13.0-28-generic package,
or use the --kernelsourcedir option to tell DKMS where it's located

因此,dkms 似乎不知为何不知道我的内核。我使用了上述错误消息的建议并安装了标头sudo apt install linux-headers-5.13.0-28-generic,之后输出看起来更好:

sudo dkms build -m nvidia -v 510.47.03
Module nvidia/510.47.03 already built for kernel 5.13.0-28-generic/4
sudo dkms status
nvidia, 510.47.03, 5.13.0-28-generic, x86_64: installed

我将立即尝试重新启动,然后根据评论中的建议安装驱动程序。

UPD2

就是这样,现在一切似乎都正常了。不需要对驱动程序做任何事情,问题似乎出在缺少标头上。

答案1

假设您已安装所有先决条件(sudo apt install linux-headers-generic),您可以按照以下步骤修复此问题:

  1. 选修的)启动到根外壳安全地运行命令。

  2. 删除dkmsNVIDIA 驱动程序文件:

    sudo rm -r /var/lib/dkms/nvidia
    
  3. 清除 NVIDIA 驱动程序:

    sudo dpkg -P --force-all $(dpkg -l | grep "nvidia-" | grep -v lib | awk '{print $2}')
    
  4. 重新安装 NVIDIA 驱动程序:

    sudo ubuntu-drivers autoinstall
    
  5. 重启!

现在,您的 NVIDIA 驱动程序应该可以正常工作了!

答案2

我有相同的显卡和 Ubuntu 版本。我遇到了类似的错误,但我的解决方案是:

sudo init 3
# Then after logging in again:
sudo apt install nvidia-driver-525 nvidia-dkms-525
sudo reboot

相关内容