![Ubuntu 18.04 不使用 Nvidia 卡](https://linux22.com/image/915847/Ubuntu%2018.04%20%E4%B8%8D%E4%BD%BF%E7%94%A8%20Nvidia%20%E5%8D%A1.png)
我知道互联网上存在许多关于同一主题的问题和答案,但我仍然无法解决我的笔记本电脑上的问题。
以下是我的笔记本电脑的配置。
- 配备集成显卡的第八代 i5
- 英伟达MX250
- Ubuntu 18.04(与 Windows 10 双启动)
我已经安装了推荐的 nvidia 卡驱动程序 -nvidia-驱动程序-435。
以下是一些观察结果:
- Intel 显卡显示在关于节设置。
- NVIDIA X 服务器设置未列出 nvidia GPU,但 PRIME 配置文件可用,并且已选择 nvidia,如图所示这里。
lshw -c display
显示 nvidia 卡和英特尔卡。
*-display
description: 3D controller
product: NVIDIA Corporation
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:02:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: bus_master cap_list
configuration: driver=nvidia latency=0
resources: irq:150 memory:93000000-93ffffff memory:80000000-8fffffff memory:90000000-91ffffff ioport:3000(size=128)
nvidia-smi
给出以下输出,似乎 nvidia GPU 没有被使用。
Wed Sep 11 17:57:57 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 435.21 Driver Version: 435.21 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce MX250 Off | 00000000:02:00.0 Off | N/A |
| N/A 40C P8 N/A / N/A | 0MiB / 2002MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
nvidia-detector
输出none
有趣的是,如果我nvidia-smi
从终端电话会议,可以看到一些使用 GPU 的进程。
Wed Sep 11 17:54:42 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 435.21 Driver Version: 435.21 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce MX250 Off | 00000000:02:00.0 Off | N/A |
| N/A 38C P8 N/A / N/A | 12MiB / 2002MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 2564 G /usr/lib/xorg/Xorg 7MiB |
| 0 2716 G /usr/bin/gnome-shell 4MiB |
+-----------------------------------------------------------------------------+
更多观察:
- 如果我选择Xorg 上的 Gnome或者Ubuntu从登录屏幕开始,我得到一个卡住的屏幕,什么都无法工作(当这种情况发生时,我通常会切换到 TTY 会话并重新启动)。但是侏儒和Wayland 上的 Ubuntu登录后没有问题。
任何帮助都非常感谢。
干杯!
编辑:我的 GPU 已经工作了。我已在下面发布了答案。
答案1
最后,我的笔记本电脑上的 Ubuntu 正在使用 NVIDIA 卡!!我重新安装了 Ubuntu。上次安装 Ubuntu 时,我没有将笔记本电脑连接到互联网。因此操作系统可能没有正确识别设备和相应的驱动程序(但我不确定这一点)。这次我在安装前连接到 WiFi。安装后,列表中只列出了一个专有驱动程序额外的驾驶员选项卡软件和更新,而上次有两个。我选择了该驱动程序并在安装后重新启动。
重启后我有以下观察:
- NVIDIA 显卡显示在关于节设置。
- NVIDIA GPU 在 NVIDIA X Server 设置中列出。
有趣的是,当我从登录屏幕切换到 GNOME 会话时,系统并未使用 NVIDIA GPU。因此,我在 Xorg 上切换到 GNOME,系统开始使用 NVIDIA GPU。
nvidia-smi
现在给出以下输出:
Mon Sep 23 18:10:15 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce MX250 Off | 00000000:02:00.0 Off | N/A |
| N/A 45C P0 N/A / N/A | 305MiB / 2002MiB | 12% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 3120 G /usr/lib/xorg/Xorg 160MiB |
| 0 3262 G /usr/bin/gnome-shell 120MiB |
| 0 5052 G /usr/bin/vlc 22MiB |
+-----------------------------------------------------------------------------+
谢谢!
答案2
我不知道您的具体情况,有些小东西似乎确实在 GPU 上运行。但是,对于这些问题,我发现安装 Bumblebee 和 Primus 可以提供帮助:
sudo apt-get install bumblebee primus
然后,您应该能够使用optirun program_name
或使用您的 GPU 运行程序primusrun program_name
。
这个线程对于我让 optirun 工作的问题非常有帮助:https://bugs.launchpad.net/ubuntu/+source/bumblebee/+bug/1758243特别是答案31:
- 需要做的第一个更改是编辑 /etc/bumblebee/bumblebee.conf,如下所示:
LibraryPath=/usr/lib/x86_64-linux-gnu:/usr/lib/i386-linux-gnu XorgModulePath=/usr/lib/x86_64-linux-gnu/nvidia-418/xorg,/usr/lib/xorg/modules,/usr/lib/xorg/modules/input XorgConfFile=/etc/bumblebee/xorg.conf.nvidia
这是预料之中的,因为每个 NVIDIA 驱动程序的路径都不同。
- 需要的第二个更改是导出此内容:
导出__GLVND_DISALLOW_PATCHING=1
通过这两项改变,一切正常。
在您的情况下,418 应该被 435 替换。