谢谢你!

谢谢你!

系统信息

  • MSI Creator 15 笔记本电脑
  • NVIDIA GeForce RTX 2070 SUPER 移动版 / Max-Q
  • 外接 LG Ultrawide 显示器
  • Windows 10 / Ubuntu 20.04 双启动

问题

我已经在我的 Ubuntu 20.04 机器上成功使用 nvidia 455 驱动程序大约六个月了。我很少使用 Windows 分区,但昨天我在使用它。关闭 Windows 10 并返回 Ubuntu 后,我的外接显示器完全停止工作。

(注意:Windows 可能与此问题无关——重新启动可能会让 Ubuntu 有机会更新软件包并自我破坏)

显然,NVIDIA 驱动程序不再起作用。运行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.

在谷歌上搜索答案,大多数解决方案都建议在发生这种情况时重新安装 NVIDIA 驱动程序。请注意,我需要图形驱动程序以及 CUDA 工具包等nvcc

清除 Nvidia

我尝试过许多不同的解决方案,每当我遇到困难并需要重新开始时,我就会运行这些命令。

sudo apt purge nvidia*
sudo apt purge libnvidia*
sudo apt autoremove

通常,由于新安装的驱动程序导致 Ubuntu 在重启后卡在启动过程中,所以我会在恢复模式下运行这些程序。

我还检查dpkg -l | grep nvidia并删除了安装过程中遗留的所有软件包。当我想安装旧版本的驱动程序时,这是必要的。

尝试的解决方案

以下是我尝试过的所有方法的列表:

  • 无数次重启我的机器(包括完全关闭电源和拔掉电源一段时间)

  • 跟随官方NVIDIA Cuda 安装指南重新安装驱动程序并管理冲突。例如,

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.4.1/local_installers/cuda-repo-ubuntu2004-11-4-local_11.4.1-470.57.02-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-4-local_11.4.1-470.57.02-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-4-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
  • 尝试将 noveau 和 nvidiafb 列入黑名单:
blacklist nvidiafb
blacklist nouveau
options nouveau modeset=0
  • 重新安装 nvidia 驱动程序时,我尝试了多个驱动程序版本(470、465、460、455),使用了多种安装方法(首先是 deb,然后是 ubuntu-distributed,然后是 runfile)。所有这些方法都以不同的方式失败了。最常见的是,当我安装驱动程序后重新启动时,Ubuntu 在启动时无限挂起(我看到一个黑屏,上面有 MSI 徽标和“ubuntu”徽标,有时还有一个旋转的圆圈)。

  • NVIDIA 驱动程序在 Windows 中似乎仍能正常工作,因此我认为我的显卡没有烧坏或出现类似问题。

  • 从 grub 启动到 Ubuntu 恢复模式并选择 dpkg repaiingr 选项——似乎没有任何帮助

  • sudo ubundu-drivers autoinstall-- 安装了 nvidia 470 驱动程序,但没有成功

  • 我注意到uname -r我的内核版本是 5.11,而 Nvidia 驱动程序的支持表显示 Ubuntu 20.04 仅支持 5.4。因此,我降级到 5.4 并重新安装了 nvidia 驱动程序,但仍然没有成功。

观察结果

nvidia-smi在下列情况下会产生输出(而不是错误):

  • 重新安装驱动程序之后但在重新启动系统之前
  • 重新安装驱动程序后进入恢复模式

现在怎么办?

我完全不知道该怎么办了。我唯一能想到的办法就是完全重新安装 Ubuntu,但昨天一切都运行正常,这似乎有点疯狂。

参考

询问Ubuntu.SE,“安装 nvidia 限制驱动程序后屏幕空白”

询问Ubuntu.SE,Ubuntu 18.04 和 nVidia。启动后卡住

询问Ubuntu.SE,从 PPA 安装最新驱动程序后启动挂起,且 Ctrl+Alt+F1 键盘快捷键不起作用

询问Ubuntu.SE,卡在启动屏幕,Nvidia 显卡驱动程序问题

询问Ubuntu更改 NVIDIA 驱动程序导致 Ubuntu 在启动时冻结

询问Ubuntu安装 nvidia 限制驱动程序后出现空白屏幕

询问Ubuntu图形驱动程序停止工作

询问UbuntuUbuntu 20.04 Nvidia 显卡不可用(建议切换到内核5.4)

系统信息

在写这个问题之前,我再次使用上面描述的方法清除了系统中的所有内容。在这种状态下,以下是一些系统信息:

内核版本

$ uname -r
5.4.0-80-generic

安全启动

$ sudo mokutil --sb-state
SecureBoot disabled

lshw

$ sudo lshw -C display
  *-display UNCLAIMED       
       description: VGA compatible controller
       product: TU104M [GeForce RTX 2070 SUPER Mobile / Max-Q]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller cap_list
       configuration: latency=0
       resources: memory:ac000000-acffffff memory:80000000-8fffffff memory:90000000-91ffffff ioport:3000(size=128) memory:ad000000-ad07ffff
  *-display
       description: VGA compatible controller
       product: UHD Graphics
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 05
       width: 64 bits
       clock: 33MHz
       capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:191 memory:ab000000-abffffff memory:40000000-4fffffff ioport:4000(size=64) memory:c0000-dffff

