银河麒麟系统显卡驱动安装后分辨率锁死在1024×768或1366×768,根本原因是edid缓存污染或xorg.conf中allownonedidmodes被设为false;需依次清除/var/lib/x11/edid/缓存、备份移除edid相关配置文件、将allownonedidmodes改为true,并通过xrandr临时验证及autostart脚本永久生效。

银河麒麟系统安装显卡驱动后分辨率被锁死在1024×768或1366×768等低分档,图形界面中“推荐”选项消失、下拉菜单仅剩几个低分辨率且无法启用高分模式,根本原因是EDID缓存固化错误或xorg.conf中强制限制了输出能力,必须从X服务器底层配置和硬件握手协议两个层面同步清理。
确认是否真被EDID锁死
按下Ctrl+Alt+T打开终端,执行xrandr --query;找到外接或内置显示器对应输出名(如eDP-1、HDMI-1),向下查看其支持的mode列表;若最高只显示1366x768、1024x768等远低于显示器原生分辨率的选项,且无带星号(*)的当前生效项,则基本确定是EDID缓存污染所致。
注意:此时图形界面里点“控制中心→显示→分辨率”全是灰色不可选——这不是UI bug,而是xrandr底层已无可用高分mode,GUI只是读取它。
清除EDID缓存与Xorg硬编码配置
第一步:备份并移除EDID相关配置文件
执行ls /etc/X11/xorg.conf.d/ /usr/share/X11/xorg.conf.d/ | grep -i edid;若发现/etc/X11/xorg.conf.d/10-monitor.conf或/usr/share/X11/xorg.conf.d/40-edid.conf等文件,立即执行:sudo mv /etc/X11/xorg.conf.d/10-monitor.conf /etc/X11/xorg.conf.d/10-monitor.conf.bak
第二步:清空二进制EDID缓存目录sudo rm -f /var/lib/x11/edid/*;这一步直接删除系统从显示器读取并缓存的硬件描述数据,不删它,重启后仍会按旧EDID重建分辨率列表。
第三步:检查并禁用AllowNonEdidModes硬限制
运行grep -r "AllowNonEdidModes" /etc/X11/xorg.conf.d/;若返回结果含Option "AllowNonEdidModes" "False",需编辑对应文件(如/etc/X11/xorg.conf.d/20-nvidia.conf),将"False"改为"True";【此项为关键开关,设为False时xrandr --newmode添加的任何分辨率都会被X服务器主动拒绝】
临时启用目标分辨率验证修复效果
方法一:直接启用已有高分mode(如果xrandr --query里其实有但没打星)
执行xrandr --output eDP-1 --mode 1920x1080(eDP-1替换成你设备名);若屏幕闪一下后正常显示,说明驱动已加载成功,只是EDID没刷新。
方法二:强制添加并启用自定义4K模式(适用于xrandr --query完全无高分选项)
先运行cvt 3840 2160 60,复制输出中Modeline后整行参数;再执行xrandr --newmode "3840x2160_60.00" 712.75 3840 4160 4576 5312 2160 2163 2168 2237 -hsync +vsync(参数严格按cvt输出填);接着绑定:xrandr --addmode eDP-1 "3840x2160_60.00";最后启用:xrandr --output eDP-1 --mode "3840x2160_60.00"。
这一步操作起来很简单,直接把上面四条命令复制粘贴执行就行;但要注意:若显示器实际只支持30Hz(常见于老旧HDMI线),硬设60Hz会触发保护性黑屏,此时需改用cvt 3840 2160 30重新生成参数。
让修复永久生效
① 将刚才验证成功的xrandr命令写成脚本
创建文件~/.screenlayout/fixed-res.sh,内容为:#!/bin/bashxrandr --output eDP-1 --mode 1920x1080(或你最终启用的那条命令)
保存后执行chmod +x ~/.screenlayout/fixed-res.sh。
② 注入GNOME自启动流程
新建~/.config/autostart/res-fix.desktop,填入:
[Desktop Entry]
Type=Application
Exec=/home/你的用户名/.screenlayout/fixed-res.sh
Hidden=false
NoDisplay=false
③ 重启lightdm使配置即刻加载sudo systemctl restart lightdm;无需重启整机,X服务重载后新脚本就会在下次登录时自动运行。











