如何在没有显示器的情况下在Ubuntu 12.04的VNC Viewer中更改屏幕分辨率?

我在一台机器上安装了Ubuntu 12.04,并且我总是通过VNC远程使用它。 当我连接显示器到这台机器时,我可以在下面的行中更改我的VNC查看器的分辨率:
$vnc4server --geometry 1440x900

这对我有用,但我总是远程使用这台机器,我拔掉显示器然后重启。上面的命令行不再起作用。
然后我尝试了xrandr。
 SZ:    Pixels          Physical       Refresh
*0   1024 x 768    ( 260mm x 195mm )  *60  
Current rotation - normal
Current reflection - none
Rotations possible - normal 
Reflections possible - none

只有一种选择可用,所以我尝试添加新的选择。

$cvt 1440 900
# 1440x900 59.89 Hz (CVT 1.30MA) hsync: 55.93 kHz; pclk: 106.50 MHz
Modeline "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync


$xrandr --newmode "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync

$xrandr --addmode S2 "1440x900_60.00"

然后我再次使用xrandr进行检查,但是看不到新添加的模式。
我尝试执行以下命令,但是出现错误提示说我的RandR版本太旧。
$xrandr --output S2 --mode 1440x900_60.00
xrandr: Server RandR version before 1.2

但这对我来说没有道理,如果我重新连接显示器并运行xrandr命令,它就可以工作了!似乎Ubuntu必须连接到真正的显示器,然后我才能在VNC查看器中更改分辨率。
有人可以帮忙吗?
更新: 最终我通过切换到tightvncserver解决了这个问题。
$tightvncserver -geometry 1440x900 

对我来说没问题。

谢谢,一切都回答了我的问题。


2你应该将对你有效的内容发布为答案,这样你就可以标记它为被接受的答案,其他人也能从中受益。 - kiri
似乎和https://askubuntu.com/questions/453109/ubuntu-14-04-add-fake-display-when-no-monitor-is-plugged-in/相同。 - user.dz
TightVNC服务器没有-geometry选项。 - baptx
-geometry。一个短横线,不是两个短横线。请参阅vnc4server --help - tai271828
2个回答


在Ubuntu 12.04上,我得到了“xrandr: command not found”的错误提示。可能默认情况下并没有安装它。 - vladkras
这个怎么被点赞了?还是出现了完全相同的错误。 - Elad Weiss
在Raspbian上进行测试,并将其设置为与本地Ubuntu屏幕设置相同的分辨率,可以实现您期望的完美全屏模式。目前通过vncviewer 6.22.515进行连接,但由于分辨率是在主机(vnc服务器)端设置的,因此对于任何查看器来说都应该是相同的。 - iyrin
这对我来说非常好,谢谢。你怎么让它变成永久的? - Alexei Masterov

查看 xrandr 的文档,它依赖于从显示器获取支持的分辨率信息。如果没有连接监视器,xrandr 将没有任何信息可用于设置显示分辨率,很可能会根据您在 VNC 连接的显示首选项中设置的分辨率进行绘制。没有显示器 = 无法更改屏幕分辨率。


我正在使用RealVNC的VNC Viewer客户端,但无法找到在客户端中控制屏幕分辨率的选项。而且在Ubuntu中,使用"$vnc4server --geometry 1440x900"也没有帮助。 - Mr.Wang from Next Door
澄清:显示分辨率设置来自主机计算机的显示偏好设置,而不是VNC客户端的分辨率设置。如果主机计算机没有连接显示器,分辨率切换将无法工作。 - douggro
但是我无法在系统设置>>显示中更改分辨率设置,当我点击时,它会显示“RANDR扩展太旧(必须至少为1.2)”。 - Mr.Wang from Next Door
1那么你可能需要移除并重新安装xrandr。当前版本是1.4.0。无论如何,如果没有连接显示器,你将无法切换分辨率。没有连接显示器时,在终端中运行xrandr命令会有什么输出? - douggro
我已经从这里更新了我的xrandr到1.4.0-1版本,但仍然遇到相同的错误。如果在连接后无法在VNC中切换分辨率,那么在连接之前如何设置分辨率,以便在最初打开VNC查看器时生效呢? - Mr.Wang from Next Door
问题解决,谢谢一切,我改用tightvncserver,并且__--geometry 1440x900__有效。 - Mr.Wang from Next Door