Inicie o servidor X11 no CentOS 7 sem tela, mas com uma placa gráfica

2

Eu gostaria de renderizar OpenGL a partir de um aplicativo que fala com um servidor X11. O aplicativo lê o valor da variável DISPLAY .

Eu tenho acesso a uma caixa do CentOS 7 que tem uma bela placa gráfica capaz de renderizar em 3D, mas não tenho um monitor conectado a ela.

Quando executo o xstart , para iniciar o servidor X11, recebo o seguinte erro:

Fatal server error:
(EE) no screens found(EE)

Como faço para iniciar um servidor X11 para renderização em uma placa gráfica, sem exibição física?

Esta caixa fica em uma sala de servidores, por isso não posso conectar uma exibição física a ela.

Além disso, xvfb ou renderizadores de software talvez não sejam úteis para essa tarefa, porque não manipula as instruções necessárias para renderização. Eu precisaria usar o adaptador gráfico.

Aqui estão os adaptadores gráficos disponíveis para mim:

# lspci | egrep 'VGA|3D'
04:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1)
0a:00.0 VGA compatible controller: Matrox Electronics Systems Ltd. G200eR2 (rev 01)

Aqui está o meu arquivo xorg.conf :

# more /etc/X11/xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 375.20  (buildmeister@swio-display-x86-rhel47-06)  Tue Nov 15 17:49:44 PST 2016

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
    FontPath        "/usr/share/fonts/default/Type1"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Eu posso postar transcrições de outros registros úteis. Obrigado por qualquer conselho!

    
por Alex Reynolds 19.12.2016 / 21:15

1 resposta

1

Já me deparei com esse problema antes. Infelizmente, a melhor resposta que consegui criar é uma solução de hardware: engane a placa gráfica para pensar que um monitor é instalado conectando um terminador VGA na saída VGA . Você pode fazer um em casa ou comprar um; pesquisar por "VGA terminator" retorna muitos resultados para ambos.

Outra opção pode ser executar um servidor VNC no sistema sem cabeça, mas não tenho certeza se a placa gráfica pode renderizar para uma saída VNC.

    
por 19.12.2016 / 22:40