我运行的是 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
),您可以按照以下步骤修复此问题:
(选修的)启动到根外壳安全地运行命令。
删除
dkms
NVIDIA 驱动程序文件:sudo rm -r /var/lib/dkms/nvidia
清除 NVIDIA 驱动程序:
sudo dpkg -P --force-all $(dpkg -l | grep "nvidia-" | grep -v lib | awk '{print $2}')
重新安装 NVIDIA 驱动程序:
sudo ubuntu-drivers autoinstall
重启!
现在,您的 NVIDIA 驱动程序应该可以正常工作了!
答案2
我有相同的显卡和 Ubuntu 版本。我遇到了类似的错误,但我的解决方案是:
sudo init 3
# Then after logging in again:
sudo apt install nvidia-driver-525 nvidia-dkms-525
sudo reboot