Как изменить разрешение виртуального экрана в Ubuntu (подключение через VNC без подключения реального дисплея)?

12

У меня есть сервер 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

Есть идеи?

ГДж.
источник
Пожалуйста, предоставьте информацию с xorg.conf
Эндрю Болстер
Для другой альтернативы: superuser.com/questions/270608/…
Wtower

Ответы:

10

Похоже, вы используете сервер Vino для совместного использования рабочего стола через VNC. Хотя я думаю, что вы можете изменить свой /etc/X11/xorg.conf или любой другой файл конфигурации X сейчас, у меня есть другое предложение. Оставьте X config в покое и создайте еще один сеанс для вашего vnc.


Установить VNC

$ sudo apt-get install vnc4server

Создание сценариев запуска и остановки vnc

vnc.sh

#!/bin/sh

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

vnc-kill.sh

#!/bin/sh

vncserver -kill :12

12 - просто произвольный номер дисплея. Вы будете использовать это при подключении к серверу. Это может быть любое число, кроме 0. Это то, что сервер vino использует по умолчанию (я думаю). Не забудьте chmod + x скрипты.

Необязательно: Запустите сеанс vnc при загрузке

Добавьте vnc.sh в ваш /etc/rc.local, чтобы сеанс начался при запуске компьютера. sudo vi /etc/rc.local и добавьте это до конца перед "выходом 0"

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

Я запускаю сервер VNC как пользователь здесь. Я не хочу, чтобы сервер работал в корневом контексте. Замените «YourUserName», конечно. Кроме того, вам не нужно указывать это здесь, вы можете запустить ssh и запустить скрипт «vnc.sh» вручную. Ваш звонок.

Установите пароль VNC

(это отдельно от другого пароля рабочего стола vnc)

$ vncpasswd

Отредактируйте ваш файл VNC сессии

$ vi ~/.vnc/xstartup

Закомментируйте все и поместите это в конец

gnome-session &

Проверь это

Запустите скрипт vnc.sh и подключитесь с другого компьютера.

vncviewer.exe -connect Server:12
SuperJames
источник
2
Спасибо, это отлично работает для нового рабочего стола. Однако мне нужно использовать существующий рабочий стол с уже открытыми различными окнами. Есть ли способ, которым я могу подключиться к исходному дисплею: ​​0 с другой геометрией?
ГДж.
... альтернативно есть ли способ переместить все окна в одной пакетной операции с основного дисплея на этот новый дисплей VNC?
ГДж.
Хотя я еще не пробовал, я считаю, что вы можете использовать «x11vnc» вместо «vncserver» выше, с определенным параметром -geometry. Это должно дать вам доступ к дисплею: ​​0. Я искал параметры для сервера gnome vino, но не смог найти ни одного.
SuperJames,
1

Вы могли бы рассмотреть вопрос об изменении разрешения на сервере VNC? Я не уверен в вашей настройке, но если VNC-сервер находится на виртуализированной машине, вы можете проверить точку инстанцирования vncserver и изменить там -geometryфлаг?

В качестве альтернативы я бы посмотрел на xorg.conf и добавил режим, который вы ищете, поскольку xrandrон говорит, что он недоступен. В этой статье рассматриваются основы редактирования xorg.conf

Эндрю Болстер
источник
1

Я могу изменить свое разрешение vncserver по желанию с помощью следующей команды:

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

(Х. Т. Мэтт)

Росс Роджерс
источник
Что такое vncconfig? Вы имеете в виду vnc4config?
Wtower
Сьюз называет это vncconfig.
Росс Роджерс
Ах, вот тогда :)
Wtower