xrandr在tty下无效,因其依赖x11而tty运行内核framebuffer;须修改grub中grub_cmdline_linux的video=参数(如video=efifb:1920x1080)并执行sudo update-grub生效。

命令行模式(TTY)分辨率不能靠 xrandr 调整,它压根不运行 X11,必须改内核启动参数。
为什么 xrandr 在命令行模式下完全无效
很多人在 TTY(Ctrl+Alt+F1~F6)里输 xrandr,得到 Can't open display 或直接报错——这不是权限或语法问题,而是根本没 X server。TTY 是纯 Linux 控制台(fbcon),由内核 framebuffer 驱动控制,xrandr 属于用户态 X11 工具,两者不在同一层。
- 图形界面(GNOME/KDE)用的是 Xorg 或 Wayland,
xrandr有效 - TTY(文本终端)用的是 kernel framebuffer,靠
vga=或video=参数驱动 -
GRUB_CMDLINE_LINUX_DEFAULT里的参数只影响 kernel 启动时的 framebuffer 初始化
vga= 参数已废弃,改用 video= 指定分辨率
Ubuntu 20.04+ 默认使用 UEFI 启动,vga=(如 vga=0x317)在大多数现代显卡上失效,且不支持宽屏、高分屏。必须改用 video= 格式,例如 video=HDMI-1:1920x1080@60,但注意:这仅对部分 Intel/AMD 核显生效;NVIDIA 闭源驱动通常忽略该参数。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 安全写法是通用 framebuffer 分辨率:用
video=vesafb:1920x1080-32(适用于 legacy BIOS + vesafb) - UEFI 系统推荐:用
video=efifb:1920x1080(依赖固件暴露的 framebuffer) - 最兼容方案:不指定具体分辨率,让 kernel 自动选最佳,加
fbcon=map:1改字体缩放更实用 - 验证是否生效:进 TTY 后运行
sudo fbset,看geometry行输出
修改 GRUB 配置并更新,否则重启无效
改完配置不 sudo update-grub,等于白改。而且得改对文件:/etc/default/grub 中的 GRUB_CMDLINE_LINUX(不是 GRUB_CMDLINE_LINUX_DEFAULT),后者只传给 init 进程,不进 framebuffer 初始化流程。
- 编辑配置:
sudo nano /etc/default/grub - 找到
GRUB_CMDLINE_LINUX="",改成类似:GRUB_CMDLINE_LINUX="video=efifb:1920x1080 fbcon=map:1" - 执行
sudo update-grub(不是grub-mkconfig,后者不保证写入正确位置) - 重启后按 Ctrl+Alt+F2 进 TTY,用
fbset确认分辨率是否变更 - 如果黑屏或花屏:说明显卡不支持该
video=值,删掉参数回退,再试video=vesafb:mtrr:3降低要求
真正难的不是加参数,而是显卡 firmware 是否导出可用 framebuffer —— Intel 核显通常 OK,NVIDIA 独显在 TTY 下基本锁死在 640x480 或 1024x768,这不是配置错误,是硬件限制。










