Adicionar exibição falsa quando nenhum monitor estiver conectado


47

Eu tenho um servidor Ubuntu 14.04 que não possui um monitor externo conectado. Eu uso o NoMachine para controlar remotamente a máquina. Quando faço isso, a interface do Unity / Gnome não vê nenhum monitor conectado; portanto, só posso usar 800x600 ao me conectar ao NoMachine. Se eu conectar um monitor, posso definir a resolução para qualquer tamanho que a janela NoMachine esteja no computador remoto.

Existe uma maneira de criar um dispositivo de monitor "falso" no Ubuntu para que eu possa definir uma resolução de área de trabalho no Unity / Gnome?

Respostas:


55

Encontrei uma maneira de fazer isso sem a necessidade de um plug-in fictício: http://blog.mediafederation.com/andy-hawkins/ubuntu-headless-vnc-vesa-800x600-fix/

Instale basicamente um driver fictício:

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

Em seguida, escreva-o no /usr/share/X11/xorg.conf.d/xorg.confarquivo (crie um, se ele não existir):

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

Em seguida, reinicie o computador.


1
Por favor, edite a resposta, o pacote está sendo atualizado. Tente sudo apt-cache search video-dummy.
Cctan 12/08/2015

1
Criando o arquivo /usr/share/X11/xorg.conf.d/xorg.confcom esse conteúdo, ou o arquivo xpra.org/xorg.conf , meu Ubuntu não inicializa mais (fica preso na tela do logotipo do Ubuntu antes da tela de login). Qual pode ser o problema?
David Portabella

2
O link na resposta parece estar quebrado.
rsethc

4
Também quebrou meu sistema operacional. Não inicializou. É remoto e agora eu preciso entrar em um carro e dirigir 1 hora. Coisas arriscadas :-)
Derek

1
Isso funciona para mim! No entanto, há um problema que, se eu conectar um monitor real, é sempre tela preta
soulmachine

20

Especifique a resolução em uma área de trabalho Ubuntu 14.04 sem um monitor conectado:

Na página do manual 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.

Portanto, use o comando após conectar:

xrandr --fb 1280x1024

Legal, é trabalho!
burtsevyg

2
Para mim, é o seguinte:Can't open display
ar2015 /

2
@ ar2015 Execute o comando comoxrandr --fb 1280x1024 -display :0
Terrance

@Terrance que estou recebendoNo protocol specified Can't open display :0
Rufus

@Woofas Você está logado no sistema em Wayland? Tanto quanto eu sei, xrandrsó funciona com o X.Org. Acabei de executar meu comando em um sistema 18.04 novamente e funciona bem, mas estou usando o Xubuntu, que é o padrão do X.Org.
Terrance

8

Esta é uma solução / solução de hardware que pode funcionar para alguns drivers / hardware de gráficos.

  • Você compra um plugue Dummy VGA (ou analógico DVI) ou alguns chamando-o Dummy Dongle.

  • Ou use apenas 3 resistores de cerca de 75 Ohm na saída VGA: 1 → 6, 2 → 7, 3 → 8.

    +/- 10 Ohm pode funcionar sem nenhum problema. Algumas placas funcionam com apenas um resistor. (Como o meu Intel, 2 → 7 ou 3 → 8, será detectado como monitor)

Referência: Como criar plugues fictícios para suas placas gráficas .


1
Parece uma idéia interessante. Vou tentar.
John Chapman

2
Honestamente, este é o caminho mais simples a seguir. Existem muitos tutoriais disponíveis para soluções alternativas, mas isso simplesmente funciona e poupa muito tempo. A opção DIY parece sólida, mas os plugues fictícios na Amazon custam US $ 20. Apenas certifique-se de obter um bom suporte para sua resolução.
Jason Capriotti 22/02

3

Estou no Ubuntu 18.04, é assim que eu resolvi:

Eu criei a exibição virtual usando a resposta para esta pergunta: https://unix.stackexchange.com/questions/378373/add-virtual-output-to-xorg

Crie um arquivo 20-intel.conf:

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

Adicione as seguintes informações de configuração ao arquivo:

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

Isso informa à GPU da Intel para criar 2 monitores virtuais. Você pode alterar o número de VirtualHeads de acordo com suas necessidades.

Então eu criei um script de shell (não se esqueça de definir o executável) e coloquei em Aplicativos de inicialização:

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

Dessa forma, o VIRTUAL1 é definido como saída e conectado. Na inicialização, um novo modo (encontrado usando "cvt 1600 900") está sendo criado e nomeado para VIRTUAL1.

O único problema com isso é: o dock está ausente na reinicialização ... Ainda não foi resolvido.


3

Considere o Xvfb, que provavelmente é menos provável que atrapalhe a exibição quando você realmente conectar um monitor real

Os comandos a seguir iniciarão o lightdm em uma tela falsa com ID 1e resolução1024x76

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

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

Obrigado, isso me ajudou a rodar o chrome no Debian sem exibição.
Deda 2/11

0

Para mim, nenhuma das soluções acima funciona. Para adicionar um novo dispositivo / tela VIRTUAL1, o que funcionou para mim é:

  • Instale o pacote xserver-xorg-video-dummy
  • Atualizar xorg.conf

Todos os detalhes estão aqui: Adicionar exibição falsa quando nenhum monitor estiver conectado

Info : para mim, ele funciona na edição do /etc/X11/xorg.conf em vez de /usr/share/X11/xorg.conf.d/xorg.conf

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.