hwinfo

$ hwinfo --gfxcard
16: PCI 100.0: 0300 VGA compatible controller (VGA)             
  [Created at pci.386]
  Unique ID: VCu0.pBgP2fGEzV8
  Parent ID: vSkL.sXdMPV6yXb4
  SysFS ID: /devices/pci0000:00/0000:00:01.0/0000:01:00.0
  SysFS BusID: 0000:01:00.0
  Hardware Class: graphics card
  Model: "nVidia VGA compatible controller"
  Vendor: pci 0x10de "nVidia Corporation"
  Device: pci 0x1e91 
  SubVendor: pci 0x1462 "Micro-Star International Co., Ltd. [MSI]"
  SubDevice: pci 0x12c6 
  Revision: 0xa1
  Memory Range: 0xac000000-0xacffffff (rw,non-prefetchable,disabled)
  Memory Range: 0x80000000-0x8fffffff (ro,non-prefetchable,disabled)
  Memory Range: 0x90000000-0x91ffffff (ro,non-prefetchable,disabled)
  I/O Ports: 0x3000-0x307f (rw,disabled)
  Memory Range: 0xad000000-0xad07ffff (ro,non-prefetchable,disabled)
  IRQ: 255 (no events)
  Module Alias: "pci:v000010DEd00001E91sv00001462sd000012C6bc03sc00i00"
  Driver Info #0:
    Driver Status: nvidiafb is not active
    Driver Activation Cmd: "modprobe nvidiafb"
  Driver Info #1:
    Driver Status: nouveau is not active
    Driver Activation Cmd: "modprobe nouveau"
  Driver Info #2:
    Driver Status: nvidia_drm is not active
    Driver Activation Cmd: "modprobe nvidia_drm"
  Driver Info #3:
    Driver Status: nvidia is not active
    Driver Activation Cmd: "modprobe nvidia"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #11 (PCI bridge)
 
34: PCI 02.0: 0300 VGA compatible controller (VGA)
  [Created at pci.386]
  Unique ID: _Znp.7YEiQ6GHkFE
  SysFS ID: /devices/pci0000:00/0000:00:02.0
  SysFS BusID: 0000:00:02.0
  Hardware Class: graphics card
  Device Name: "Onboard - Video"
  Model: "Intel VGA compatible controller"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x9bc4 
  SubVendor: pci 0x1462 "Micro-Star International Co., Ltd. [MSI]"
  SubDevice: pci 0x12c6 
  Revision: 0x05
  Driver: "i915"
  Driver Modules: "i915"
  Memory Range: 0xab000000-0xabffffff (rw,non-prefetchable)
  Memory Range: 0x40000000-0x4fffffff (ro,non-prefetchable)
  I/O Ports: 0x4000-0x403f (rw)
  Memory Range: 0x000c0000-0x000dffff (rw,non-prefetchable,disabled)
  IRQ: 192 (55080 events)
  Module Alias: "pci:v00008086d00009BC4sv00001462sd000012C6bc03sc00i00"
  Driver Info #0:
    Driver Status: i915 is active
    Driver Activation Cmd: "modprobe i915"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
 
Primary display adapter: #16

ubuntu-drivers

$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001E91sv00001462sd000012C6bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-460 - distro non-free recommended
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-470 - third-party non-free
driver   : nvidia-driver-460-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

谢谢你!

如果需要更多信息,请告诉我,我会尽力提供!感谢您提供的任何帮助!

答案1

我今天运行了以下命令(按照上述方法清除后)并且重启后它似乎又可以正常工作:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-460

不要问我为什么它有效——我昨天尝试了同样的事情,但没有成功。

答案2

我通过重新安装驱动程序并通过 Nvidia 驱动程序启用所有 GPU 解决了该问题:

  1. 运行命令:

    sudo nvidia-config --enable-all-gpus.
    
  2. 关机并启动(不是重新启动)。

答案3

我最近在 Fedora 上也遇到了这种情况,不过我注意到 Windows 选择更新系统固件(UEFI/BIOS)只是在 Linux NVIDIA 驱动程序停止工作之前。我知道这已经是一年前的事情了,但你的情况是否也一样?

就我而言,我之前安装了 NVIDIA 内核驱动程序,并使用我手动生成的签名密钥对其进行了签名。我使用以下链接中列出的流程执行了此操作,但并非所有步骤都适用于 Ubuntu 用户:

https://blog.monosoul.dev/2021/12/29/automatically-sign-nvidia-kernel-module-in-fedora/

事实证明,系统中注册的密钥mokutil可能会在固件更新中丢失:这就是发生在我身上的事情。要解决我的问题,我所需要做的就是找到我的签名密钥并重新注册我用来签名 NVIDIA 驱动程序的密钥:

sudo mokutil --import /etc/pki/akmods/certs/public_key.der

当然,您的公钥的位置可能会有所不同,因为 Ubuntu 不使用akmods

相关内容