Jak zmienić rozdzielczość wirtualnego ekranu w systemie Ubuntu (połączenie przez VNC bez podłączania rzeczywistego wyświetlacza)?

12

Mam serwer Ubuntu bez fizycznego dostępu do niego, tylko przez ssh / vnc.

Utknął w rozdzielczości 1680x1050, aw ustawieniach wyświetlania systemu menu są wyłączone, ponieważ nie wykryto podłączonego rzeczywistego wyświetlacza.

Muszę obniżyć rozdzielczość do np. 800x600.

Kiedy próbuję:

$ xrandr --output VGA1 --mode 800x600

Otrzymuję:

xrandr: cannot find mode 800x600

Wyniki są takie same, nawet jeśli najpierw spróbuję:

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

Rekwizyty to:

$ 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

Jakieś pomysły?

GJ
źródło
Podaj informacje z xorg.conf
Andrew Bolster,
Inna alternatywa: superuser.com/questions/270608/…
Wtower,

Odpowiedzi:

10

Wygląda na to, że używasz serwera vino do udostępniania pulpitu przez VNC. Chociaż myślę, że możesz zmienić swój plik /etc/X11/xorg.conf lub cokolwiek to jest plik konfiguracyjny X, mam inną sugestię. Pozostaw konfigurację X w spokoju i utwórz kolejną sesję dla swojego VNC.


Zainstaluj vnc

$ sudo apt-get install vnc4server

Twórz skrypty start i stop vnc

vnc.sh

#!/bin/sh

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

vnc-kill.sh

#!/bin/sh

vncserver -kill :12

12 to tylko dowolna wyświetlana liczba. Użyjesz tego podczas łączenia się z serwerem. Może to być dowolna liczba oprócz 0. To jest to, czego domyślnie używa serwer vino (tak myślę). Nie zapomnij o skryptach chmod + x.

Opcjonalnie: Rozpocznij sesję VNC podczas rozruchu

Dodaj plik vnc.sh do pliku /etc/rc.local, aby sesja rozpoczęła się po uruchomieniu komputera. sudo vi /etc/rc.local i dodaj to na końcu przed „wyjściem 0”

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

Tutaj uruchamiam serwer VNC jako użytkownik. Nie chcę, aby serwer działał w kontekście katalogu głównego. Oczywiście zastąp „YourUserName”. Alternatywnie, nie musisz umieszczać tego tutaj, możesz ssh i ręcznie uruchomić skrypt „vnc.sh”. Twoja decyzja.

Ustaw swoje hasło VNC

(jest to oddzielne od drugiego hasła pulpitu vnc)

$ vncpasswd

Edytuj plik sesji VNC

$ vi ~/.vnc/xstartup

Skomentuj wszystko i umieść to na końcu

gnome-session &

Sprawdź to

Uruchom skrypt vnc.sh i połącz się z innego komputera.

vncviewer.exe -connect Server:12
SuperJames
źródło
2
Dzięki, działa świetnie na nowym pulpicie. Jednak muszę użyć istniejącego pulpitu z różnymi otwartymi oknami już tam. Czy mogę połączyć się z oryginalnym wyświetlaczem: 0 o innej geometrii?
GJ.
... alternatywnie czy istnieje sposób na przeniesienie wszystkich okien w jednej operacji wsadowej z głównego wyświetlacza na ten nowy wyświetlacz VNC?
GJ.
Chociaż jeszcze tego nie próbowałem, uważam, że można użyć „x11vnc” zamiast „vncserver” powyżej, z określonym parametrem -geometry. To powinno dać ci dostęp do wyświetlacza: 0. Szukałem parametrów do serwera gnome vino, ale nie mogłem ich znaleźć.
SuperJames,
1

Możesz rozważyć zmianę rozdzielczości na serwerze VNC? Nie jestem pewien twojej konfiguracji, ale jeśli serwer VNC znajduje się na zwirtualizowanej maszynie, możesz sprawdzić punkt instancji serwera vncserver i zmienić -geometrytam flagę?

Alternatywnie, chciałbym spojrzeć na xorg.conf i dodać tryb, którego szukasz, ponieważ xrandrmówi , że jest on niedostępny. W tym artykule omówiono podstawy edycji xorg.conf

Andrew Bolster
źródło
1

Jestem w stanie zmienić rozdzielczość vncserver do woli za pomocą następującego polecenia:

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

(HT Matt D.)

Ross Rogers
źródło
Co to jest vncconfig? Masz na myśli vnc4config?
Wtower,
Suse nazywa to vncconfig.
Ross Rogers,
Ach, właśnie wtedy :)
Wtower,