我需要使用CentOS在AWS EC2 GPU实例上执行一些屏幕外渲染程序。但是,尽管我发现Ubuntu非常容易安装,但我不能让CentOS正常工作。
目标是在EC2 GPU实例(没有屏幕或X客户端)上运行一些必不可少的实用程序/测试工具。在以下文章中,我将描述如何设置Ubuntu以及CentOS / Amazon Linux AMI如何失败。
的Ubuntu
在ubuntu 12.04上,一切工作都非常顺利。我使用的EC2环境是:
启动实例后,将执行以下命令:
# Install the Nvidia driver
sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current
# Driver installation needs reboot
sudo reboot now
# Install and configure X window with virtual screen
sudo apt-get install xserver-xorg libglu1-mesa-dev freeglut3-dev mesa-common-dev libxmu-dev libxi-dev
sudo nvidia-xconfig -a --use-display-device=None --virtual=1280x1024
sudo /usr/bin/X :0 &
# OpenGL programs are now workable. Ex. glxinfo, glxgears
DISPLAY=:0 glxinfo
glxgears
也可以在没有物理屏幕或X客户端的情况下在后台运行:$ DISPLAY=:0 glxgears
95297 frames in 5.0 seconds = 19059.236 FPS
95559 frames in 5.0 seconds = 19111.727 FPS
94173 frames in 5.0 seconds = 18834.510 FPS
CentOS或Amazon Linux AMI
“CentOS”和“Amazon Linux AMI”均源自Red Hat Enterprise版本。但是,我无法使它们中的任何一个起作用。
几天前,AWS announced their new G2 instance type。在本文中,建议将Amazon Linux AMI with NVIDIA Drivers用于Linux平台。在此AMI中,都安装了Nvidia驱动程序,X窗口和OpenGL库。但是,尝试执行OpenGL程序时,我只会收到GLX错误消息。
使用以下设置启动EC2实例:
启动后,重现此问题的步骤非常简单:
sudo X :0 & # Start the X window
glxinfo
glxgears
输出为:
$ glxinfo
name of display: :0
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Error: couldn't find RGB GLX visual or fbconfig
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
$ glxgears
Xlib: extension "GLX" missing on display ":0".
Error: couldn't get an RGB, Double-buffered visual
在
/var/log/Xorg.0.log
中发现以下错误:[139017.484] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
我用谷歌搜索并尝试了很多可能的解决方案,例如:
...但是它们都不起作用。
有没有人对此问题有具体的解决方案?我提到的所有内容都应该是可复制的(我尝试了很多次)。如果您能提供可复制的说明以使OpenGL(GLX)在CentOS / Amazon Linux AMI的EC2 GPU实例上运行,我将不胜感激。
最佳答案
lspci | grep VGA
您应该看到busID
是0:3:0
。
使用sudo,将其添加到您的xorg.conf中,如下所示:
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GRID K520"
BusID "0:3:0"
EndSection
这应该修复GLX故障。
关于opengl - 使用CentOS在AWS GPU实例上运行OpenGL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19856192/