如何获取供应商给定的视频卡名称?

如何获取供应商给定的视频卡名称?

lspci给我以下信息:

$ lspci|grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GF104 [GeForce GTX 460] (rev a1)

这都是正确的,但这是 GPU 的通用名称。但司机经理 — KDE 控制模块 — 给了我更多有趣的信息:首先是安装驱动程序的所有选项

NVIDIA Corporation N460GTX Cyclone 1GD5/OC

这正是供应商 (MSI) 为其指定的名称。

如何在不使用 KDE 实用程序的情况下找到此类名称?我更喜欢基于控制台的解决方案。

换句话说,KCM 这个名字是从哪里来的呢?

答案1

您可以使用udevadm来获取此信息。例如在我的系统上lspci给我:

# lspci|grep VGA  
01:00.0 VGA compatible controller: NVIDIA Corporation GK106 [GeForce GTX 650 Ti Boost] (rev a1)

相反,查询 udev 我得到:

# udevadm info -q property -p /sys/bus/pci/devices/0000:01:00.0 
DEVPATH=/devices/pci0000:00/0000:00:02.0/0000:01:00.0
DRIVER=nvidia
ID_MODEL_FROM_DATABASE=GK106 [GeForce GTX 650 Ti Boost] (GeForce GTX 650 Ti Boost TwinFrozr II OC)
ID_PCI_CLASS_FROM_DATABASE=Display controller
ID_PCI_INTERFACE_FROM_DATABASE=VGA controller
ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible controller
ID_VENDOR_FROM_DATABASE=NVIDIA Corporation
MODALIAS=pci:v000010DEd000011C2sv00001462sd00002874bc03sc00i00
PCI_CLASS=30000
PCI_ID=10DE:11C2
PCI_SLOT_NAME=0000:01:00.0
PCI_SUBSYS_ID=1462:2874
SUBSYSTEM=pci
USEC_INITIALIZED=22791556

给出ID_MODEL_FROM_DATABASE了该卡的更详细描述。

至于如何知道参数使用的值-p,请使用输出的第一部分lspci。例如,如果lspci显示12:34.5,您将使用/sys/bus/pci/devices/0000:12:34.5

答案2

我一直在寻找类似的东西(获取卡的 OEM/供应商的名称,而不仅仅是“NVIDIA”)。结果这被存储为转包商(有时是子供应商或“子供应商”)。

要得到供应商从 cli,必须将-m参数传递给lspci

lspci -v -m

要仅过滤显卡,请运行:

lspci -v -m | grep VGA -A 7 | grep SVendor

相似地,设备(SVendor 之后的行)可能会给出您正在寻找的友好名称(抱歉我无法确认,似乎 PNY 使用无聊/通用名称)

答案3

如果您想了解此信息的真正来源(从哪里lspci获取udevadm此信息),那么 就不用再犹豫了/usr/share/hwdata/pci.ids。这是一个文本文件,包含从 sysfs收集的与、、和字符串
相关的第三方信息。vendordevicesubsystem_vendorsubsystem_device

不过,如果您使用专有的 nvidia 驱动程序,您也可以在 找到第一方信息/proc/driver/nvidia/gpus/*/information

到目前为止,我还没有找到任何来自 nouveau、AMDGPU、甚至 radeon 的第一方信息。

相关内容