Назад | Перейти на главную страницу

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

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

Это работает как шарм, но только если я вхожу в систему на ДИСПЛЕЕ 0 и заранее запускаю хотя бы одно приложение OpenGL. Другими словами:

Если я

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

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

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

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

Как указано в этом вопросе: Настройка сервера 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