本人在使用联想小新15(ubuntu22.04)时遇到了当关盖挂起后再开盖后不久紫屏的情况,我使用更换内核的方法来解决了这样的问题
硬件环境
- 机型:lenovo xiaoxin air 15alc 2021
- cpu: amd ryzen(集成显卡)
- 显卡: amd radeon graphics(amdgpu 驱动)
- 网卡: realtek rtw89_8852ae(wifi 6)
- 系统: ubuntu 24.04/win 10(双系统共存)
问题现象
系统从休眠(hibernate)状态被唤醒后,正常使用一段时间(几分钟到十几分钟)突然kernel panic,随后只能强制关机重启。
关键特征
- 不是立即崩溃而是唤醒后使用一段时间之后才崩溃
- 强制重启后系统日志显示正常,无有效错误记录(崩溃时来不及写入)
日志分析
通过journalctl -b -1 -p 3查看上次启动的错误日志,发现关键报错:
kernel: amdgpu 0000:03:00.0: amdgpu: secure display: generic failure. kernel: amdgpu 0000:03:00.0: amdgpu: securedisplay: query securedisplay ta failed. ret 0x0 kernel: rtw89_8852ae 0000:01:00.0: update probe request failed kernel: rtw89_8852ae 0000:01:00.0: hw scan failed with status: -110
错误解读
amdgpu: secure display: generic failure:amd显卡在电源状态切换(休眠$\rightarrow$唤醒)时,psr(panel self refresh)功能恢复失败rtw89_8852ae:hw scan failed: realtek 8852网卡在休眠后wifi芯片状态异常
根本原因
- psr兼容性问题:amd显卡的psr节能功能在小新air的edp面板上实现不完善,休眠后恢复时出现时序错误导致gpu驱动崩溃
- acpi实现缺陷:联想小新系列的acpi固件对linux支持不佳,
ideapad_laptop驱动在电源管理事件中处理不当 - 内核版本老旧(可能存在):ubuntu默认的内核缺乏对小新air的电源管理补丁
- 网卡驱动问题:rtw89驱动在旧内核中对wowlan(无线唤醒)的支持不完善
解决方案
升级内核(核心解决)
主线内核6.8+已修复amd psr和rtw89的电源管理问题,但不知为何本机需要升级到6.14+或更新的hwe内核
#方案a:安装ubuntu hwe内核(推荐,带官方维护) sudo apt install linux-generic-hwe-24.04 # 方案 b:安装主线内核 6.14(我实际采用的方案) # 从 kernel.ubuntu.com 下载: # linux-headers-6.14.0-xxx-generic_amd64.deb # linux-image-6.14.0-xxx-generic_amd64.deb # linux-modules-6.14.0-xxx-generic_amd64.deb sudo dpkg -i *.deb
修改grub启动参数
编辑/etc/default/grub,在grub_cmdline_linux_default中添加:grub_cmdline_linux_default="quiet splash amdgpu.dcdebugmask=0x10 modprobe.balcklist=ideapad_laptop"
参数说明
amdgpu.dcdebugmask=0x10:禁用psr(panel self refresh),这是紫屏的直接元凶modprobe.blacklist=ideapad_laptop:禁用联想的wmi热键/电源管理驱动,避免acpi冲突
更新grub
sudo update-grub
更新固件
确保无线网卡固件为最新
#查看已安装的内核 sudo grep menuentry /boot/grub/grub.cfg | grep 6.14 # 设置为默认启动(根据实际版本号调整) sudo grub-set-default "advanced options for ubuntu>ubuntu, with linux 6.14.0-37-generic" sudo update-grub
避坑指南
不要使用novean:如果使用的是双显卡版本,务必按安装proprietary nvidia驱动,不要禁用nouveau
慎用休眠:linux笔记本休眠(hibernate)依赖swap文件且对固件要求苛刻,建议改用睡眠(suspend)或者关机
保留旧内核:升级后保留旧内核作为fallback,新内核启动失败时可在grub高级选项切回
验证结果
重启后执行:
uname -r #输出版本号:6.14.0-37-generic systemctl suspend #测试睡眠唤醒
总结
小新air 15 2021这类性价比轻薄本在linux下的问题具有代表性:
- 硬件新固件旧:通常acpi表只针对windows调试
- realtek网卡:rtw89在6.2内核前几乎无法稳定用于休眠场景,建议intel网卡机型
- amd核显:相比nvidia省心,但是psr问题困扰2020-2021的多款机型
如果追求开箱即用dlinux体验建议考虑dell xps、thinkpad t/x系列或者framework。
到此这篇关于有关ubuntu在关盖休眠后可行的拯救方法的文章就介绍到这了,更多相关ubuntu关盖休眠拯救方法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论