我有双显卡 Intel 520 集成显卡和 nVidia 930MX 专用显卡。我运行的是 20.04.2,nvidia-driver-460
通过附加驱动程序和intel-media-va-driver-non-free
终端进行安装。目前,我只能在英特尔 GPU 上显示(并成功启动)。运行sudo prime-select nvidia
并重新启动后,我无法再启动,必须通过 TTY 恢复到英特尔。运行时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-xconfig
一个 xorg.conf,其中“文件”部分为空。
nvidia-settings
给出错误:
ERROR: NVIDIA driver is not loaded
ERROR: Unable to load info from any available system
(nvidia-settings:10549): GLib-GObject-CRITICAL **: 18:16:11.739: g_object_unref: assertion
'G_IS_OBJECT (object)' failed
** Message: 18:16:11.749: PRIME: Requires offloading
** Message: 18:16:11.749: PRIME: is it supported? yes
** Message: 18:16:11.857: PRIME: Usage: /usr/bin/prime-select nvidia|intel|on-demand|query
** Message: 18:16:11.857: PRIME: on-demand mode: "1"
** Message: 18:16:11.857: PRIME: is "on-demand" mode supported? yes
跑步whereis nvidia
可得:
nvidia: /usr/lib/x86_64-linux-gnu/nvidia /usr/lib/nvidia /usr/share/nvidia /usr/src/nvidia-460.73.01/nvidia
驱动程序已安装但未加载。如何让驱动程序工作?我也想保留英特尔。
编辑:运行sudo prime-select nvidia
,用重新启动nomodeset
,然后nvidia-smi
从 TTY 运行(因为没有 GUI)会给出以下输出:
Tue May 25 18:33:17 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.73.01 Driver Version: 460.73.01 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 930MX Off | 00000000:01:00.0 Off | N/A |
| N/A 39C P8 N/A / N/A | 10MiB / 2004MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 1063 G /usr/lib/xorg/Xorg 6MiB |
| 0 N/A N/A 1292 G /usr/bin/gnome-shell 2MiB |
+-----------------------------------------------------------------------------+
这表明 nvidia 驱动程序正在加载并运行,但我不知道为什么 GUI 不运行。
编辑2:运行nvidia-settings
并从 PRIME 配置文件中选择任何图形都会导致分段错误。
答案1
这回答由 Celebre Asm 发表,对我有用。
首先从 中删除所有出现的xorg.conf
和。xorg.conf.old
/etc/X11/
然后运行inxi -Fxzc0
并记下BusID
你的 GPU。在我的例子中,intel 是00:02.0
= 0:2:0
,nvidia 是01:00.0
= 1:0:0
。
然后创建一个xorg.conf.d
文件夹,并20-intel.conf
在其中创建包含以下内容的文件:
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "AccelMethod" "sna"
EndSection
并且90-nvidia.conf
文件内容如下:
Section "ServerLayout"
Identifier "layout"
Screen 0 "iGPU"
Option "AllowNVIDIAGPUScreens"
EndSection
Section "Device"
Identifier "iGPU"
Driver "modesetting"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "iGPU"
Device "iGPU"
EndSection
Section "Device"
Identifier "dGPU"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
另外,我还删除了它,xserver-xorg-video-intel
因为不知何故我在桌面上得到了对角绘制的矩形和难以阅读的字体,删除它解决了这个问题。
重启。
**脚注:发生这种情况的原因是,我尝试使用 nvidia 启动我的笔记本电脑以使用 VDPAU。到目前为止,GM108
nvidia GPU 系列不支持解码,并将解码卸载到英特尔对应产品。只要我不更改自首次安装 Ubuntu 以来默认的“按需”选项,一切都很顺利。
答案2
犹豫要不要问这个问题,但是……如果你的电脑是台式机,那么电脑背面可能有两个不同的插槽,一个用于主板上的英特尔显卡,另一个用于插入 nvicia 卡。如果你只插入主板上的一个插槽,你就无法运行 nvidia 显卡。你觉得这有道理吗?