เพิ่มจอแสดงผลปลอมเมื่อไม่มีจอภาพเสียบอยู่


46

ฉันมีเซิร์ฟเวอร์ Ubuntu 14.04 ที่ไม่ได้เชื่อมต่อกับจอมอนิเตอร์ภายนอก ฉันใช้ NoMachine เพื่อควบคุมเครื่องจากระยะไกล เมื่อฉันทำเช่นนั้นอินเทอร์เฟซ Unity / Gnome ไม่เห็นจอภาพที่เชื่อมต่อดังนั้นฉันสามารถใช้ 800x600 เมื่อเชื่อมต่อกับ NoMachine เท่านั้น ถ้าฉันเสียบจอภาพฉันสามารถตั้งค่าความละเอียดเป็นขนาดใดก็ได้หน้าต่าง NoMachine อยู่บนคอมพิวเตอร์ระยะไกล

มีวิธีในการสร้างอุปกรณ์ตรวจสอบ "ปลอม" บน Ubuntu เพื่อให้ฉันสามารถตั้งค่าความละเอียดของเดสก์ท็อปใน Unity / Gnome ได้หรือไม่?

คำตอบ:


54

พบวิธีที่จะทำโดยไม่ต้องใช้ปลั๊กจำลอง: http://blog.mediafederation.com/andy-hawkins/ubuntu-headless-vnc-vesa-800x600-fix/

โดยทั่วไปติดตั้งไดร์เวอร์จำลอง:

sudo apt-get install xserver-xorg-video-dummy

จากนั้นเขียนมันลงใน/usr/share/X11/xorg.conf.d/xorg.confไฟล์ (สร้างหนึ่งไฟล์ถ้าไม่มี):

Section "Device"
    Identifier  "Configured Video Device"
    Driver      "dummy"
EndSection

Section "Monitor"
    Identifier  "Configured Monitor"
    HorizSync 31.5-48.5
    VertRefresh 50-70
EndSection

Section "Screen"
    Identifier  "Default Screen"
    Monitor     "Configured Monitor"
    Device      "Configured Video Device"
    DefaultDepth 24
    SubSection "Display"
    Depth 24
    Modes "1024x800"
    EndSubSection
EndSection

จากนั้นรีสตาร์ทคอมพิวเตอร์


1
โปรดแก้ไขคำตอบแพคเกจจะถูกปรับปรุง ลองsudo apt-cache search video-dummyดู
cctan

1
การสร้างไฟล์/usr/share/X11/xorg.conf.d/xorg.confด้วยเนื้อหานี้หรือไฟล์จากxpra.org/xorg.confอูบุนตูของฉันจะไม่ทำการบู๊ตอีกต่อไป (มันจะติดอยู่กับหน้าจอโลโก้ของ Ubuntu ก่อนหน้าจอล็อกอิน) มีปัญหาอะไรบ้าง?
David Portabella

2
ลิงก์ในคำตอบดูเหมือนจะใช้งานไม่ได้
rsethc

3
ยังทำให้ระบบปฏิบัติการของฉันพัง ไม่ได้บูต มันไกลและตอนนี้ฉันต้องขึ้นรถและขับ 1 ชม. สิ่งที่มีความเสี่ยง :-)
ดีเร็ก

1
มันใช้งานได้สำหรับฉัน! อย่างไรก็ตามมีปัญหาว่าถ้าฉันแนบจอภาพจริงมันเป็นหน้าจอสีดำอยู่เสมอ
soulmachine

20

ระบุความละเอียดบนเดสก์ท็อป Ubuntu 14.04 โดยไม่ได้เชื่อมต่อกับมอนิเตอร์:

จากหน้า xrandr:

--fb widthxheight
   Reconfigures the screen to the specified size. All configured 
   monitors must fit within this size. When this option is not 
   provided, xrandr computes the smallest screen size that will 
   hold the set of configured outputs; this option provides a 
   way to override that behaviour.

ดังนั้นใช้คำสั่งหลังจากเชื่อมต่อ:

xrandr --fb 1280x1024

เยี่ยมยอดมันใช้งานได้!
burtsevyg

2
สำหรับฉันมันบอกว่า:Can't open display
ar2015

2
@ ar2015 เรียกใช้คำสั่งในฐานะxrandr --fb 1280x1024 -display :0
Terrance

@Terrance ฉันได้รับNo protocol specified Can't open display :0
รูฟัส

@Woofas คุณเข้าสู่ระบบใน Wayland หรือไม่? เท่าที่ฉันรู้xrandrจะใช้ได้เฉพาะกับ X.Org ฉันเพิ่งรันคำสั่งของฉันในระบบ 18.04 อีกครั้งและใช้งานได้ดี แต่ฉันใช้ Xubuntu ซึ่งเป็นค่าเริ่มต้นเป็น X.Org
Terrance

8

