让 WebGL 在 Amazon EC2 服务器上运行

让 WebGL 在 Amazon EC2 服务器上运行

我正在尝试让 WebGL 在我的 Amazon EC2 服务器上运行(从办公室的 Mac Mini 迁移,存在很多问题)。

花了几天的时间才让它运行起来,但我会尝试从我开始的地方开始。

首先,我安装了以下 AMI Ubuntu Server 12.04 LTS (HVM) - ami-8c8675fb,其实例类型为cg1.4xlarge。我选择了该实例类型,因此它带有一个Cirrus Logic GD 5446用于图形执行的。

当然,主要安装是无头的,所以我必须从头开始构建这个服务器,我首先做的是。

sudo apt-get install ubuntu-desktop
sudo apt-get install gdm
sudo /etc/init.d/gdm start
sudo dpkg-reconfigure xserver-xorg
sudo apt-get install gnome-core

之后我安装了一个 LAMP 服务器(通常),并将内核更新为Linux ip-172-31-29-168 3.8.0-37-generic #53~precise1-Ubuntu SMP Wed Feb 19 21:37:54 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

我还在以下网址注册了 xorg edgers PPAhttps://launchpad.net/~xorg-edgers/+archive/ppa

重新启动后,我必须将屏幕连接到我的服务器,我选择使用 vnc4server 来执行此操作。

所以这是通常的,我的 xstartup 看起来像这样:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
gnome-session --session=gnome-classic &

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#x-terminal-emulator -geometry 1280x1024+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &

启动我的 VNC 服务器并连接后,我检查了我的 glfxinfo,因此DISPLAY=:1 glxinfo(显示:1 是 VNC)

第一个输出是:

name of display: :1
libGL error: failed to load driver: swrast
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
Error: couldn't find RGB GLX visual or fbconfig
Error: couldn't find RGB GLX visual or fbconfig

我通过安装包修复了这个问题nvidia-current。我已经知道要运行 WebGL,至少需要 GLX 1.3 版。所以我glxinfo又试了一下,得到了以下输出:

ubuntu@ip-172-31-29-168:~$ DISPLAY=:1 glxinfo | grep version
Xlib:  extension "NV-GLX" missing on display ":1".
Xlib:  extension "NV-GLX" missing on display ":1".
server glx version string: 1.2
client glx version string: 1.4
GLX version: 1.2
OpenGL core profile version string: 1.3 Mesa 4.0.4
OpenGL version string: 1.3 Mesa 4.0.4

如您所见,GLX 版本不足以运行 WebGL,我尝试了所有相关指南。似乎没有一个指南能提高 GLX 版本。您可能会问,为什么是 WebGL,我在 Mac Mini 服务器上运行过它,它完美地创建了漂亮的 3D 视频。不是想编辑代码,只是想将其上传到云端。还尝试了 Windows 服务器,但在ffmpeg那里遇到了很多问题,所以这也不是个选择。现在想买一个 Mac OS 云服务器,但仍然想知道这里出了什么问题。

所以我的问题是:在我的 Amazon EC2 服务器上是否可以执行此操作?如果可以,怎么做?

PS 当我从命令行运行 chromium-browser 时,出现以下错误:

ubuntu@ip-172-31-29-168:~/.vnc$ DISPLAY=:1 chromium-browser --enable-webgl
[12243:12243:0307/155523:ERROR:gl_surface_glx.cc(413)] GLX 1.3 or later is required.
[12243:12243:0307/155523:ERROR:gl_surface_x11.cc(58)] GLSurfaceGLX::InitializeOneOff failed.

答案1

在虚拟机中运行 OpenGL 应用程序很可能不会表现良好。首先,您无法使用硬件加速,而必须回退到软件渲染器。这是第一条错误消息告诉您的内容:

libGL error: failed to load driver: swrast

安装 Nvidia 驱动程序没有帮助,因为没有可用的 Nvidia 卡 - 因此出现第二条错误消息。使用软件渲染器是可能的,但速度会非常慢。

所以答案是:是的,也许可以做你想做的事,但除非有专用硬件可以与虚拟主机上的 VNC 很好地配合,否则这不会是一个好的体验。

相关内容