使WebGL在Amazon EC2服务器上运行


8

我正在尝试使WebGL在我的Amazon EC2服务器上工作(从有很多麻烦的办公室绑定的Mac Mini迁移)。

工作了几天使它运行,但是我会尝试从我开始的地方开始。

首先,我安装了Ubuntu Server 12.04 LTS (HVM) - ami-8c8675fb实例类型为以下的AMI 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

我还在https://launchpad.net/~xorg-edgers/+archive/ppa注册了xorg edgers 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当我从命令行运行Chrome浏览器时,这是我的错误:

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.

Answers:


1

在虚拟机中运行OpenGL应用程序很可能效果不佳。首先,您不能使用硬件加速,而必须使用软件渲染器。这是第一条错误消息告诉您的内容:

libGL error: failed to load driver: swrast

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

因此答案是:是的,可能会做您想做的事,但是除非虚拟主机上的专用硬件与VNC配合得很好,否则这将不是一个很好的体验。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.