Почему VirtualGL вызывает * Не удалось открыть дисплей:0* ошибка после перезагрузки хоста

Я использую vncserver для подключения к машине CentOS7 в сети. Чтобы использовать ускорения 3D-графики, я использую VirtualGL. Таким образом, любая программа OpenGL должна быть запущена с vglrun, чтобы использовать OpenGL.

Это работает как чудо, но только если я вхожу в систему на DISPLAY 0 и заранее запускаю хотя бы одно приложение OpenGL. Другими словами:

Если я

  • перезагрузите машину,
  • непосредственно запустить vncserver и
  • подключиться к нему с клиентом,

приложение OpenGL не работает и я получаю сообщение об ошибке

[VGL] ERROR: Could not open display :0.

Как только я вхожу в систему на DISPLAY 0 и запускаю приложение OpenGL, ошибка больше не возникает, пока машина не будет перезагружена снова.

Мой вопрос:
Как я могу запускать приложения OpenGL с vglrun без предварительного запуска приложения OpenGL на DISPLAY 0 после перезагрузки компьютера?

1 ответ

Как написано в этом вопросе: Настройка сервера vnc и отсутствие физического отображения: Ubuntu 16.04 LTS

Решение проблемы состоит в том, чтобы иметь следующие строки в /etc/X11/xorg.conf:

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    Option         "AllowEmptyInitialConfiguration" "True" # <-- This line is new
    EndSubSection
EndSection
Другие вопросы по тегам