如何更改 Ubuntu 上的虚拟屏幕分辨率(通过 VNC 连接,但没有连接实际显示器)?

如何更改 Ubuntu 上的虚拟屏幕分辨率(通过 VNC 连接,但没有连接实际显示器)?

我有一台 Ubuntu 服务器,无法物理访问,只能通过 ssh/vnc 进行访问。

它卡在 1680x1050 分辨率,并且在系统显示设置中菜单被禁用,因为没有检测到连接的实际显示器。

我需要将分辨率降低到例如 800x600。

当我尝试时:

$ xrandr --output VGA1 --mode 800x600

我越来越:

xrandr: cannot find mode 800x600

即使我第一次尝试,结果也是一样的:

$ xrandr --newmode "800x600_60.00"   38.25  800 832 912 1024  600 603 607 624 -hsync +vsync

道具有:

$ xrandr --prop
Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 4096 x 4096
VGA1 disconnected 1680x1050+0+0 (normal left inverted right x axis y axis) 593mm x 371mm
  1680x1050 (0x43)  146.2MHz
        h: width  1680 start 1784 end 1960 total 2240 skew    0 clock   65.3KHz
        v: height 1050 start 1053 end 1059 total 1089           clock   60.0Hz

有任何想法吗?

答案1

听起来您正在使用 vino 服务器通过 VNC 共享桌面。虽然我认为您可以更改 /etc/X11/xorg.conf 或现在的 X 配置文件,但我还有另一个建议。不要更改 X 配置,然后为您的 vnc 创建另一个会话。


安装 vnc

$ sudo apt-get install vnc4server

创建 vnc 启动和停止脚本

vnc命令

#!/bin/sh

vncserver :12 -name "My-Server" -geometry 1600x1100

vnc-kill命令

#!/bin/sh

vncserver -kill :12

12 只是一个任意显示数字。您将在连接到服务器时使用它。它可以是除 0 之外的任何数字。这是 vino 服务器默认使用的(我认为)。不要忘记 chmod +x 脚本。

可选:启动时启动 vnc 会话

将 vnc.sh 添加到您的 /etc/rc.local,以便会话在计算机启动时启动。sudo vi /etc/rc.local 并将其添加到“exit 0”之前的末尾

su - YourUserName -c "/home/YourUserName/bin/vnc.sh"

我在这里以用户身份运行 vnc 服务器。我不希望服务器在 root 上下文中运行。当然,替换“YourUserName”。或者,您不需要将其放在这里,您可以 ssh 并手动运行“vnc.sh”脚本。您说了算。

设置 vnc 密码

(这与其他 VNC 桌面密码不同)

$ vncpasswd

编辑您的 vnc 会话文件

$ vi ~/.vnc/xstartup

注释掉所有内容,并将其放在最后

gnome-session &

测试一下

运行您的 vnc.sh 脚本并从另一台计算机连接。

vncviewer.exe -connect Server:12

答案2

您可以考虑更改 VNC 服务器上的分辨率吗?我不确定您的设置,但如果 VNC 服务器位于虚拟机上,您可以检查 vncserver 实例化点并-geometry在那里更改标志吗?

或者,我会查看 xorg.conf 并添加您正在寻找的模式,因为xrandr它说它不可用。本文介绍了 xorg.conf 编辑的基础知识

答案3

我可以使用以下命令随意更改我的 vncserver 分辨率:

vncconfig -set randr=1552x1175 ; xrandr -s 1552x1175

(HT 马特 D.)

相关内容