我正在尝试将 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 或类似的东西。)