如何检查Ubuntu是否正在使用我的NVIDIA显卡?

我问的原因是,我通过软件中心安装的一些需要3D加速的游戏,比如TORCS,都无法运行。当我尝试运行它们时,什么都不会发生。我有一台戴尔Inspiron N5110笔记本电脑,配备了nVidia GeForce GT 525M显卡。
我尝试了以下一些建议,这些建议是给遇到类似问题的人提供的:
lspci -v

给了我:
01:00.0 VGA compatible controller: nVidia Corporation Device 0df5 (rev a1) (prog-if 00 [VGA controller])
    Subsystem: Dell Device 04ca
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at f5000000 (32-bit, non-prefetchable) [size=16M]
    Memory at e0000000 (64-bit, prefetchable) [size=256M]
    Memory at f0000000 (64-bit, prefetchable) [size=32M]
    I/O ports at e000 [size=128]
    Expansion ROM at f6000000 [disabled] [size=512K]
    Capabilities: <access denied>
    Kernel driver in use: nvidia
    Kernel modules: nvidia_current, nvidia_current_updates, nvidia, nouveau, nvidiafb

我也尝试过:

egrep -i " connected|card detect|primary dev" /var/log/Xorg.0.log

给了我:
[    20.873] (II) intel(0): Output LVDS1 connected

而且:
nvidia-smi -a

给出的是:
NVIDIA: could not open the device file /dev/nvidiactl (No such file or directory).
Nvidia-smi has failed because it couldn't communicate with NVIDIA driver. Make sure that latest NVIDIA driver is installed and running.

我真的不太明白这一切是什么意思。
9个回答

我知道这个问题很久了,但是我找到了一个解决办法,在其他主题中没有找到。

打开终端并键入

lspci -vnnn | perl -lne 'print if /^\d+\:.+(\[\S+\:\S+\])/' | grep VGA

你的输出会是这样的:
00:02.0 VGA compatible controller [0300]: Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09) (prog-if 00 [VGA controller]) 

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Chelsea LP [Radeon HD 7730M] [1002:682f] (rev ff) (prog-if ff)

现在在每个设备的末尾寻找[VGA控制器]。无论哪个设备有它,都是活动的GPU。在我的情况下,是i7处理器(HD 4000)在处理工作。

