让 Linux 识别 AMD GPU,而不是 Intel GPU

让 Linux 识别 AMD GPU,而不是 Intel GPU

我正在尝试将 AMD Radeon R5 M435 GPU(笔记本 GPU)与 Fedora 32 一起使用。似乎无法正确检测到 GPU。

为了获得一个干净的环境,我刚刚重新安装了 Fedora。我使用命令更新了 PCI 数据库update-pciids。当我执行:

lspci | grep -E "VGA|3D|2D"

我得到输出:

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)

因此似乎 GPU 不存在。但是当我执行:

lspci -v

我得到输出:

[...]
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Jet PRO [Radeon R5 M230 / R7 M260DX / Radeon 520 Mobile] (rev c3)
  Subsystem: Dell Device 0844
  Flags: bus master, fast devsel, latency 0, IRQ 129
  Memory at c0000000 (64-bit, prefetchable) [size=256M]
  Memory at d0000000 (64-bit, non-prefetchable) [size=256K]
  I/O ports at e000 [size=256]
  Expansion ROM at d0040000 [disabled] [size=128K]
  Capabilities: [48] Vendor Specific Information: Len=08 <?>
  Capabilities: [50] Power Management version 3
  Capabilities: [58] Express Legacy Endpoint, MSI 00
  Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
  Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
  Capabilities: [150] Advanced Error Reporting
  Capabilities: [270] Secondary PCI Express
  Kernel driver in use: radeon
  Kernel modules: radeon, amdgpu
[...]

这告诉我们 GPU 存在。

我的问题是 Linux 内核是否支持这个 GPU,如果支持,我该如何让 Linux 检测到它,以便 GPU 出现在 的输出中lspci | grep -E "VGA|3D|2D"

关于驱动程序的安装,根据我的研究,Linux 默认安装了 AMDGPU 驱动程序,因此我不需要安装驱动程序。这样对吗?

答案1

Linux 检测到。你 grep 错了。(想想为什么lspci会显示设备,但lspci | grep实际上没有……)

在笔记本电脑上,仅有的具有“VGA 兼容控制器”的设备将具有物理视频输出,当仅存在最低限度的“VGA”驱动程序时,固件和所有内容将使用该设备。(只有主 GPU 将直接连接到输出 - 辅助 GPU 仅处理渲染命令,但必须通过主 GPU 传输最终图像。)

如果您希望特定应用程序使用辅助 GPU 进行 3D 图形处理,请在设置 DRI_PRIME 环境变量的情况下运行它,例如DRI_PRIME=1 vim

比较一下,例如:

  • glxinfo -B(显示英特尔 GPU 信息)
  • DRI_PRIME=1 glxinfo -B(显示 AMD GPU 信息)

(注意:这适用于 Mesa OpenGL。Vulkan 有不同的设备选择方法,尽管 Mesa 最近添加了一个 Vulkan 层,使其遵守 DRI_PRIME 或类似的东西。)

相关内容