Agregar pantalla falsa cuando no se conecta ningún monitor

47

Tengo un servidor Ubuntu 14.04 que no tiene un monitor externo conectado. Yo uso NoMachine para controlar remotamente la máquina. Cuando lo hago, la interfaz Unity / Gnome no ve ningún monitor conectado, por lo que solo puedo usar 800x600 cuando me conecto con NoMachine. Si conecto un monitor, puedo configurar la resolución a cualquier tamaño que tenga la ventana NoMachine en la computadora remota.

¿Hay alguna forma de crear un dispositivo de monitor "falso" en Ubuntu para poder configurar una resolución de escritorio en Unity / Gnome?

John Chapman
fuente

Respuestas:

55

Encontré una manera de hacerlo sin requerir un enchufe ficticio: http://blog.mediafederation.com/andy-hawkins/ubuntu-headless-vnc-vesa-800x600-fix/

Básicamente instale un controlador ficticio:

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

Luego escríbalo en el /usr/share/X11/xorg.conf.d/xorg.confarchivo (cree uno, si no existe):

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

Luego reinicie la computadora.

John Chapman
fuente
1
Edite la respuesta, el paquete se está actualizando. Tratar sudo apt-cache search video-dummy.
cctan
1
Al crear el archivo /usr/share/X11/xorg.conf.d/xorg.confcon este contenido, o el de xpra.org/xorg.conf , mi Ubuntu ya no se inicia (se atasca con la pantalla del logotipo de Ubuntu antes de la pantalla de inicio de sesión). ¿Cual puede ser el problema?
David Portabella
2
El enlace en la respuesta parece estar roto.
rsethc
44
También rompió mi os. No arrancó Es remoto y ahora necesito subirme a un automóvil y conducir 1 hora. Cosas arriesgadas :-)
Derek
1
Esto funciona para mi! Sin embargo, existe el problema de que si conecto un monitor real siempre es pantalla negra
soulmachine
20

Especifique la resolución en un escritorio Ubuntu 14.04 sin un monitor conectado:

Desde la página de manual de 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.

Por lo tanto, use el comando después de conectar:

xrandr --fb 1280x1024
Eric Leschinski
fuente
Genial, es trabajo!
burtsevyg
2
Para mí dice:Can't open display
ar2015
2
@ ar2015 Ejecute el comando comoxrandr --fb 1280x1024 -display :0
Terrance
@Terrance que estoy recibiendoNo protocol specified Can't open display :0
Rufus
@Woofas ¿Has iniciado sesión en el sistema en Wayland? Que yo sepa, xrandrsolo funciona con X.Org. Acabo de ejecutar mi comando en un sistema 18.04 nuevamente y funciona bien, pero estoy usando Xubuntu que está predeterminado en X.Org.
Terrance
8

Esta es una solución de hardware / entorno de trabajo que puede funcionar para algunos controladores / hardware de gráficos.

  • O compras un enchufe Dummy VGA (o DVI analógico) o algunos lo llaman Dummy Dongle.

  • O simplemente use 3 resistencias de alrededor de 75 ohmios en la salida VGA: 1 → 6, 2 → 7, 3 → 8.

    +/- 10 Ohm pueden funcionar sin ningún problema. Algunas tarjetas funcionan con una sola resistencia. (Al igual que mi Intel, 2 → 7 o 3 → 8, se detectará como monitor)

Referencia: Cómo crear tapones ciegos para sus tarjetas gráficas .

user.dz
fuente
1
Suena como una idea interesante. Lo intentaré.
John Chapman
2
Honestamente, esta es la forma más sencilla de hacerlo. Hay muchos tutoriales disponibles para soluciones alternativas, pero esto simplemente funciona y le ahorrará mucho tiempo. La opción de bricolaje parece sólida, pero los enchufes ficticios en Amazon cuestan $ 20. Solo asegúrese de obtener una buena para respaldar su resolución.
Jason Capriotti
3

Estoy en Ubuntu 18.04, así es como lo resolví:

He creado la pantalla virtual usando la respuesta a esta pregunta: https://unix.stackexchange.com/questions/378373/add-virtual-output-to-xorg

Cree un archivo 20-intel.conf:

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

Agregue la siguiente información de configuración en el archivo:

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

Esto le dice a la GPU Intel que cree 2 pantallas virtuales. Puede cambiar la cantidad de VirtualHeads según sus necesidades.

Luego hice un script de shell (no olvide configurar el ejecutable) y lo puse en 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

De esa forma, VIRTUAL1 se configura como salida y se conecta. En el arranque, se crea un nuevo modo (que se encuentra usando "cvt 1600 900") y se asigna a VIRTUAL1.

El único problema con esto es: falta el muelle al reiniciar ... Todavía no lo he resuelto.

Stefan Lemmens
fuente
3

Considere Xvfb, que es menos probable que estropee la pantalla cuando realmente conecta un monitor real

Los siguientes comandos iniciarán lightdm en una pantalla falsa con ID 1y resolución1024x76

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

#exec gnome-session & # use gnome-session instead of lightdm
exec lightdm-session &
Rufus
fuente
Gracias, esto me ayudó a ejecutar Chrome en Debian sin pantalla.
Deda
0

Para mí, ninguna de las soluciones anteriores funciona. Para agregar un nuevo dispositivo / pantalla VIRTUAL1, lo que me ha funcionado es:

  • Instale el paquete xserver-xorg-video-dummy
  • Actualizar xorg.conf

Todos los detalles están aquí: Agregar pantalla falsa cuando no se conecta ningún monitor

Información : para mí, funciona editando /etc/X11/xorg.conf en lugar de /usr/share/X11/xorg.conf.d/xorg.conf

sangorys
fuente