如何检查Linux上安装了哪个GPU
是否需要识别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。