Ubuntu-2404-强制1080P现场操作记录
Ubuntu 24.04 强制 1080P 输出简明操作手册目标让 Ubuntu 桌面输出1920x1080。适用机器可能接主板 AST2400 VGA、独立显卡 VGA、独立显卡 HDMI。现场必须先判断实际接线。0. 先看结论实际接线常见 connectorGRUB 强制参数主板 AST2400 VGAVGA-1videoVGA-1:1920x1080M60e独立显卡 VGAVGA-2videoVGA-2:1920x1080M60e独立显卡 HDMIGRUB 常见HDMI-A-1GNOME 常见HDMI-1videoHDMI-A-1:1920x1080M60e注意GRUB 使用/sys/class/drm里看到的 connector 名。GNOME 显示接口里的 HDMI 可能叫HDMI-1不是HDMI-A-1。换接线或换 connector 前先备份并移除旧的~/.config/monitors.xml否则可能出现只有光标、没有桌面的情况。1. 检查当前输出口echo GPU lspci-nnk|grep-A5-EiVGA|Display|3Dechoecho Connectors forcin/sys/class/drm/card*-*;do[-e$c]||continueecho---$c[-f$c/status]echostatus$(cat$c/status)[-f$c/modes]sed-n1,20p$c/modesdone看哪个 connector 是connected再选择后续命令。2. 检查是否已有 1080P 模式主板 AST VGAcat/sys/class/drm/card1-VGA-1/modes独立显卡 VGAcat/sys/class/drm/card2-VGA-2/modes独立显卡 HDMIcat/sys/class/drm/card2-HDMI-A-1/modes如果目标输出里已经有1920x1080可以直接到第 4 步切 GNOME 桌面。没有的话继续第 3 步。3. 通过 GRUB 注入 1080P 模式先备份sudocp-a/etc/default/grub /etc/default/grub.bak-$(date%Y%m%d-%H%M%S)mv~/.config/monitors.xml ~/.config/monitors.xml.bak-before-1080p-$(date%Y%m%d-%H%M%S)2/dev/null||true编辑 GRUBsudonano/etc/default/grub找到GRUB_CMDLINE_LINUX_DEFAULTquiet splash按实际接线改其中一种。主板 AST VGAGRUB_CMDLINE_LINUX_DEFAULTquiet splash videoVGA-1:1920x1080M60e独立显卡 VGAGRUB_CMDLINE_LINUX_DEFAULTquiet splash videoVGA-2:1920x1080M60e独立显卡 HDMIGRUB_CMDLINE_LINUX_DEFAULTquiet splash videoHDMI-A-1:1920x1080M60e保存后执行sudoupdate-grubsudoreboot重启后确认cat/proc/cmdlineforcin/sys/class/drm/card*-*;do[-e$c]||continueecho---$c[-f$c/status]echostatus$(cat$c/status)[-f$c/modes]sed-n1,20p$c/modesdone目标 connector 的 modes 里应出现1920x1080。4. 切换 GNOME 桌面到 1080P先准备环境变量PID$(pgrep-x-u$USERgnome-shell|tail-1)exportXDG_RUNTIME_DIR/run/user/$(id-u)exportDBUS_SESSION_BUS_ADDRESS$(tr\0\n/proc/$PID/environ|sed-ns/^DBUS_SESSION_BUS_ADDRESS//p|head-1)STATE$(gdbus call--session\--destorg.gnome.Mutter.DisplayConfig\--object-path /org/gnome/Mutter/DisplayConfig\--methodorg.gnome.Mutter.DisplayConfig.GetCurrentState)SERIAL$(printf%s\n$STATE|sed-ns/^(uint32 \([0-9][0-9]*\),.*/\1/p|head-1)主板 AST VGAgdbus call--session\--destorg.gnome.Mutter.DisplayConfig\--object-path /org/gnome/Mutter/DisplayConfig\--methodorg.gnome.Mutter.DisplayConfig.ApplyMonitorsConfig\$SERIAL2[(0, 0, 1.0, 0, true, [(VGA-1, 1920x108060.000, {})])]{}独立显卡 VGAgdbus call--session\--destorg.gnome.Mutter.DisplayConfig\--object-path /org/gnome/Mutter/DisplayConfig\--methodorg.gnome.Mutter.DisplayConfig.ApplyMonitorsConfig\$SERIAL2[(0, 0, 1.0, 0, true, [(VGA-2, 1920x108060.000, {})])]{}独立显卡 HDMIgdbus call--session\--destorg.gnome.Mutter.DisplayConfig\--object-path /org/gnome/Mutter/DisplayConfig\--methodorg.gnome.Mutter.DisplayConfig.ApplyMonitorsConfig\$SERIAL2[(0, 0, 1.0, 0, true, [(HDMI-1, 1920x108060.000, {})])]{}说明命令里的2表示保存配置。只想临时测试时把2改成1。不建议手写scale为1.25这类小数缩放X11 会话下可能导致monitors.xml无法读取。5. 镜像输出镜像要求所有参与镜像的输出都支持1920x1080。如果某个输出只有1024x768镜像会被拉回低分辨率。VGA-1和VGA-2镜像gdbus call--session\--destorg.gnome.Mutter.DisplayConfig\--object-path /org/gnome/Mutter/DisplayConfig\--methodorg.gnome.Mutter.DisplayConfig.ApplyMonitorsConfig\$SERIAL2[(0, 0, 1.0, 0, true, [(VGA-1, 1920x108060.000, {}), (VGA-2, 1920x108060.000, {})])]{}HDMI 和 AST VGA 镜像gdbus call--session\--destorg.gnome.Mutter.DisplayConfig\--object-path /org/gnome/Mutter/DisplayConfig\--methodorg.gnome.Mutter.DisplayConfig.ApplyMonitorsConfig\$SERIAL2[(0, 0, 1.0, 0, true, [(HDMI-1, 1920x108060.000, {}), (VGA-1, 1920x108060.000, {})])]{}6. 有光标但没有桌面的修复方法记录一次实际测试出现无桌面现象未清除monitors.xml缓存当前机器只有 ASTVGA-1。GRUB 已经是videoVGA-1:1920x1080M60e没有问题。但~/.config/monitors.xml里还写着旧的VGA-2并且把VGA-1标成 disabled。文件里还保存了scale1.25X11 会话日志报错A fractional scale with physical layout mode not allowed。SSH 登录后执行mv~/.config/monitors.xml ~/.config/monitors.xml.bak-black-cursor-$(date%Y%m%d-%H%M%S)2/dev/null||true如果当前目标是主板 ASTVGA-1写入干净配置mkdir-p~/.configcat~/.config/monitors.xmlXML monitors version2 configuration logicalmonitor x0/x y0/y scale1/scale primaryyes/primary monitor monitorspec connectorVGA-1/connector vendorunknown/vendor productunknown/product serialunknown/serial /monitorspec mode width1920/width height1080/height rate60.000/rate /mode /monitor /logicalmonitor /configuration /monitors XML然后重启桌面sudosystemctl restart gdm3或直接重启sudoreboot7. 回退回退 GRUBls-lt/etc/default/grub.bak-*sudocp/etc/default/grub.bak-YYYYMMDD-HHMMSS /etc/default/grubsudoupdate-grubsudoreboot回退 GNOME 显示配置rm~/.config/monitors.xml然后注销或重启。8. 常见问题GRUB 写了但没有效果大概率 connector 写错。重新执行第 1 步检查。1080P 出现了但 GNOME 仍是 1024x768说明内核模式已经注入成功但桌面还没切换。执行第 4 步。镜像后变回 1024x768说明参与镜像的某个输出没有 1080P 模式。先对那个输出执行第 3 步。强制后花屏说明屏幕、转接器或小屏控制板可能不真正支持该 1080P 时序这就没有办法了请回退。