Uruchamianie WebGL na serwerze Amazon EC2


8

Usiłuję zmusić WebGL do pracy na moim serwerze Amazon EC2 (migracja z biurowego Maca Mini, który ma wiele czkawek).

Pracowałem kilka dni, aby uruchomić to, ale postaram się zacząć od początku.

Najpierw zainstalowałem następujący AMI Ubuntu Server 12.04 LTS (HVM) - ami-8c8675fbz typem instancji cg1.4xlarge. Wybrałem ten typ instancji, więc jest on wyposażony w Cirrus Logic GD 5446graficzne wykonanie.

Oczywiście podstawowa instalacja jest bezgłowa, więc musiałem zbudować ten serwer od zera, co najpierw zrobiłem.

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

Następnie zainstalowałem serwer LAMP (zwykle) i zaktualizowałem jądro do 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.

Zarejestrowałem również PPA Edgery PPA na https://launchpad.net/~xorg-edgers/+archive/ppa .

Po ponownym uruchomieniu musiałem podłączyć ekran do mojego serwera, postanowiłem to zrobić za pomocą vnc4server.

Więc to jest normalne i mój xstartup wygląda następująco:

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

Po uruchomieniu serwera VNC i podłączeniu go sprawdziłem glfxinfo, więc DISPLAY=:1 glxinfo(Wyświetlacz: 1 to VNC)

Pierwsze wyjście to:

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

Naprawiłem ten, instalując nvidia-currentpakiet. Wiedziałem już, że WebGL może działać, potrzebowałem przynajmniej wersji GLX 1.3. Dałem więc glxinfokolejną huśtawkę, która dała następujący wynik:

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

Jak widać wersja GLX nie wystarcza do uruchomienia WebGL, wypróbowałem wszystkie przewodniki na ten temat. Żaden z nich nie wydaje się podnosić wersji GLX. Prawdopodobnie pytasz, dlaczego WebGL, no cóż, miałem to uruchomione na serwerze Mac Mini, który działał idealnie, aby stworzyć ładne wideo 3D. Nie chcę edytować kodu, tylko chcę go umieścić w chmurze. Wypróbowałem również serwer Windows, ale działał z wieloma problemami, ffmpegwięc nie jest to również opcja. Teraz zastanawiam się nad uzyskaniem serwera w chmurze Mac OS, ale wciąż zastanawiam się, co się tutaj dzieje.

Więc moje pytanie: czy w ogóle można to zrobić na moim serwerze Amazon EC2? A jeśli tak, to w jaki sposób?

PS Kiedy uruchamiam przeglądarkę chromową z wiersza poleceń, to jest mój błąd:

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.

Odpowiedzi:


1

Uruchamianie aplikacji OpenGL na maszynie wirtualnej prawdopodobnie nie będzie działało dobrze. Przede wszystkim nie można korzystać z akceleracji sprzętowej, ale trzeba wrócić do mechanizmu renderującego oprogramowanie. Oto, co mówi pierwszy komunikat o błędzie:

libGL error: failed to load driver: swrast

Instalacja sterownika Nvidia nie pomaga, ponieważ nie ma dostępnej karty Nvidia - stąd drugi komunikat o błędzie. Korzystanie z renderera oprogramowania jest możliwe, ale będzie bardzo wolne.

Tak więc odpowiedź brzmi: tak, może być możliwe robienie tego, co chcesz, ale chyba że na wirtualnym hoście jest dedykowany sprzęt, który dobrze gra z VNC, nie będzie to przyjemne doświadczenie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.