Füge eine gefälschte Anzeige hinzu, wenn kein Monitor angeschlossen ist

47

Ich habe einen Ubuntu 14.04-Server, an den kein externer Monitor angeschlossen ist. Ich benutze NoMachine, um die Maschine fernzusteuern. Wenn ich das tue, werden auf der Unity / Gnome-Oberfläche keine Monitore angeschlossen. Daher kann ich nur 800x600 verwenden, wenn ich eine Verbindung mit NoMachine herstelle. Wenn ich einen Monitor anschließe, kann ich die Auflösung auf die Größe des NoMachine-Fensters auf dem Remotecomputer einstellen.

Gibt es eine Möglichkeit, unter Ubuntu ein "falsches" Monitorgerät zu erstellen, damit ich in Unity / Gnome eine Desktopauflösung festlegen kann?

John Chapman
quelle

Antworten:

54

Einen Weg gefunden, dies zu tun, ohne einen Blindstecker zu benötigen: http://blog.mediafederation.com/andy-hawkins/ubuntu-headless-vnc-vesa-800x600-fix/

Grundsätzlich einen Dummy-Treiber installieren:

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

Dann schreibe es in die /usr/share/X11/xorg.conf.d/xorg.confDatei (erstelle eine, falls sie nicht existiert):

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

Starten Sie dann den Computer neu.

John Chapman
quelle
1
Bitte bearbeiten Sie die Antwort, das Paket wird aktualisiert. Versuchen Sie es sudo apt-cache search video-dummy.
CCTAN
1
Beim Erstellen der Datei /usr/share/X11/xorg.conf.d/xorg.confmit diesem Inhalt oder der Datei aus xpra.org/xorg.conf bootet mein Ubuntu nicht mehr (es bleibt beim Ubuntu-Logo-Bildschirm vor dem Anmeldebildschirm hängen). Woran kann das liegen?
David Portabella
2
Der Link in der Antwort scheint unterbrochen zu sein.
rsethc
4
Brach auch mein os. Hat nicht gebootet. Es ist entfernt und jetzt muss ich in ein Auto steigen und 1 Stunde fahren. Riskantes Zeug :-)
Derek
1
Das funktioniert bei mir! Es gibt jedoch das Problem, dass es immer einen schwarzen Bildschirm gibt, wenn ich einen echten Monitor anschließe
soulmachine
20

Geben Sie die Auflösung auf einem Ubuntu 14.04-Desktop ohne angeschlossenen Monitor an:

Aus der xrandr-Manpage:

--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.

Verwenden Sie daher nach dem Verbinden den Befehl:

xrandr --fb 1280x1024
Eric Leschinski
quelle
Cool, es ist Arbeit!
Burtsevyg
2
Für mich heißt es:Can't open display
ar2015
2
@ ar2015 Führen Sie den Befehl alsxrandr --fb 1280x1024 -display :0
Terrance
@ Terrance Ich bekommeNo protocol specified Can't open display :0
Rufus
@Woofas Sind Sie in Wayland beim System angemeldet? Funktioniert meines Wissens xrandrnur mit X.Org. Ich habe gerade meinen Befehl auf einem 18.04-System erneut ausgeführt und es funktioniert einwandfrei, aber ich verwende Xubuntu, das standardmäßig X.Org verwendet.
Terrance
8

Dies ist eine Hardwarelösung / Workarround, die für einige Grafikhardware / -treiber funktionieren kann.

  • Entweder Sie kaufen einen Dummy-VGA-Stecker (oder einen analogen DVI-Stecker), oder einige nennen ihn Dummy-Dongle.

  • Oder verwenden Sie einfach 3 Widerstände mit ca. 75 Ohm am VGA-Ausgang: 1 → 6, 2 → 7, 3 → 8.

    +/- 10 Ohm können problemlos funktionieren. Einige Karten arbeiten mit nur einem Widerstand. (Wie mein Intel, 2 → 7 oder 3 → 8, wird als Monitor erkannt)

Referenz: So erstellen Sie Blindstopfen für Ihre Grafikkarten .

user.dz
quelle
1
Klingt nach einer interessanten Idee. Ich versuche es mal.
John Chapman
2
Ehrlich gesagt ist dies der einfachste Weg. Es gibt viele Tutorials, die Abhilfe schaffen, aber das funktioniert einfach und spart Ihnen viel Zeit. Die DIY-Option scheint solide, aber Blindstopfen bei Amazon kosten 20 US-Dollar. Stellen Sie einfach sicher, dass Sie einen guten haben, der Ihre Lösung unterstützt.
Jason Capriotti
3

Ich bin auf Ubuntu 18.04, so habe ich es gelöst:

Ich habe die virtuelle Anzeige mit der Antwort auf diese Frage erstellt: https://unix.stackexchange.com/questions/378373/add-virtual-output-to-xorg

Erstellen Sie eine 20-intel.conf-Datei:

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

Fügen Sie der Datei die folgenden Konfigurationsinformationen hinzu:

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

Dadurch wird die Intel GPU angewiesen, zwei virtuelle Anzeigen zu erstellen. Sie können die Anzahl der VirtualHeads an Ihre Bedürfnisse anpassen.

Dann habe ich ein Shell-Skript erstellt (vergessen Sie nicht, die ausführbare Datei festzulegen) und dieses in Startup Applications abgelegt:

#! /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

Auf diese Weise wird VIRTUAL1 als Ausgang festgelegt und verbunden. Beim Booten wird ein neuer Modus (gefunden mit "cvt 1600 900") erstellt und zu VIRTUAL1 ernannt.

Einziges Problem dabei ist: Dock fehlt beim Neustart ... Hab das noch nicht gelöst.

Stefan Lemmens
quelle
3

Betrachten Sie Xvfb, das wahrscheinlich am wenigsten die Anzeige durcheinander bringt, wenn Sie tatsächlich einen echten Monitor anschließen

Die folgenden Befehle starten lightdm auf einem gefälschten Display mit ID 1und Auflösung1024x76

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

#exec gnome-session & # use gnome-session instead of lightdm
exec lightdm-session &
Rufus
quelle
Danke, das hat mir geholfen, Chrome unter Debian ohne Anzeige auszuführen.
Deda
0

Bei mir funktioniert keine der oben genannten Lösungen. Um ein neues Gerät / einen neuen Bildschirm VIRTUAL1 hinzuzufügen, hat sich für mich Folgendes bewährt:

  • Installieren Sie das Paket xserver-xorg-video-dummy
  • Aktualisieren Sie xorg.conf

Alle Details finden Sie hier: Fake Display hinzufügen, wenn kein Monitor angeschlossen ist

Info : Für mich funktioniert das Bearbeiten von /etc/X11/xorg.conf anstelle von /usr/share/X11/xorg.conf.d/xorg.conf

Sangorys
quelle