Ubuntu系统每日崩溃(主板报Q-code 15)及休眠唤醒图形异常问题排查求助
Ubuntu系统每日崩溃(主板报Q-code 15)及休眠唤醒图形异常问题排查求助
问题描述
我这几个月刚组装并开始使用Ubuntu系统,最近被频繁的无预警硬重启搞疯了——几乎每天都会毫无征兆地重启,每次都得重新登录、打开所有程序。重启的时候主板会显示Q-code 15,查了下说是“内存初始化”相关的错误。
另外,如果电脑关机好几天,从休眠恢复后经常会出现图形问题:上次出差回来唤醒电脑,其中一个显示器每隔几秒就闪一次,大概折腾了一小时后,系统又像往常一样崩溃了。
我的硬件和系统信息:
- OS: Ubuntu 24.10(问题在24.04.1时就开始出现了)
- 主板: ASUS ROG STRIX X670E-E
- CPU: AMD Ryzen 9 7950X
- 显卡: AMD Radeon RX 7900 XT
- 内存: 2x G.SKILL Trident Z5 Neo(单条32GB)
- 硬盘: 2x Samsung SSD 970 Evo Plus(单条2TB)
想问问有没有人遇到过类似的已知问题?接下来我该怎么排查?朋友建议我重新插拔内存,但我想先听听更系统的建议...
我的排查建议
兄弟,你的情况我之前帮朋友处理过类似的AMD平台Ubuntu崩溃问题,给你梳理几个优先级从高到低的排查步骤,一步步来:
一、先啃Q-code 15指向的内存核心问题
Q-code 15直接关联内存初始化失败,这大概率是频繁崩溃的主因,先把这块钉死:
- 跑内存硬件检测
先别着急动手插拔,先跑Ubuntu自带的内存测试。重启电脑,在GRUB菜单里选「Memory test (memtest86+)」,让它至少跑完整1轮(能跑2-3轮更稳妥)。如果检测出任何错误,基本实锤是内存本身故障或者插槽兼容性问题。 - 重新插拔内存(带静电防护)
关机断电,拔掉电源线,按住开机键10秒放掉主板静电。然后把内存拔下来,用干净的橡皮擦擦金手指(别用手直接摸金手指,避免静电损坏),插回插槽时要对准卡扣,听到两边都咔哒响才算插紧。
另外可以试试单条内存单独使用3-4天,看还会不会崩溃——这样能排查是不是其中一条内存坏了,或者某一个内存插槽有问题。 - BIOS里调整内存参数
开机按Del/F2进BIOS,看看是不是开了EXPO超频(AMD平台的内存超频技术,你的Trident Z5 Neo支持这个)。很多时候,自动的EXPO预设参数和Ubuntu新内核的兼容性不太好,会触发内存初始化失败。
先把EXPO关掉,用JEDEC标准内存参数跑几天,如果崩溃消失,那就是EXPO的锅。之后可以尝试手动调低内存频率(比如从6000MHz降到5600MHz),或者放宽一点小参,别用默认的EXPO预设。
二、排查休眠唤醒的图形异常(可能和内存/驱动联动)
你的图形闪烁后触发崩溃,大概率和内存问题相关,也可能是AMD显卡驱动的兼容性bug:
- 先把系统和驱动更到最新
你已经用24.10了,先确保系统是完全更新的状态,打开终端跑这两个命令:
升级完重启,AMD的开源驱动是内核自带的,新内核往往会修复很多显卡和内存交互的bug,说不定就能解决闪烁问题。sudo apt update && sudo apt full-upgrade - 暂时禁用休眠,隔离问题
先把休眠功能关掉,看看只日常使用的情况下还会不会崩溃——这样能排除休眠唤醒时的内存泄漏或者驱动冲突。跑这个命令禁用休眠:
如果禁用后不再崩溃,那问题就锁定在休眠唤醒流程上,后续可以针对性调整驱动参数。sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target - 扒系统日志找崩溃线索
每次崩溃重启后,打开终端用journalctl查上一次启动的错误日志,重点找内存、显卡相关的报错:
看看有没有journalctl -b -1 -p errOut of memory(内存耗尽)、amdgpu相关的错误信息,这些能帮你精准定位到底是内存还是显卡的问题。
三、最后排查其他硬件可能性
如果上面两步都没解决,再考虑其他硬件:
- 检查电源供电
你的配置都是高端件,电源额定功率至少要850W以上的金牌认证。如果电源功率不够或者质量差,会导致随机的硬件供电不稳定,触发崩溃。可以检查电源的所有接口有没有插紧,要是有备用电源的话,换一个试试。 - 监控CPU和显卡温度
虽然Q-code 15不是温度问题,但过热也会导致系统不稳定。先装个温度监控工具:
然后跑sudo apt install lm-sensorssensors命令看实时温度,日常使用时CPU温度别超过85℃,显卡别超过90℃。如果温度过高,检查散热器是不是没装紧,硅脂有没有涂均匀。
备注:内容来源于stack exchange,提问作者Beau




