联想Legion Pro 5(16IRX8)Ubuntu 23.10系统睡眠唤醒后NVIDIA显卡外接显示器分辨率异常求助
联想Legion Pro 5(16IRX8)Ubuntu 23.10系统睡眠唤醒后NVIDIA显卡外接显示器分辨率异常求助
嘿,我之前碰到过类似NVIDIA显卡在Linux下睡眠唤醒后显示配置混乱的问题,结合你的设备情况,给你几个实用的排查和解决方向:
1. 调整NVIDIA驱动的显存保留策略
NVIDIA驱动默认的电源管理可能会在睡眠时释放显存,导致唤醒后无法正确识别显示器的高分辨率参数。你可以通过GRUB参数强制保留显存分配:
- 编辑GRUB配置文件:
sudo nano /etc/default/grub - 找到
GRUB_CMDLINE_LINUX_DEFAULT这一行,添加两个参数,修改后类似:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia.NVreg_PreserveVideoMemoryAllocations=1 nvidia.NVreg_TemporaryFilePath=/var/tmp" - 保存退出后,执行
sudo update-grub更新配置,然后重启系统。这个设置能让显卡在睡眠状态下保留显存里的显示配置信息,减少唤醒后的异常。
2. 写个唤醒自动修复的脚本
既然注销登录能恢复,说明是桌面会话的显示配置没重置。可以写个简单脚本,让系统唤醒时自动帮你切回正确的分辨率:
- 先获取你的显示器名称:执行
xrandr | grep connected,找到三星CRG90对应的接口名(比如DP-0或者HDMI-1) - 创建修复脚本:
nano ~/fix_display.sh,写入以下内容(替换<你的显示器接口>为实际名称):#!/bin/bash xrandr --output <你的显示器接口> --mode 5120x1440 --rate 120 - 给脚本加执行权限:
chmod +x ~/fix_display.sh - 设置自动执行:可以通过GNOME的「启动应用程序」添加这个脚本,或者用
systemd创建一个唤醒触发的服务,这样每次唤醒后就自动修复了。
3. 尝试切换NVIDIA驱动版本
你当前用的是535.154.05版本,有时候特定驱动版本会和特定硬件组合有睡眠唤醒的兼容性问题:
- 打开Ubuntu的「软件和更新」→「附加驱动」,看看有没有更新的稳定版驱动(比如545系列),切换后重启试试
- 如果最新版不行,也可以回退到稍旧的稳定版(比如530系列),有些旧版本反而在特定设备上兼容性更好
4. 强制加载显示器的EDID数据
睡眠唤醒后系统可能没能正确读取显示器的EDID(显示能力描述数据),导致分辨率选项丢失。可以备份EDID并强制系统加载:
- 安装读取EDID的工具:
sudo apt install read-edid - 读取并保存显示器的EDID:
get-edid | parse-edid > ~/samsung_crg90.edid - 创建EDID存放目录并复制文件:
sudo mkdir -p /usr/lib/firmware/edid/ sudo cp ~/samsung_crg90.edid /usr/lib/firmware/edid/ - 再次编辑GRUB配置,添加强制加载EDID的参数:在
GRUB_CMDLINE_LINUX_DEFAULT里加上drm.edid_firmware=<你的显示器接口>:edid/samsung_crg90.edid(比如接口是DP-0就写drm.edid_firmware=DP-0:edid/samsung_crg90.edid) - 执行
sudo update-grub后重启系统
这些方法应该能覆盖大部分可能的问题,你可以先从调整GRUB参数和脚本修复开始试,这两个操作相对简单见效快。
备注:内容来源于stack exchange,提问作者angelcervera
相关产品推荐
相关产品推荐

