如何检查Linux上安装了哪个GPU

时间:2020-01-09 10:38:59  来源:igfitidea点击:

是否需要识别Linux计算机中的图形处理单元(GPU)?这是从命令行和GNOME中识别图形卡的方法。

lspci和PCI ID数据库

外围组件互连(PCI)标准是一种常见协议,可用于与内部外围设备(例如图形卡)进行通信。 PCI ID存储库维护着PCI设备所有已知ID的数据库。这意味着,如果我们知道有关该设备的某些信息,则可以查找它。

我们可以使用lspci命令来列出Linux计算机上安装的PCI设备,以及有关它们的一些信息。

如果可以将PCI数据库和lspci命令绑定在一起,那不是很好吗?好吧,实际上,这就是运行lspci命令时发生的情况。它检查PCI数据库的本地副本以识别它检测到的PCI设备。在开始之前,明智的做法是更新PCI数据库的本地副本。

输入update-pciids命令即可:

sudo update-pciids

已为我们获取了最新的数据库版本,现在我们可以使用lspci命令。将有很多输出,因此我们将其输出到less中。 -v(详细)选项告诉lscpi提供给我们尽可能多的信息。我们将使用sudo来确保信息尽可能详细。

我们输入以下命令:

sudo lspci -v | less

结果以less出现。如果按正斜杠(/),则激活less搜索功能。

在所有大写字母中键入VGA,然后按Enter。

less搜索字符串VGA,它向我们显示找到的第一个匹配项。从这一点开始,我们可以向前滚动或者翻页以查看找到了多少张lspci图形卡。

在本文中,我们对在VirtualBox虚拟机中运行的各种Linux发行版进行了研究。虚拟机当然具有虚拟图形卡。

因此,我们可以看到一个真实结果的示例,这是主机(物理)计算机的输出:

26:00.0 VGA compatible controller: NVIDIA Corporation GP108 [GeForce GT 1030] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Gigabyte Technology Co., Ltd GP108 [GeForce GT 1030]
Flags: bus master, fast devsel, latency 0, IRQ 97
Memory at f6000000 (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 000c0000 [disabled] [size=128K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Legacy Endpoint, MSI 00
Capabilities: [100] Virtual Channel
Capabilities: [250] Latency Tolerance Reporting
Capabilities: [128] Power Budgeting <?>
Capabilities: [420] Advanced Error Reporting
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
Capabilities: [900] Secondary PCI Express <?>
Kernel driver in use: nouveau
Kernel modules: nouveau

它立即为我们提供了很多很好的信息!

该卡是NVIDIA Corporation GP108 [GeForce GT 1030],在使用搜索引擎几秒钟后,我们找到了该设备的NVIDIA技术页面。第一行末尾的[VGA控制器]文本表示这是可运行的图形卡。当计算机上安装多个卡时,这是有用的信息。

lshw命令

我们也可以使用lshw命令列出Linux计算机上安装的硬件。它报告了多种类型,而不仅仅是PCI硬件。

为了告诉它报告找到的显卡,我们将使用-C(类)选项并传递display修饰符。 " -numeric"选项强制" lshw"提供设备的数字ID及其名称。

输入以下内容:

sudo lshw -numeric -C display

这是在物理计算机上找到的命令:

*-display 
   description: VGA compatible controller
   product: GP108 [GeForce GT 1030] [10DE:1D01]
   vendor: NVIDIA Corporation [10DE]
   physical id: 0
   bus info: pci@0000:26:00.0
   version: a1
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
   configuration: driver=nouveau latency=0
   resources: irq:97 memory:f6000000-f6ffffff memory:e0000000-efffffff memory:f0000000-f1ffffff ioport:e000(size=128) memory:c0000-dffff

令人鼓舞的是,他们俩都发现了同一张卡!

[10DE:1D01]标识符代表制造商(10DE)和型号(1D01)。要立即查找品牌和型号,我们可以在搜索引擎中键入图形卡10de:1d01.

glxinfo命令

glxinfo命令是我们可以使用的另一种方法。它为X Windows系统提供了来自OpenGL扩展的信息。然后,我们可以搜索某些信息,以了解计算机上安装了哪种图形卡。

Manjaro和Fedora上已经存在glxinfo命令,但是我们必须在Ubuntu上安装它。为此,请键入以下命令:

sudo apt-get install mesa-utils

要通过less通过glxinfo输出输出,并使用-B(打印ID)选项,键入以下内容:

glxinfo -B | less

图形卡在设备行中描述。

这是物理计算机的输出:

name of display: :1
display: :1 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: nouveau (0x10de)
Device: NV138 (0x1d01)
Version: 19.3.2
Accelerated: yes
Video memory: 1987MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 4.3
Max compat profile version: 4.3
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL vendor string: nouveau
OpenGL renderer string: NV138
OpenGL core profile version string: 4.3 (Core Profile) Mesa 19.3.2
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.3 (Compatibility Profile) Mesa 19.3.2
OpenGL shading language version string: 4.30
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.3.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

在搜索引擎中键入NV138时,将立即识别NVIDIA图形卡。

使用GUI识别图形卡

如果计算机是仅CLI的服务器,则必须使用我们上面介绍的技术之一。但是,如果它具有(正常工作的)GUI,则可能会以图形方式识别图形卡。实际上,该选项可能在Linux桌面设置工具中的某个位置。

在GNOME桌面上,打开"设置"对话框,然后单击侧栏中的"详细信息"。在"关于"面板中,查找"图形"条目。这将告诉我们计算机中使用的是哪种图形卡,或者更具体地说,是当前正在使用的图形卡。计算机可能具有多个GPU。

在物理主机的" GNOME设置关于"选项卡中,我们获得了与之前看到的相同的NV138卡ID。同样,我们可以将该信息插入搜索引擎以查找卡类型。

笔记本电脑上的图形卡

许多笔记本电脑都有两张图形卡:一张来自中央处理器(CPU)的制造商,另一张来自主流GPU提供商。

让我们键入前面的相同的lspci命令,但是这次,我们将在笔记本电脑上运行它:

sudo lspci -v | less

如预期的那样,我们获得了机器中图形卡的描述:

00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. 3rd Gen Core processor Graphics Controller
Flags: bus master, fast devsel, latency 0, IRQ 33
Memory at f7400000 (64-bit, non-prefetchable) [size=4M]
Memory at d0000000 (64-bit, prefetchable) [size=256M]
I/O ports at f000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit
Capabilities: [d0] Power Management version 2
Capabilities: [a4] PCI Advanced Features
Kernel driver in use: i915
Kernel modules: i915

01:00.0 VGA compatible controller: NVIDIA Corporation GF119M [GeForce 610M] (rev a1) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. GF119M [GeForce 610M]
Flags: bus master, fast devsel, latency 0, IRQ 34
Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=128M]
Memory at e8000000 (64-bit, prefetchable) [size=32M]
I/O ports at e000 [size=128]
Expansion ROM at f7000000 [disabled] [size=512K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Endpoint, MSI 00
Capabilities: [b4] Vendor Specific Information: Len=14 <?>
Capabilities: [100] Virtual Channel
Capabilities: [128] Power Budgeting <?>
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
Kernel driver in use: nouveau
Kernel modules: nouveau

该笔记本电脑同时具有Intel Core GPU和NVIDIA GeForce 610M。但是,两张卡都有[VGA controller]字符串,通常指示正在使用哪个GPU。