我正在尝试使用 xorg-dummy 驱动程序为 X 添加分辨率模式,以便能够使 x11vnc 服务器的输出适合我的屏幕分辨率。我正在运行
x11vnc -xdummy -xrandr
使用路径中的 x11vnc Xdummy 脚本。如果我不在 /etc/X11 中添加 xorg.conf 文件,那么我只能获得一堆较低的分辨率。
因此我添加了这个 xorg.conf 文件 https://www.xpra.org/xorg.conf 我还拥有一些更高的分辨率。其中 1920x1200 是我需要的,但旋转了 90 度。
使用http://www.arachnoid.com/modelines/,因此我计算了 Modeline
Modeline "1200x1920_10.00" 27.20 1200 1192 1304 1408 1920 1921 1924 1932 -HSync +Vsync
并将其与相应的模式一起添加到 xorg.conf 文件中。但是,重新启动后,我仍然没有此模式。在我的 /var/log/Xorg.log 中,我看到类似以下内容
Not using mode "1200x1920" (no mode of this name)
但是也
Not using mode "1920x1200" (no mode of this name)
事实上后者有效。前者无效。我也尝试使用 xrandr 添加它,但我得到了
Failed to get size of gamma for output default
此外,我尝试使用参数 -geom 1200x1920 向 Xdummy 脚本提供该模式。这也没有增加分辨率。
xorg-dummy 是否仅支持示例 xorg.conf 中已指定的模式,还是我犯了错误?练习的目标是能够动态切换 vnc 服务器分辨率。我可以使用其他 vnc 服务器,但其中大多数似乎存在与使用 KDE 相关的问题。不幸的是,KDE 自己的 krfb 速度要慢得多。
答案1
官方计算指南模式行(带有cvt
)在这里:
我认为在这里引用这部分就足够了:
由于硬件或驱动程序存在问题,可能无法始终检测到显示器的正确分辨率。例如,从显示器查询的 EDID 数据块可能不正确。
如果模式已经存在,但与特定输出无关,则可以像这样添加它:
$ xrandr --addmode S-video 800x600
如果该模式尚不存在,您需要先通过指定模式行:
$ xrandr --newmode <Mode``Line>
gtf
您可以使用或实用程序创建模式行cvt
。例如,如果您想添加具有分辨率的模式800x600在60 赫兹,可以输入以下命令:(输出如下所示。)$ 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
然后复制“模式线“进入
xrandr
命令:$ xrandr --newmode "800x600_60.00" 38.25 800 832 912 1024 600 603 607 624 -hsync +vsync
进入模式后,需要使用
--addmode
上面解释的命令将其添加到输出中。
小心并注意最后一句话。
要么,看看你的模式行-hsync +vsync
针对小写字母输入的单词。使用官方指南。尽情享受吧。