解决AMD显卡双驱动冲突导致系统卡死
1. 制作启动启动盘
1.通过ventoy制作u盘做启动盘,然后拷贝对应的iso镜像到到对应的u盘上。
2.修改电脑默认启动介质(f2,f8,f12),我的电脑是按回车键盘,然后按F12选择对应的启动介质启动。
2.安装过程中碰到的问题
2.1 问题1
问题描述:进入安装界面后系统出现卡死状态,出现鼠标但是无法移动。
排查步骤:
1.默认安装内核4.19的麒麟系统正常工作,实际进入系统后执行lsmod 可以看到实际加载了amdgpu和radeon显卡驱动,可以通过手动执行rmmod radeon移除radeon驱动,但是通过rmmod amdgpu提示正在使用,由此可以得出显卡驱动使用的是amdgpu,同时使用的核外驱动是xserver-xorg-video-amdgpu,同时查看显卡型号通过lspci可以看到到amd显卡型号amd HD8570。
2.通过在iso系统live系统安装的时候加入rd.debug和rd.break让系统进入字符调试界面,然后执行lsmod看到对应的radeon和amdgpu都被加载了实际执行rmmod radeon提示正在使用,根据显卡型号和需要加载的对应显卡信息排查到应该使用的是amdgpu显卡驱动。通过在live系统的grub中增加radeon.si_support=0 amdpug.si_support=1重新启动能够正常进入安装界面。
AMD HD8570 属于 GCN 1st(SI, Southern Islands)架构,该显卡同时被 radeon 和 amdgpu 两个驱动支持,导致安装环境中双驱动同时加载、互相抢占设备,引发 DRM 子系统死锁,最终表现为安装界面卡死、鼠标有光标但无法移动。
radeon.si_support=0 amdgpu.si_support=1
强制指定 仅 amdgpu 驱动接管 SI 架构显卡,禁止 radeon 驱动加载,消除驱动冲突,解决卡死问题。
问题分析的判断依据和相关信息:
1) 硬件架构定位
显卡型号:AMD HD8570
架构归属:Southern Islands (SI) GCN 1 代
驱动支持情况:
老驱动 radeon:原生支持 SI 架构
新驱动 amdgpu:支持 SI 架构,但需显式开启参数(si_support=1)
这种 “双驱动均支持同一硬件” 的场景,是导致冲突的前提。
2)安装界面卡死、鼠标不动的核心原因
安装环境(Live 系统 / 安装界面)为精简启动系统,存在以下特点,最终引发死锁:
启动时会加载所有适配的硬件驱动,未做驱动优先级控制、未黑名单多余驱动;
radeon 和 amdgpu 同时探测到 AMD HD8570 显卡,同时抢占同一 PCI 设备;
双驱动竞争导致 DRM(Direct Rendering Manager)子系统冲突、中断 / 显存地址抢占;
Xorg 图形服务被卡死,而鼠标 / 键盘等输入设备依赖图形栈运行,最终表现为「有鼠标光标但无法移动、系统整体卡死」。
3)为什么系统安装完成后 “看似正常”?
安装完成后,系统加载完整的驱动策略和 Xorg 配置,与精简的安装环境有本质区别:
Xorg 会自动识别硬件,选择适配性更优的 amdgpu 驱动(与排查结果一致);
虽然 radeon 驱动仍会加载,但不会与 Xorg 抢占显卡设备,仅处于 “闲置加载” 状态;
无驱动竞争,因此不会出现死锁,系统可正常运行。
4)内核参数的具体作用(关键解析)
表格
| 内核参数 | 作用说明 |
|---|---|
| radeon.si_support=0 | 禁止 radeon 驱动对 Southern Islands(SI)架构显卡的支持,让 radeon 不探测、不绑定 AMD HD8570 |
| amdgpu.si_support=1 | 强制启用 amdgpu 驱动对 SI 架构显卡的支持,确保 amdgpu 独占显卡设备 |
核心逻辑:单驱动独占硬件 → 消除竞争 → 避免 DRM 死锁 → 安装界面正常运行。
5)为什么 rmmod 无法删除驱动?
在安装环境中执行 rmmod radeon 提示 “模块正在使用”,原因如下:
启动时 radeon 先绑定显卡设备,占用 DRM 资源;
amdgpu 同时尝试绑定同一设备,形成「互相引用」的状态;
内核为避免硬件资源紊乱,禁止卸载正在占用设备的驱动模块;
该现象进一步验证了「双驱动同时加载、互相抢占」是问题根源。
2.2 问题2
问题描述:进入安装系统界面后发现系统的安装源不可使用。
排查步骤:
1.默认的麒麟服务器系统使用的是Anaconda安装器,实际出现安装源未识别可以通过在grub中增加inst.repo=file:///run/install/repo来进行相关的修复工作。
2.更新ventoy的版本有可以修复该问题。
根因分析:
1.Anaconda 安装器自动扫描安装源机制不稳定,在部分启动环境下无法自动定位到 ISO 内的 repo 路径。
2.旧版 Ventoy 与麒麟安装环境存在兼容性问题,导致安装介质挂载后,安装器识别不到有效安装源。
2.3 其他
initrd调试技巧:系统在initramfs中卡住,比如是因为initramfs在加载根文件系统的时候失败,实际会有一个超时时间和超时次数,rd.timeout 和 rd.retry。正常来说失败的话会等待超时时间结束然后进入initrd的shell状态,你可以通过在grub中设置rd.timeout=30 rd.retry=1来设置超时时间为30秒钟。另外关于initrd的其他参数可以找一个正常的系统进入然后执行"man dracut.cmdline"
更多推荐


所有评论(0)