Запуск WebGL на сервере Amazon EC2

8

Я пытаюсь заставить 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.

Я также зарегистрировал PPA для xorg edgers по адресу https://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.
Pepijn
источник

Ответы:

1

Запуск приложений OpenGL внутри виртуальной машины, скорее всего, не будет работать хорошо. Прежде всего, вы не можете использовать аппаратное ускорение, но должны прибегнуть к программному рендереру. Вот что говорит вам первое сообщение об ошибке:

libGL error: failed to load driver: swrast

Установка драйвера Nvidia не помогает, так как карта Nvidia недоступна - отсюда и второе сообщение об ошибке. Использование программного рендерера возможно, но будет очень медленным.

Таким образом, ответ таков: да, возможно, можно делать то, что вы хотите, но если на виртуальном хосте нет выделенного оборудования, которое прекрасно работает с VNC, это не будет хорошим опытом.

antiguru
источник