我在我的设置中添加了一个独立的 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
in/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,配备 32GB DDR5 G.SKILL 内存的 GIGABYTE AERO G 主板。我将显示器 (Alienware AW3420DW) 连接到 DisplayPort 电缆。
如果我查看上次挂起尝试的日志(日志),则挂起的所有日志都是:
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 日志,但没有什么有趣的。至少,没有明显的错误或警告。
在这一点上我几乎没有想法,所以我希望有人可以分享一些提示或指出我可以进一步调查的事情。
看来我设法解决了。
通过所有的测试、内核调整、从源代码构建内核以及数小时的二分法并没有导致任何解决方案,我认为在此期间可能已经进行了 BIOS 更新。确实有:技嘉为我的 Z690 AERO G 主板发布了“F6”版本,高于“F5”。
新的 BIOS 版本立即解决了这个问题,使挂起/恢复在当前 5.19 内核上正常工作!
不幸的是,由于 BIOS 代码是专有的,更新的发行说明很简短而且相当模糊。他们列出了对新 CPU 的新增支持和对 DDR5 的更好支持,以及“性能和稳定性更新”。与我的问题没有直接关系,但可以推测 BIOS 代码存在一些特殊问题,导致它无法正确解释睡眠/恢复信号(从我注意到的日志
i2c-designware-pci
显示从 5.12 开始,这可能会导致过程)。如果您遇到类似问题并且 BIOS 更新无法解决,请参阅此处以获取更多想法和故障排除:https ://gitlab.freedesktop.org/drm/amd/-/issues/1963