在CentOS 7上启动X11服务器,无屏幕但有显卡

在CentOS 7上启动X11服务器,无屏幕但有显卡

我想从与 X11 服务器通信的应用程序进行 OpenGL 渲染。应用程序读取变量的值DISPLAY

我可以使用 CentOS 7 机器,它有一个很好的显卡,能够进行 3D 渲染,但我没有插入显示器。

当我运行xstart, 启动 X11 服务器时,出现以下错误:

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

如何在没有物理显示器的情况下启动 X11 服务器以在显卡上进行渲染?

这个盒子位于服务器机房中,因此我无法将物理显示器插入其中。

此外,xvfb软件渲染器可能对此任务没有用处,因为它不处理渲染所需的指令。我需要使用图形适配器。

以下是我可以使用的图形适配器:

# 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)

这是我的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

我可以发布任何其他有用日志的记录。感谢您的任何建议!

答案1

我以前遇到过这个问题。 不幸的是,我能想到的最佳答案是硬件解决方案:通过将 VGA 终结器插入 VGA 输出来欺骗显卡,使其认为已安装显示器。您可以在家制作一个或购买一个;谷歌搜索“VGA终结者”会返回大量两者的结果。

另一种选择可能是在无头系统上运行 VNC 服务器,但我不确定显卡是否可以渲染到 VNC 输出。

相关内容