关于amdgpu驱动崩溃问题
Xinmudotmoe
玄学续报
又经过了一些测试,大概分析出了以下规律,并且目前可以相对稳定的工作(2小时以上的不停机操作)。
- 为显卡套上pciex4转pciex16或pciex1转pciex16,在x16口工作,不稳定
- 保留上述方式,将显卡移动到x8口,稳定
- 保留1中的方式,将显卡移动到x4口,稳定
- 保留2中的方式,将ax200经过pciex1转M.2EKey后插入x16口,不稳定
- 保留4的方式,将ax200移动到x4口,稳定
接线情况
- pciex8 - pciex4转pciex16 rx6400显卡
- pciex16 空
- pciex4 - pciex1转M.2EKey ax200无线网卡
- M.2 nvme硬盘
- SATA 均空
内核、BIOS、VBIOS版本都没变(因为……没有更新可用)。
so……是x16接口的问题吗
TF-zhong
3A6000 主板 XA61200 出现此问题在
gentoo: 内核版本 6.6.8 , 6.7.0-rc7 均有此问题
debian12 有此问题
loongnix 20.5 有此问题
使用浏览器时此问题触发概率极高
使用 qemu 时移动 qemu 窗口此问题触发概率极高
TF-zhong
请帮忙分析一下, 这到底是显卡有问题还是 驱动有问题 ,还是哪儿有问题
TF-zhong
继续使用, 发现 显卡诱骗器, 在 3A6000 上无法正常使用,
用 root # get-edid | edid-decode
无法返回检测的分辨率, 直接提示
1 potential busses found: 6
Bus 6 doesn't really have an EDID...
Couldn't find an accessible EDID on this computer.
开机日志里
[ 6.480591] EDID block 0 (tag 0x00) checksum is invalid, remainder is 125
[ 6.480595] [00] BAD 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
[ 6.480596] [00] BAD ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 6.480597] [00] BAD ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 6.480598] [00] BAD ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 6.480599] [00] BAD ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 6.480600] [00] BAD ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 6.480601] [00] BAD ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 6.480602] [00] BAD ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 6.480605] amdgpu 0000:07:00.0: [drm] *ERROR* EDID checksum invalid.
这个还有救么, 有什么办法能让 显卡获取到 诱骗器的 EDID ?
GSJY
TF-zhong
经过多番折磨, 最后也是无奈决定换块显卡, 这次尝试 最便宜的 二手拆机 R5 240 1G显存版, DisplayPort 输出口,
可以满足 3840x2160@60hz 显示, 这显卡估计也是堪堪能支撑这个分辨率, 但是也总比 忽然来一个 gpu reset 让人觉得更好
xry111
During an offline discussion some engineer said this is likely a hazard in HyperTransport (not sure the protocol itself or the Loongson implementation). The faster the GPU the more likelyhood to trigger the issue. IIRC I've seen this several times on a 3A4000 + 7A1000 + RX550 ("only" PCIe 2.0 x 8). There seems no well-proven way to work it around in firmware or OS.
For the Linux radeon driver a workaround is https://github.com/chenhuacai/linux/commit/a1e31fe7e00ad569d145b2ac09546a2dda04ba65 (the commit message also describes the issue), but I don't think it's acceptable to the upstream maintainers and I've not tested it at all. It's not applicable for the amdgpu driver too (unless someone can port it).
(Or perhaps it should/might actually be implemented as a PCI quirk against the 7A1000/2000 device ID?)
The long-term solution is replacing HT with Loongson Coherent Link for future 3A/3B/3C/3D/7A chips.
(Sorry for typing in English, I don't have an input method installed on this machine.)
TF-zhong
小洋葱
或者,咱有没有办法把amdgpu给blacklist掉,然后用纯软件渲染?很多arm开发板上跑桌面,我看都是llvmpipe,没有用到板载gpu。我之前试过把amdgpu这个module给blacklist掉,但xorg会起不来,提示找不到gpu或monitor。
EMCA
小洋葱 llvmpipe只是绘制图像,最后还是要用显卡显示出来,这种情况下建议试试fbdev或vesa
小洋葱
EMCA 我在arch上也安装了fbdev和vesa的包,但似乎没什么用,xorg和wayland还是起不来,不知道是不是还要做什么配置。
EMCA
小洋葱 使用vesa的话需要手写配置,像是这个例子
淡炒番茄
你的显示器接在AMDGPU上是不能禁止其驱动的,你可以尝试禁止其render.
https://docs.mesa3d.org/envvars.html
LIBGL_ALWAYS_SOFTWARE
MESA_LOADER_DRIVER_OVERRIDE
选择一个加到环境变量中。