Aggiungi display falso quando nessun monitor è collegato


47

Ho un server Ubuntu 14.04 senza monitor esterno collegato. Uso NoMachine per il controllo remoto della macchina. Quando lo faccio, l'interfaccia Unity / Gnome non vede alcun monitor collegato, quindi posso usare solo 800x600 quando mi connetto con NoMachine. Se collego un monitor, posso impostare la risoluzione su qualunque dimensione sia la finestra di NoMachine sul computer remoto.

C'è un modo per creare un dispositivo di monitoraggio "falso" su Ubuntu in modo da poter impostare una risoluzione desktop in Unity / Gnome?

Risposte:


55

Trovato un modo per farlo senza richiedere una presa fittizia: http://blog.mediafederation.com/andy-hawkins/ubuntu-headless-vnc-vesa-800x600-fix/

Fondamentalmente installare un driver fittizio:

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

Quindi scrivilo nel /usr/share/X11/xorg.conf.d/xorg.conffile (creane uno, se non esiste):

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

Quindi riavviare il computer.


1
Modifica la risposta, il pacchetto è in fase di aggiornamento. Prova sudo apt-cache search video-dummy.
cctan,

1
Creando il file /usr/share/X11/xorg.conf.d/xorg.confcon questo contenuto, o quello da xpra.org/xorg.conf , Ubuntu non si avvia più (si blocca con la schermata del logo Ubuntu prima della schermata di accesso). Quale può essere il problema?
David Portabella,

2
Il link nella risposta sembra essere rotto.
rsethc,

4
Mi ha anche rotto il sistema operativo. Non è stato avviato. È remoto e ora ho bisogno di salire in macchina e guidare per 1 ora. Roba rischiosa :-)
Derek

1
Questo funziona per me! Tuttavia, c'è un problema che se
allego

20

Specificare la risoluzione su un desktop Ubuntu 14.04 senza un monitor collegato:

Dalla pagina man di 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.

Pertanto utilizzare il comando dopo la connessione:

xrandr --fb 1280x1024

Bene, è un lavoro!
burtsevyg,

2
Per me dice:Can't open display
ar2015,

2
@ ar2015 Esegui il comando comexrandr --fb 1280x1024 -display :0
Terrance

@Terrance sto ottenendoNo protocol specified Can't open display :0
Rufus il

@Woofas Hai effettuato l'accesso al sistema in Wayland? Per quanto ne so, xrandrfunziona solo con X.Org. Ho appena eseguito di nuovo il mio comando su un sistema 18.04 e funziona benissimo, ma sto usando Xubuntu che è predefinito su X.Org.
Terrance

8

Questa è una soluzione hardware / soluzione che può funzionare con alcuni hardware / driver di grafica.

  • O acquisti una spina DGA VGA (o analogica DVI) o qualcuno la chiama Dummy Dongle.

  • Oppure usa 3 resistori di circa 75 Ohm sull'uscita VGA: 1 → 6, 2 → 7, 3 → 8.

    +/- 10 Ohm può funzionare senza alcun problema. Alcune carte funzionano con un solo resistore. (Come il mio Intel, 2 → 7 o 3 → 8, verrà rilevato come monitor)

Riferimento: come creare connettori fittizi per le schede grafiche .


1
Sembra un'idea interessante. Ci proverò.
John Chapman,

2
Onestamente, questo è il modo più semplice di procedere. Ci sono molti tutorial là fuori per soluzioni alternative, ma questo funziona semplicemente e ti farà risparmiare un sacco di tempo. L'opzione fai-da-te sembra solida, ma le prese fittizie su Amazon costano $ 20. Assicurati solo di averne una buona per supportare la tua risoluzione.
Jason Capriotti,

3

Sono su Ubuntu 18.04, ecco come l'ho risolto:

Ho creato il display virtuale usando la risposta a questa domanda: https://unix.stackexchange.com/questions/378373/add-virtual-output-to-xorg

Creare un file 20-intel.conf:

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

Aggiungi le seguenti informazioni di configurazione nel file:

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

Questo dice alla GPU Intel di creare 2 display virtuali. È possibile modificare il numero di VirtualHead in base alle proprie esigenze.

Quindi ho creato uno script di shell (non dimenticare di impostare il file eseguibile) e l'ho inserito in Applicazioni di avvio:

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

In questo modo, VIRTUAL1 è impostato come output e collegato. All'avvio, una nuova modalità (trovata usando "cvt 1600 900") viene creata e nominata su VIRTUAL1.

L'unico problema è questo: al riavvio manca il dock ... Non l'ho ancora risolto.


3

Considera Xvfb che probabilmente ha meno probabilità di incasinare il display quando colleghi effettivamente un monitor reale

I seguenti comandi avvieranno lightdm su un display falso con ID 1e risoluzione1024x76

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

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

Grazie, questo mi ha aiutato a eseguire Chrome su Debian senza display.
Deda il

0

Per me nessuna delle soluzioni di cui sopra funziona. Per aggiungere un nuovo dispositivo / schermo VIRTUAL1, ciò che ha funzionato per me è:

  • Installa il pacchetto xserver-xorg-video-dummy
  • Aggiorna xorg.conf

Tutti i dettagli sono qui: Aggiungi display falso quando nessun monitor è collegato

Informazioni : per me funziona con la modifica di /etc/X11/xorg.conf invece di /usr/share/X11/xorg.conf.d/xorg.conf

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.