有关Ubuntu在关盖休眠后可行的拯救方法

本人在使用联想小新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查看上次启动的错误日志,发现关键报错:

bash 复制代码
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

错误解读

  1. amdgpu: Secure display: Generic Failure :AMD显卡在电源状态切换(休眠\\rightarrow唤醒)时,PSR(Panel Self Refresh)功能恢复失败
  2. rtw89_8852ae:HW scan failed: Realtek 8852网卡在休眠后Wifi芯片状态异常

根本原因

  1. PSR兼容性问题:AMD显卡的PSR节能功能在小新air的eDP面板上实现不完善,休眠后恢复时出现时序错误导致GPU驱动崩溃
  2. ACPI实现缺陷:联想小新系列的ACPI固件对Linux支持不佳,ideapad_laptop驱动在电源管理事件中处理不当
  3. 内核版本老旧(可能存在):Ubuntu默认的内核缺乏对小新Air的电源管理补丁
  4. 网卡驱动问题:rtw89驱动在旧内核中对WoWLAN(无线唤醒)的支持不完善

解决方案

  1. 升级内核(核心解决)

    主线内核6.8+已修复AMD PSR和rtw89的电源管理问题,但不知为何本机需要升级到6.14+或更新的HWE内核

    bash 复制代码
    #方案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
  2. 修改GRUB启动参数

    编辑/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT中添加:

    bash 复制代码
    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

    bash 复制代码
    sudo update-grub
  3. 更新固件

    确保无线网卡固件为最新

    bash 复制代码
    #查看已安装的内核
    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

    避坑指南

    1. 不要使用Novean:如果使用的是双显卡版本,务必按安装proprietary NVIDIA驱动,不要禁用nouveau
    2. 慎用休眠:Linux笔记本休眠(Hibernate)依赖swap文件且对固件要求苛刻,建议改用睡眠(Suspend)或者关机
    3. 保留旧内核:升级后保留旧内核作为fallback,新内核启动失败时可在GRUB高级选项切回

    验证结果

    重启后执行:

    bash 复制代码
    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。