使用 NVIDIA 驱动程序启动时内部显示冻结

Dan*_*ams 5 nvidia xorg multiple-monitors graphics 20.04

问题

我的内部显示器在启动时冻结。在启动过程中,只有内部显示工作,但就在登录屏幕之前,它冻结在 ubuntu 启动屏幕上。外部显示器连接并在内部显示器停止工作时显示桌面。

问题是如何引起的

首次设置 eGPU 和 RTX 3070 后,整个操作系统将在登录屏幕前挂起。即,内部显示器将如上所述冻结,而外部显示器将不显示任何内容。我必须遵循本指南,其中包括nomodeset在 grub 中作为引导选项添加。

此后,即使安装了所有当前的 Nvidia 驱动程序,也只有内部显示器在工作。在运行时nvidia-smi,进程选项卡显示No running processes found。为了解决这个问题,我下载并运行了这个脚本“egpu-switcher”,它改变了etc/X11/xorg.conf(我假设)支持使用 eGPU 运行外部显示器。执行这些步骤后,在重新启动时,内部显示器会如最初描述的那样冻结。

尝试过的解决方案

  • 刷BIOS,没效果
  • 重新安装所有NVIDIA驱动,没有效果
  • 安装bumblebee,没有效果(虽然不知道怎么用)
  • Removing egpu-switcher,恢复到以前只有内部显示器工作的行为

我想要的解决方案

要么是 GPU/NVIDIA 驱动程序来驱动内部显示器,要么是内部显示器由我的集成显卡供电,然后我的外部显示器由我的专用 GPU 供电。这甚至可能吗?

我的规格

Ubuntu 20.04
Dell Latitude 7390(英特尔集成显卡)
Razer Core X Chroma eGPU
NVIDIA RTX 3070
显示器通过 DisplayPort 连接到 GPU

其他注意事项

nvidia-smi输出

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.39       Driver Version: 460.39       CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce RTX 3070    Off  | 00000000:08:00.0  On |                  N/A |
|  0%   37C    P8    15W / 220W |    482MiB /  7982MiB |     10%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1601      G   /usr/lib/xorg/Xorg                 53MiB |
|    0   N/A  N/A      2810      G   /usr/lib/xorg/Xorg                231MiB |
|    0   N/A  N/A      2947      G   /usr/bin/gnome-shell               38MiB |
|    0   N/A  N/A      3423      G   /proc/self/exe                     13MiB |
|    0   N/A  N/A      3667      G   ...AAAAAAAA== --shared-files       30MiB |
|    0   N/A  N/A      8362      G   ...AAAAAAAAA= --shared-files       96MiB |
|    0   N/A  N/A      8793      G   gnome-control-center                3MiB |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

如果需要,我很乐意提供更多细节。提前感谢大家的回答,我是 Ubuntu 新手,所以最近这让我很沮丧。

Dan*_*ams 1

我通过在 NVIDIA 论坛上提问找到了解决方案。出于某种原因,我所要做的就是

  • 消除/etc/X11/xorg.conf
  • 卸载egpu-switcher或运行egpu-switcher cleanup(如果已安装/运行)
  • /etc/X11/xorg.conf.d/10-nvidia-egpu.conf仅使用以下内容创建:
Section "OutputClass"
    Identifier "nvidia-egpu"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "AllowExternalGpus" "True"
EndSection
Run Code Online (Sandbox Code Playgroud)
  • nomodeset然后从启动选项中删除该参数