Bagaimana cara mengubah resolusi layar virtual pada Ubuntu (menghubungkan melalui VNC tanpa layar nyata terhubung)?

12

Saya memiliki server Ubuntu tanpa akses fisik ke sana, hanya melalui ssh / vnc.

Itu macet pada resolusi 1680x1050 dan dalam pengaturan tampilan sistem menu dinonaktifkan karena tidak ada layar nyata yang terdeteksi terhubung.

Saya perlu menurunkan resolusi ke misalnya 800x600.

Ketika saya mencoba:

$ xrandr --output VGA1 --mode 800x600

Saya mendapatkan:

xrandr: cannot find mode 800x600

Hasilnya sama meskipun saya pertama kali mencoba:

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

Alat peraga tersebut adalah:

$ 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

Ada ide?

GJ.
sumber
Harap berikan info dari xorg.conf
Andrew Bolster
Untuk alternatif lain: superuser.com/questions/270608/…
Wtower

Jawaban:

10

Sepertinya Anda menggunakan server vino untuk berbagi desktop melalui VNC. Meskipun saya pikir Anda dapat mengubah /etc/X11/xorg.conf Anda, atau apa pun file konfigurasi X sekarang, saya punya saran lain. Biarkan konfigurasi X sendiri dan buat sesi lain untuk vnc Anda.


Instal vnc

$ sudo apt-get install vnc4server

Buat skrip mulai dan hentikan vnc

vnc.sh

#!/bin/sh

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

vnc-kill.sh

#!/bin/sh

vncserver -kill :12

12 hanyalah angka tampilan sewenang-wenang. Anda akan menggunakan ini saat Anda terhubung ke server. Ini bisa berupa angka apa pun kecuali 0. Itulah yang digunakan server vino secara default (saya pikir). Jangan lupa chmod + x skrip.

Opsional: Mulai sesi vnc saat boot

Tambahkan vnc.sh ke /etc/rc.local Anda sehingga sesi akan dimulai ketika komputer dimulai. sudo vi /etc/rc.local dan tambahkan ini ke akhir sebelum "keluar 0"

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

Saya menjalankan server vnc sebagai pengguna di sini. Saya tidak ingin server berjalan di bawah konteks root. Ganti "Nama Pengguna Anda", tentu saja. Atau, Anda tidak perlu meletakkan ini di sini, Anda dapat ssh dan menjalankan skrip "vnc.sh" secara manual. Panggilanmu.

Setel kata sandi vnc Anda

(ini terpisah dari kata sandi desktop vnc lainnya)

$ vncpasswd

Edit file sesi vnc Anda

$ vi ~/.vnc/xstartup

Komentari semuanya dan letakkan ini di akhir

gnome-session &

Menguji

Jalankan skrip vnc.sh Anda dan sambungkan dari komputer lain.

vncviewer.exe -connect Server:12
SuperJames
sumber
2
Terima kasih, ini berfungsi baik untuk desktop baru. Namun, saya perlu menggunakan desktop yang ada dengan berbagai jendela terbuka yang sudah ada. Apakah ada cara saya dapat terhubung ke tampilan asli: 0 dengan geometri yang berbeda?
GJ.
... Atau apakah ada cara untuk memindahkan semua jendela dalam satu operasi batch dari tampilan utama ke tampilan VNC baru ini?
GJ.
Meskipun saya belum mencobanya, saya yakin Anda dapat menggunakan "x11vnc" sebagai ganti "vncserver" di atas, dengan parameter -geometry tertentu. Ini akan memberi Anda akses ke: 0 display. Saya mencari parameter ke server gnome vino, tetapi tidak dapat menemukannya.
SuperJames
1

Anda dapat mempertimbangkan mengubah resolusi pada server VNC? Saya tidak yakin dengan pengaturan Anda, tetapi jika server VNC berada pada mesin tervirtualisasi, Anda dapat memeriksa titik instantiasi vncserver dan mengubah -geometrytanda di sana?

Atau, saya akan melihat xorg.conf dan menambahkan mode yang Anda cari, karena xrandrmengatakan itu tidak tersedia. Artikel ini membahas dasar-dasar pengeditan xorg.conf

Andrew Bolster
sumber
1

Saya dapat mengubah resolusi vncserver saya sesuka hati dengan perintah berikut:

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

(HT Matt D.)

Ross Rogers
sumber
Apa vncconfig? Maksudmu vnc4config?
Wtower
Suse menyebutnya vncconfig.
Ross Rogers
Ah, saat itu :)
Wtower