我已在我的设置中添加了独立 GPU (AMD RX 6900XT)。效果很好,除了暂停/恢复不再工作。之前,我在 Intel iGPU 上运行并且运行良好,因此 GPU 肯定在工作中出现了问题。
lspci -k
显示:
01:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch (rev c0)
Kernel driver in use: pcieport
02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
Kernel driver in use: pcieport
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] (rev c0)
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Radeon RX 6900 XT
Kernel driver in use: amdgpu
Kernel modules: amdgpu
03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 HDMI Audio [Radeon RX 6800/6800 XT / 6900 XT]
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 HDMI Audio [Radeon RX 6800/6800 XT / 6900 XT]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
03:00.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 73a6
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device 73a6
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
03:00.3 Serial bus controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 USB
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device 0408
Kernel driver in use: i2c-designware-pci
lsmod | grep -ie 'amd'
显示:
amdgpu 8601600 18
drm_ttm_helper 16384 1 amdgpu
ttm 86016 3 amdgpu,drm_ttm_helper,i915
gpu_sched 53248 1 amdgpu
xrandr --listproviders
显示:
Providers: number : 2
Provider 0: id: 0x58 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 4 associated providers: 1 name:AMD Radeon RX 6900 XT @ pci:0000:03:00.0
Provider 1: id: 0x6f7 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 3 associated providers: 1 name:modesetting
我做过的事情:
- 创建了一个 Xorg.conf
X -configure
- 添加
amdgpu
到内核模块(在mkinitcpio.conf
) - 尝试了各种 BIOS 设置,例如启用 ASPM、禁用 iGPU
- 安装的
xf86-video-amdgpu
包(除了明显的meta
包和Vulkan包) - 列入黑名单的模块 i915(
blacklist.conf
中/etc/modprobe.d
),以防 iGPU 仍受影响 - 列入黑名单
ucsi_ccg
(显示错误) - 安装的
acpid
包(日志显示一些警告) - 尝试过
amdgpu.dc=0
、、、、、、、内核参数amdgpu.reset_method=2
amdgpu.runpm=0
nomodeset
pcie_aspm=force
acpi_osi=Linux
acpi_osi=Windows
- 将内核从 5.17.1 降级到 5.16.6、5.16.3、5.15.13
- 尝试了实验
mesa-git
包(和相关包) - 重新安装梅萨
- 重新安装
linux-headers
- 尝试过的解决方案https://gitlab.freedesktop.org/drm/amd/-/issues/1797,这似乎是一个类似的问题
我正在使用带有 GNOME/Xorg 的 Arch Linux (5.17.1)。硬件规格:Intel 第 12 代 12700,采用 GIGABYTE AERO G 主板,配备 32GB DDR5 G.SKILL 内存。我用 DisplayPort 电缆连接了显示器 (Alienware AW3420DW)。
如果我查看上次挂起尝试的日志(日志),它记录的所有挂起信息是:
apr 02 11:43:43 arch NetworkManager[764]: <info> [1648892623.2585] manager: sleep: sleep requested (sleeping: no enabled: yes)
apr 02 11:43:43 arch NetworkManager[764]: <info> [1648892623.2589] device (wlo1): state change: unavailable -> unmanaged (reason 'sleeping', sys-iface-state: 'managed')
apr 02 11:43:43 arch NetworkManager[764]: <info> [1648892623.2602] device (wlo1): set-hw-addr: reset MAC address to F0:9E:4A:8A:9B:02 (unmanage)
apr 02 11:43:43 arch NetworkManager[764]: <info> [1648892623.2623] manager: NetworkManager state is now ASLEEP
apr 02 11:43:43 arch gnome-shell[1091]: Timelines with detached actors are not supported
apr 02 11:43:47 arch systemd[1]: Reached target Sleep.
apr 02 11:43:47 arch systemd[1]: Starting System Suspend...
系统似乎正常挂起。当我按下某个键时,系统会重新打开(电源 LED 亮起,风扇旋转),但屏幕保持黑色。有趣的是,没有任何恢复尝试的日志。我已经处理过另一台计算机上 NVIDIA 卡的挂起/恢复问题,但总是记录一些有关正在启动的恢复的信息(然后通常由于模式设置问题而无法找到 GPU)。
我还查看了dmesg
Xorg 日志,但没有什么有趣的。至少,没有明显的错误或警告。
目前我几乎没有想法,所以我希望有人可以分享一些提示或指出我可以进一步研究的东西。
答案1
看来我设法解决了它。
经过所有的测试、内核调整、从源代码构建内核以及许多小时的平分没有得出任何解决方案,我认为在此期间可能有 BIOS 更新。确实有:技嘉为我的 Z690 AERO G 主板发布了“F6”版本,高于“F5”。
新的BIOS版本立即解决了这个问题,使得在当前5.19内核上挂起/恢复工作没有错误!
不幸的是,由于 BIOS 代码是专有的,更新的发行说明非常简短且相当模糊。他们列出了对新 CPU 的增加支持和对 DDR5 的更好支持,以及“性能和稳定性更新”。与我的问题没有直接关系,但可以推测 BIOS 代码存在一些特定问题,导致它无法正确解释睡眠/恢复信号(从我注意到的日志中i2c-designware-pci
显示,从 5.12 开始,这可能会导致 BIOS 代码出现问题)过程)。
如果您遇到类似的问题并且 BIOS 更新无法解决该问题,请参阅此处以获取更多想法和故障排除:https://gitlab.freedesktop.org/drm/amd/-/issues/1963