Почему 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