我真的是 bug 体质啊,上一个笔记本 Dell G16 因为 Intel AX201 的无线网卡省电模式导致 pacman 升级系统的时候没速度, 最后通过 禁用省电模式 成功解决了笔记本的Wi-Fi速度。
去年买了一个 ThinkPad P14s 专门挑了一款 AMD 集成显卡的机器,心想没有 N 卡驱动,平常用 Linux 该稳定吧?
没想到 bug 体制,哪里都可以遇到 bug,不管什么硬件。
这不,最近桌面环境一天随机死机很多次,我在想是不是我最近折腾了啥? 把系统折腾坏了?
下班的时候重装了一下 EndeavourOS,还是死机,但是 TTY 可以用,这个时候我就警觉了,估计是最新内核的问题。
用命令 dmesg 看了一下日志
[ 4.392040] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 1, DC PSR ver 0, sink PSR ver 3 DPCD caps 0x7b su_y_granularity 4
[ 4.392173] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
[ 4.392327] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
[ 4.392453] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
[ 4.392587] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
[ 4.392641] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
[ 4.392703] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
[ 4.392774] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
[ 4.392842] amdgpu 0000:c4:00.0: amdgpu: [drm] PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0 su_y_granularity 0
网上查了一下,系统卡死很可能由 AMD Radeon 890M 的 Panel Self Refresh (PSR) 功能引起。这是一个已知 bug,尤其在 Ryzen AI 9 HX PRO 370 (Strix Point) 平台 + amdgpu 驱动 + Plasma 桌面组合下
修复方式如下:
- sudo nano /etc/kernel/cmdline , 末尾加一个 amdgpu.dcdebugmask=0x10 参数
- sudo reinstall-kernels , 重新生成内核 entry 和 initrd , 这会自动更新 /efi/loader/entries/ 下的所有 .conf 文件,把新参数应用到当前和未来内核
- sudo reboot , 重启系统
验证内核参数, 通过命令 cat /proc/cmdline 看看后面有没有 amdgpu.dcdebugmask=0x10 参数
也可以通过命令 cat /sys/module/amdgpu/parameters/dcdebugmask 来查看 amdgpu 的参数,如果输出 16 就说明禁用 PSR
最后用 dmesg | grep -i psr 命令查看,应该不会看到内核中有任何 PSR 的日志了
这样折腾了一下, 笔记本现在非常稳定了, 再也没有遇到过桌面卡死的问题了