วิธีการเปลี่ยนความละเอียดหน้าจอเสมือนบน 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
Andrew Bolster

สำหรับทางเลือกอื่น: superuser.com/questions/270608/…
Wtower

คำตอบ:


10

ดูเหมือนว่าคุณกำลังใช้เซิร์ฟเวอร์ vino เพื่อแบ่งปันเดสก์ท็อปผ่าน VNC แม้ว่าฉันคิดว่าคุณสามารถเปลี่ยน /etc/X11/xorg.conf ของคุณหรืออะไรก็ตามที่ไฟล์ X config ตอนนี้ฉันมีข้อเสนอแนะอื่น ออกจากการกำหนดค่า X เพียงอย่างเดียวและสร้างเซสชันอื่นสำหรับ 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 และเพิ่มเข้าไปที่ท้ายก่อน "exit 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

2
ขอบคุณมันใช้งานได้ดีสำหรับเดสก์ท็อปใหม่ อย่างไรก็ตามฉันจำเป็นต้องใช้เดสก์ท็อปที่มีอยู่พร้อมกับหน้าต่างแบบเปิดต่างๆ มีวิธีที่ฉันสามารถเชื่อมต่อกับจอแสดงผลดั้งเดิม: 0 ด้วยรูปทรงเรขาคณิตที่แตกต่างกันหรือไม่?
GJ

... หรือมิฉะนั้นจะมีวิธีย้ายหน้าต่างทั้งหมดในการดำเนินการแบบกลุ่มเดียวจากหน้าจอหลักไปยังจอแสดงผล VNC ใหม่นี้หรือไม่?
GJ

แม้ว่าฉันยังไม่ได้ลอง แต่ฉันเชื่อว่าคุณสามารถใช้ "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

(HT Matt D. )


คือvncconfigอะไร คุณหมายถึงvnc4configอะไร
Wtower

โทร Suse vncconfigมัน
Ross Rogers

อาขวาแล้ว :)
Wtower
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.