问题现象

终端一直跳出报错信息[13310.209292] amdgpu 0000:03:00.0: [drm:amdgpu_ring_test_helper [amdgpu]] ERROR ring comp_1.0.1 test failed (-110)

原因分析

  • 自检超时:内核模块在启动时会对多个“ring”引擎(如 comp_1.0.1、comp_1.0.3 等)依次发出测试命令,等待显卡响应;当响应耗时超过内核预设阈值(-110 表示 ETIMEDOUT)时,便报出此错误并重复尝试,导致日志持续刷屏。

  • 驱动与硬件适配:Debian 12 默认 6.1 内核对较新 AMD Polaris 架构(如 RX 560)支持尚不完善,社区报告 6.1 内核在 resume 或启动时容易触发 ring 测试失败。forums.gentoo.org

  • 运行时电源管理(runpm):amdgpu 模块开启 runpm 后,会在设备工作空闲时切换低功耗状态;在一些硬件上此过程会导致引擎响应延迟或重置,从而触发测试失败。

解决方案

1. 禁用运行时电源管理(临时)

  1. 编辑 Grub 配置

    bash

    复制编辑

    sudo nano /etc/default/grub

  2. GRUB_CMDLINE_LINUX_DEFAULT 中追加

    ini

    复制编辑

    amdgpu.runpm=0

    示例:

    ini

    复制编辑

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.runpm=0"

  3. 更新 Grub 并重启

    bash

    复制编辑

    sudo update-grub sudo reboot

  4. 验证
    重启后执行 dmesg | grep amdgpu_ring_test_helper,若不再出现 *ERROR* ring comp_1.0.1 test failed (-110),则说明已生效。

注意:此方法只是绕过了电源管理导致的超时,不会真正修复内核对硬件的兼容性问题。

2. 升级内核与固件(根本)

要彻底消除 ring 自检失败,应使用包含修复补丁的更高版本内核(6.2 及以上)并更新 amdgpu 固件。

1. 启用 Debian Backports

编辑 /etc/apt/sources.list,添加 (以 Bookworm backports 为例):

ini

复制编辑

deb http://deb.debian.org/debian bookworm-backports main contrib non-free

更新软件源:

bash

复制编辑

sudo apt update

2. 安装新版内核

bash

复制编辑

sudo apt -t bookworm-backports install linux-image-amd64

此命令会安装最新的 6.12+ 系列内核,并在后续的 backports 更新中自动升级。community.frame.work

3. 更新 amdgpu 固件

bash

复制编辑

sudo apt -t bookworm-backports install firmware-amd-graphics

或者手动从 Linux Firmware Git 拉取最新 amdgpu/ 目录并复制到 /lib/firmware/amdgpu/ 下。community.frame.work

4. 重启并验证

bash

复制编辑

sudo reboot

重启后,再次检查 dmesg 日志,确认不再出现 ring 超时错误