WebGL auf einem Amazon EC2-Server ausführen

8

Ich versuche, WebGL auf meinem Amazon EC2-Server zum Laufen zu bringen (Migration von einem bürogebundenen Mac Mini, der viele Probleme hat).

Ich habe einige Tage gearbeitet, um das zum Laufen zu bringen, aber ich werde versuchen, dort anzufangen, wo ich angefangen habe.

Zuerst habe ich das folgende AMI Ubuntu Server 12.04 LTS (HVM) - ami-8c8675fbmit Instanztyp installiert cg1.4xlarge. Ich habe diesen Instanztyp ausgewählt, damit er Cirrus Logic GD 5446für grafische Ausführungen verwendet wird.

Natürlich ist die primäre Installation kopflos, also musste ich diesen Server von Grund auf neu erstellen, was ich zuerst getan habe, ist.

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

Danach habe ich einen LAMP-Server installiert (der übliche) und den Kernel auf aktualisiert 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.

Ich habe auch die xorg edgers PPA unter https://launchpad.net/~xorg-edgers/+archive/ppa registriert .

Nach dem Neustart musste ich einen Bildschirm mit meinem Server verbinden. Ich entschied mich dafür, dies mit vnc4server zu tun.

Das ist also das Übliche und mein xstartup sieht so aus:

#!/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 &

Nachdem ich meinen VNC-Server gestartet und verbunden hatte, habe ich meine glfxinfo ausgecheckt, also DISPLAY=:1 glxinfo(Anzeige: 1 ist der VNC)

Die erste Ausgabe war:

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

Ich habe dieses Problem behoben, indem ich das nvidia-currentPaket installiert habe . Ich wusste bereits, dass WebGL ausgeführt werden kann. Ich benötigte mindestens GLX Version 1.3. Also gab ich einen glxinfoweiteren Schwung und das ergab die folgende Ausgabe:

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

Wie Sie sehen, reicht die GLX-Version nicht aus, um WebGL auszuführen. Ich habe alle Anleitungen dazu ausprobiert. Keiner von ihnen scheint die GLX-Version zu erhöhen. Sie fragen sich wahrscheinlich, warum WebGL? Nun, ich habe dies auf einem Mac Mini-Server ausgeführt, der perfekt funktioniert hat, um ein schönes 3D-Video zu erstellen. Sie möchten den Code nicht bearbeiten, sondern nur in der Cloud bereitstellen. Habe auch den Windows Server ausprobiert, lief dort aber in vielen Problemen mit, ffmpegso dass dies auch keine Option ist. Ich denke jetzt an einen Mac OS Cloud Server, frage mich aber immer noch, was hier falsch läuft.

Meine Frage: Ist das überhaupt auf meinem Amazon EC2-Server möglich? Und wenn ja, wie?

PS Wenn ich den Chrom-Browser über die Befehlszeile starte, ist dies mein Fehler:

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.
Pepijn
quelle

Antworten:

1

Das Ausführen von OpenGL-Anwendungen in einer virtuellen Maschine wird höchstwahrscheinlich keine gute Leistung bringen. Zunächst können Sie die Hardwarebeschleunigung nicht verwenden, sondern müssen auf einen Software-Renderer zurückgreifen. Dies ist, was die erste Fehlermeldung Ihnen sagt:

libGL error: failed to load driver: swrast

Die Installation des Nvidia-Treibers hilft nicht, da keine Nvidia-Karte verfügbar ist - daher die zweite Fehlermeldung. Die Verwendung eines Software-Renderers ist möglich, jedoch sehr langsam.

Die Antwort lautet also: Ja, es ist möglicherweise möglich, das zu tun, was Sie wollen, aber es sei denn, es gibt dedizierte Hardware, die mit VNC auf dem virtuellen Host gut funktioniert, ist dies keine schöne Erfahrung.

Antiguru
quelle