我正在使用 vncserver 连接到网络中的 CentOS7 机器。为了利用 3D 图形加速,我使用虚拟GL. 因此,任何 OpenGL 程序都需要使用运行利用 OpenGL。
这很有效,但前提是我先在 DISPLAY 0 上登录并启动至少一个 OpenGL 应用程序。换句话说:
如果我
- 重启机器,
- 直接启动 vncserver 并
- 通过客户端连接它,
没有 OpenGL 应用程序运行,我收到错误
[VGL] ERROR: Could not open display :0.
当我登录 DISPLAY 0 并启动 OpenGL 应用程序时,错误就不会再发生,直到机器再次重新启动。
我的问题:
如何使用运行 OpenGL 应用程序运行重新启动机器后,如果不先在 DISPLAY 0 上运行 OpenGL 应用程序?
答案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
答案2
就我而言,我重新安装了 VirtualGL,这次我将gdm
用户添加到vglusers
组中:
sudo adduser gdm vglusers