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收集的与、、和字符串
相关的第三方信息。vendor
device
subsystem_vendor
subsystem_device
不过,如果您使用专有的 nvidia 驱动程序,您也可以在 找到第一方信息/proc/driver/nvidia/gpus/*/information
。
到目前为止,我还没有找到任何来自 nouveau、AMDGPU、甚至 radeon 的第一方信息。