屏幕分辨率设置为 800×600 24位色

要将屏幕分辨率设置为 800×600 24位色,可以通过以下脚本实现。这个版本针对 Docker 环境做了优化,同时避免依赖 cvt 工具:

最终解决方案脚本 (800×600@24bit)

#!/bin/bash

# 配置参数
WIDTH=800
HEIGHT=600
BPP=24  # 24位色深
REFRESH=60

# 硬编码的Modeline参数(通过cvt生成)
MODE_NAME="${WIDTH}x${HEIGHT}_${REFRESH}"
MODE_PARAMS="38.25 $WIDTH 832 912 1024 $HEIGHT 603 607 624 -hsync +vsync"

# 获取当前显示接口
OUTPUT=$(xrandr | grep -m 1 " connected" | awk '{print $1}')
[ -z "$OUTPUT" ] && OUTPUT="VIRTUAL1"

# 清理旧模式
xrandr --rmmode "$MODE_NAME" 2>/dev/null

# 创建新模式
if ! xrandr --newmode "$MODE_NAME" $MODE_PARAMS; then
    echo "[错误] 模式创建失败!请检查参数:"
    echo "xrandr --newmode \"$MODE_NAME\" $MODE_PARAMS"
    exit 1
fi

# 添加并应用模式
xrandr --addmode "$OUTPUT" "$MODE_NAME"
if xrandr --output "$OUTPUT" --mode "$MODE_NAME"; then
    echo "[成功] 分辨率已设置为 ${WIDTH}x${HEIGHT} ${BPP}位色"
else
    echo "[警告] 直接设置失败,尝试强制帧缓冲大小..."
    xrandr --output "$OUTPUT" --set "scaling mode" "Full" --panning ${WIDTH}x${HEIGHT} --fb ${WIDTH}x${HEIGHT}
fi

关键说明

  1. 参数来源
    Modeline 参数是通过以下命令生成的(如果在宿主机有cvt工具):
   cvt 800 600 60

输出:

   # 800x600 59.86 Hz (CVT 0.48M3) hsync: 37.35 kHz; pclk: 38.25 MHz
   Modeline "800x600_60.00"   38.25  800 832 912 1024  600 603 607 624 -hsync +vsync
  1. Docker 特殊处理
  • 自动回退到虚拟显示接口(VIRTUAL1
  • 提供备用强制设置方案(--fb参数)
  1. 24位色深实现
    X11 默认使用 24位色深,无需特殊设置。如需验证:
   xdpyinfo | grep -P 'depth|planes'

使用方式

物理机直接运行:

chmod +x set_resolution.sh
./set_resolution.sh

Docker 容器内运行:

# 必须挂载X11套接字和显示设备
docker run -it \
  --privileged \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  --device /dev/dri \
  your_image /script/set_resolution.sh

错误处理指南

错误现象解决方案
BadName 错误检查Modeline参数格式是否正确
Can't open display确保正确挂载了/tmp/.X11-unix
分辨率不生效尝试--fb强制模式或改用虚拟显示器

效果验证

# 检查当前分辨率
xrandr | grep '*'

# 检查色深
xdpyinfo | grep 'depth'

如果遇到问题,可以尝试更兼容的标准分辨率(如1024x768)或降低刷新率(如50Hz)。

No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next