12不是真的...lspci -vnnn | perl -lne 'print if /^\d+:.+([\S+:\S+])/' | grep VGA 00:02.0 显卡兼容控制器 [0300]: Intel Corporation 第三代 Core 处理器显卡控制器 [8086:0166] (rev 09) (prog-if 00 [VGA 控制器]) 01:00.0 显卡兼容控制器 [0300]: NVIDIA Corporation GK107M [GeForce GT 650M] [10de:0fd1] (rev a1) (prog-if 00 [VGA 控制器]) - Anne van Rossum
@AnnevanRossum 你解决了这个问题吗?我和你一样,也遇到了两个[VGA控制器]的完全相同的问题。 - Einar Sundgren
@EinarSundgren 我放弃了bumblebee,转而使用nvidia optimus(http://xmodulo.com/install-configure-nvidia-optimus-driver-ubuntu.html),它允许你通过`prime-select`进行切换。 - Anne van Rossum
19在这种情况下,使用lspci -v | grep "VGA controller"应该能解决问题...真是一个过于复杂的方式来获得相同的结果... - Cestarian
5这个回答是错误的,我有一个[VGA控制器]作为显卡,但我没有使用它。 - G M
6这是不正确的。我安装的图形卡(Intel和AMD)都有[VGA控制器]。 - Machisuji
尤其是在虚拟环境中(即使使用PCI直通技术),这只能表明系统是否检测到了PCI设备。这是一种非常基本的信息,绝不意味着驱动程序可以正常工作。当然,如果设备未列出,则我们可以确定驱动程序也无法正常工作。我几乎可以肯定,在这种情况下,驱动程序的安装过程至少会提示您找不到任何支持的设备。 - rbaleksandar
2完全不需要使用perl命令。只需键入lspci -vnn | grep VGA即可。 - thanos.a

我找到了this(如果你有NVidia和Intel显卡):
我认为以下命令应该能给你一个关于你的活动芯片的指示:
$ glxinfo|egrep "OpenGL vendor|OpenGL renderer*"

OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile*

如果你切换到了Nvidia显卡:
$ optirun glxinfo|egrep "OpenGL vendor|OpenGL renderer"

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 555M/PCIe/SSE2

nvidia-settings实用程序

在Ubuntu 15.10上,安装了nvidia-352并且GPU似乎工作正常(参见这些步骤)之后:

nvidia-settings

显示类似于:

enter image description here

请注意它的显示方式:
GPU 0 - (NVS 5400M)

我的GPU型号是 NVS 5400M。也在 Quadro K1100M 上进行了测试。在安装驱动程序之前没有显示出来。

另外,如果我执行:

sudo apt-get install mesa-utils
__GL_SYNC_TO_VBLANK=0 vblank_mode=0 glxgears

GPU 使用率超过 90%,进一步证明它正在工作。

这些环境变量用于禁用垂直同步:https://stackoverflow.com/questions/17196117/disable-vertical-sync-for-glxgears

但最重要的测试是使用/不使用 GPU 进行基准测试,看看你的 FPS 是否大幅提升:如何进行详细且快速的 3D 性能测试

nvidia-settings 是开源的,顺便提一下:https://github.com/NVIDIA/nvidia-settings

在 Launchpad 上也有类似的问题:https://answers.launchpad.net/ubuntu/+question/233462


这对我非常有效。只需添加一点 - 为了显示>90%的GPU使用率,我必须执行apt-get install glmark2,然后运行它。相当不错! - AruniRC

最简单的方法是进入设置 -> 详细信息 -> 关于,进行检查。

Settings


这个主题是什么,如果你感兴趣的话?看起来不错! - finsbury
1@finsbury 给你,Arc主题 - Maduka Jayalath
我需要完全相同型号的驱动程序!你能给我提供链接吗? - Yash Kumar Verma
@YashKumarVerma 显示驱动程序下载 - Maduka Jayalath
1对我来说,这显示了我的GPU,尽管它正在使用llvmpipe(它输出到我的GPU,但不使用加速功能)。 - Heath Mitchell

试试这个,我觉得会有效果:
nvidia-smi

它会给你类似于这样的东西

enter image description here


我认为最简单的方法之一是在终端中运行以下命令:prime-select query。 输出结果将显示您的计算机正在使用的图形卡。 下面是一个示例: enter image description here 如果您想要在不同的图形卡之间切换,请使用sudo prime-select <graphic card name>命令。

1这可能行不通。我有Nvidia,但是如果我运行nvidia-smi,那里没有进程(Xorg)。检查Ubuntu->设置->关于显示正在使用Intel处理器。 - saurabheights

sudo aptitude install inxi

inxi -G

输出将会是这样的:
Graphics:  Card: NVIDIA GF108 [GeForce GT 730]
           Display Server: x11 (X.Org 1.19.6 ) drivers: nvidia (unloaded: modesetting,fbdev,vesa,nouveau)
           Resolution: 1920x1080@60.00hz, 1920x1200@59.95hz
           OpenGL: renderer: GeForce GT 730/PCIe/SSE2 version: 4.6.0 NVIDIA 390.116

我建议使用nvtop工具,它可以实时监控,并以图表形式展示。
$ sudo apt install nvtop
$ nvtop

enter image description here


另外,如果您已正确安装Nvidia驱动程序,这些命令也很有用:

查找任何图形卡

ls -l /proc/driver/nvidia/gpus/

以及

检查已安装的NVIDIA GPU

cat /proc/driver/nvidia/gpus/0000:01:00.0/information

例如,对于我来说:

Model:       NVIDIA GeForce RTX 3060
IRQ:         152
GPU UUID:    GPU-dadf78f5-afd8-b3fd-c64f-1e3a2b6fc9bc
Video BIOS:      94.06.2f.00.bd
Bus Type:    PCIe
DMA Size:    47 bits
DMA Mask:    0x7fffffffffff
Bus Location:    0000:01:00.0
Device Minor:    0
GPU Excluded:    No