xrandr命令可查设备名和已有分辨率,运行后找含connected的行(如HDMI-1)即设备名,其下所列如1920x1080等为当前支持模式;虚拟机中常见Virtual1或VGA-1,若仅显示1024x768说明EDID未读取需手动添加。

查当前设备名和已有分辨率用 xrandr
不先搞清设备名和现有支持模式,后面所有操作都可能打空。打开终端运行:xrandr
输出里找带 connected 的行,比如:HDMI-1 connected primary 1920x1080+0+0——这里的 HDMI-1 就是设备名;再往下看,它下面列出的那些 1920x1080、1280x720 等就是当前 X Server 已知的支持模式。
常见坑:
• 虚拟机里常显示 Virtual1 或 VGA-1,不是错,是虚拟显卡命名习惯
• 如果只看到 1024x768 这种低分,说明 EDID 没读到或被忽略,得手动加
• current 后面的分辨率不一定等于你想要的,只是当前生效值
添加缺失分辨率用 cvt + xrandr --newmode
系统没提供你要的分辨率(比如想设 2560x1440 但列表里没有),就得自己生成时序参数再注入。分两步:
- 先用
cvt计算标准时序:cvt 2560 1440 60(最后数字是刷新率,常见 60 或 50) - 复制输出里的
Modeline行,去掉开头Modeline三个字,套进xrandr --newmode:xrandr --newmode "2560x1440_60.00" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync - 再把新模式挂到设备上:
xrandr --addmode HDMI-1 "2560x1440_60.00" - 最后启用:
xrandr --output HDMI-1 --mode "2560x1440_60.00"
注意:
• cvt 输出的字符串必须一字不差粘贴,空格、符号都不能错
• 模式名(引号里)要和 --addmode、--mode 里完全一致
• 刷新率过高可能导致黑屏,建议从 60Hz 开始试
让自定义分辨率开机自动生效
命令行临时设置重启就丢,真要用得固化。最可靠的方式是写进用户级启动脚本:~/.xprofile(X11 环境下)或 ~/.profile(Wayland 下部分桌面需配合 autostart)。
以 X11 为例,在 ~/.xprofile 里写:
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
#!/bin/sh xrandr --newmode "2560x1440_60.00" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync xrandr --addmode HDMI-1 "2560x1440_60.00" xrandr --output HDMI-1 --mode "2560x1440_60.00"
然后确保可执行:chmod +x ~/.xprofile。
关键点:
• 不要用 /etc/X11/xorg.conf,现代 Ubuntu 大多绕过它,改了也无效
• GNOME 的“开机启动应用”里加 shell 脚本容易因会话延迟失败,不如 .xprofile 直接
• 树莓派 Ubuntu 必须优先改 /boot/config.txt,xrandr 在 GPU 初始化之后才起作用,顺序错了就白配
树莓派 Ubuntu 必须改 /boot/config.txt
在树莓派上,xrandr 是“事后补救”,真正起效的是 GPU 启动时读取的 /boot/config.txt。图形界面里调分辨率根本不起作用,是因为 GPU 已经按 config.txt 固化输出了。
常用配置项:
-
hdmi_group=2(对应 CEA,电视类)或hdmi_group=1(对应 DMT,显示器类) -
hdmi_mode=87(自定义模式,需配合hdmi_cvt) - 更直接的方式:
hdmi_cvt=2560 1440 60 6 0 0 0(宽、高、刷新率、宽高比 6=16:9)、hdmi_mode=87
改完必须重启:sudo reboot。不重启,任何改动都不生效。
容易漏掉的细节:
• /boot 分区在 SD 卡上,如果用 USB 启动,路径仍是 /boot,不是 /boot/firmware
• hdmi_safe=1 会覆盖所有自定义,调试时记得关掉
• 某些老旧显示器需要加 hdmi_ignore_edid=0xa5000080 强制跳过错误 EDID

