นี่เป็นวิธีแก้ปัญหาฮาร์ดแวร์ / วิธีแก้ปัญหาซึ่งอาจใช้ได้กับฮาร์ดแวร์ / ไดรเวอร์กราฟิกบางตัว

  • ไม่ว่าคุณจะซื้อปลั๊ก Dummy VGA (หรืออนาล็อก DVI) หรือบางคนเรียกว่า Dummy Dongle

  • หรือเพียงแค่ใช้ตัวต้านทาน 3 ตัวประมาณ 75 โอห์มที่เอาต์พุต VGA: 1 → 6, 2 → 7, 3 → 8

    +/- 10 Ohm อาจทำงานได้โดยไม่มีปัญหา การ์ดบางตัวทำงานกับตัวต้านทานเพียงตัวเดียว (เช่น Intel ของฉัน, 2 → 7 หรือ 3 → 8, จะถูกตรวจจับเป็นจอภาพ)

อ้างอิง: วิธีการสร้างหุ่นปลั๊กสำหรับกราฟิกการ์ดของคุณ


1
ดูเหมือนความคิดที่น่าสนใจ ฉันจะให้มันยิง
John Chapman

2
สุจริตนี่เป็นวิธีที่ง่ายที่สุดที่จะไป มีแบบฝึกหัดมากมายสำหรับการแก้ไขปัญหา แต่นี่เป็นงานธรรมดาและจะช่วยคุณประหยัดเวลาได้มาก ตัวเลือก DIY ดูเหมือนจะแข็ง แต่ปลั๊กจำลองใน Amazon อยู่ที่ $ 20 เพียงให้แน่ใจว่าคุณได้รับสิ่งที่ดีเพื่อสนับสนุนความละเอียดของคุณ
Jason Capriotti

3

ฉันใช้ Ubuntu 18.04 นี่คือวิธีที่ฉันแก้ไข:

ฉันได้สร้างจอแสดงผลเสมือนจริงโดยใช้คำตอบสำหรับคำถามนี้: https://unix.stackexchange.com/questions/378373/add-virtual-output-to-xorg

สร้างไฟล์ 20-intel.conf:

sudo vi /usr/share/X11/xorg.conf.d/20-intel.conf

เพิ่มข้อมูลการกำหนดค่าต่อไปนี้ลงในไฟล์:

Section "Device"
    Identifier "intelgpu0"
    Driver "intel"
    Option "VirtualHeads" "2"
EndSection

สิ่งนี้จะบอก Intel GPU ในการสร้างจอแสดงผลเสมือน คุณสามารถเปลี่ยนจำนวน VirtualHeads เป็นความต้องการของคุณ

จากนั้นฉันก็สร้างเชลล์สคริปต์ (อย่าลืมตั้งค่าปฏิบัติการ) และวางไว้ใน Startup Applications:

#! /bin/bash

/usr/bin/xrandr -d :0 --output VIRTUAL1 --primary --auto
/usr/bin/xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900$
/usr/bin/xrandr --addmode VIRTUAL1 "1600x900_60.00"
/usr/bin/xrandr

ด้วยวิธีนี้ VIRTUAL1 จะถูกตั้งค่าเป็นเอาท์พุทและเชื่อมต่อ ขณะบูตโหมดใหม่ (พบโดยใช้ "cvt 1600 900") กำลังถูกสร้างและกำหนดให้เป็น VIRTUAL1

ปัญหาเดียวของเรื่องนี้คือ: ท่าเรือหายไปเมื่อรีบูต ... ยังไม่ได้แก้ไข


3

พิจารณาXvfbซึ่งอาจเป็นไปได้น้อยที่สุดที่จะเลอะจอแสดงผลเมื่อคุณเสียบจอภาพจริง

คำสั่งต่อไปนี้จะเริ่ม lightdm บนจอแสดงผลปลอมที่มี ID 1และความละเอียด1024x76

export DISPLAY=:1
Xvfb :1 -screen 0 1024x768x16 &
sleep 1

#exec gnome-session & # use gnome-session instead of lightdm
exec lightdm-session &

ขอบคุณสิ่งนี้ช่วยให้ฉันสามารถเรียกใช้งาน Chrome บน Debian โดยไม่ต้องแสดง
Deda

0

สำหรับฉันไม่มีวิธีการแก้ปัญหาข้างต้นใช้งานได้ หากต้องการเพิ่มอุปกรณ์ / หน้าจอ VIRTUAL1 ใหม่สิ่งที่ใช้ได้กับฉันคือ:

  • ติดตั้งแพ็กเก็ต xserver-xorg-video-dummy
  • อัปเดต xorg.conf

รายละเอียดทั้งหมดอยู่ที่นี่: เพิ่มจอแสดงผลปลอมเมื่อไม่มีการเสียบจอภาพ

ข้อมูล : สำหรับฉันมันทำงานในการแก้ไข /etc/X11/xorg.conf แทน /usr/share/X11/xorg.conf.d/xorg.conf

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