J'essaie de faire fonctionner WebGL sur mon serveur Amazon EC2 (migration à partir d'un Mac Mini de bureau, qui a beaucoup de hoquet).
J'ai travaillé quelques jours pour que cela fonctionne, mais je vais essayer de commencer là où j'ai commencé.
J'ai d'abord installé l'AMI suivante Ubuntu Server 12.04 LTS (HVM) - ami-8c8675fb
avec le type d'instance cg1.4xlarge
. J'ai choisi ce type d'instance pour qu'il soit accompagné d'un Cirrus Logic GD 5446
pour les exécutions graphiques.
Bien sûr, l'installation principale est sans tête, j'ai donc dû construire ce serveur à partir de zéro, ce que j'ai d'abord fait.
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
Après cela, j'ai installé un serveur LAMP (l'habituel) et j'ai mis à jour le noyau vers 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
.
J'ai également enregistré le PPA xorg edgers sur https://launchpad.net/~xorg-edgers/+archive/ppa .
Après le redémarrage, j'ai dû connecter un écran à mon serveur, j'ai choisi de le faire avec vnc4server.
Voilà donc l'habituel et mon xstartup ressemble à ceci:
#!/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 &
Après avoir démarré mon serveur VNC et l'avoir connecté, j'ai vérifié mon glfxinfo, donc DISPLAY=:1 glxinfo
(Affichage: 1 est le VNC)
Le premier résultat a été:
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
J'ai corrigé celui-ci en installant le nvidia-current
package. Je savais déjà que WebGL pouvait fonctionner, j'avais besoin de GLX version 1.3 au moins. J'ai donc donné glxinfo
un autre swing et qui a donné la sortie suivante:
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
Comme vous pouvez voir que la version GLX ne suffit pas pour exécuter WebGL, j'ai essayé tous les guides à ce sujet. Aucun d'entre eux ne semble augmenter la version GLX. Vous vous demandez probablement pourquoi WebGL, eh bien je l'ai fait fonctionner sur un serveur Mac Mini, qui a parfaitement fonctionné pour créer une belle vidéo 3D. Ne cherchez pas à modifier le code, cherchez simplement à le récupérer dans le Cloud. J'ai également essayé le serveur Windows, mais il a rencontré beaucoup de problèmes ffmpeg
, ce n'est donc pas une option. Vous songez maintenant à obtenir un serveur cloud Mac OS, mais vous vous demandez toujours ce qui ne va pas ici.
Donc ma question: est-il même possible de le faire sur mon serveur Amazon EC2? Et si oui, comment?
PS Lorsque j'exécute chrome-browser à partir de la ligne de commande, voici mon erreur:
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.