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