Membuat WebGL dijalankan di server Amazon EC2

8

Saya mencoba membuat WebGL berfungsi di server Amazon EC2 saya (bermigrasi dari Mac Mini yang terikat kantor, yang memiliki banyak masalah).

Bekerja beberapa hari untuk menjalankan ini, tetapi saya akan mencoba untuk memulai dari tempat saya mulai.

Pertama saya menginstal AMI berikut Ubuntu Server 12.04 LTS (HVM) - ami-8c8675fbdengan tipe instance cg1.4xlarge. Saya memilih jenis instance sehingga dilengkapi dengan Cirrus Logic GD 5446eksekusi grafis.

Tentu saja instalasi utama tanpa kepala, jadi saya harus membangun server ini dari awal, apa yang saya lakukan pertama adalah.

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

Setelah itu saya menginstal server LAMP (yang biasa) dan saya memperbarui kernel ke 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.

Saya juga mendaftarkan PPA edgers xorg di https://launchpad.net/~xorg-edgers/+archive/ppa .

Setelah reboot saya harus menghubungkan layar ke server saya, saya memilih untuk melakukan ini dengan vnc4server.

Jadi itu yang biasa dan xstartup saya terlihat seperti ini:

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

Setelah memulai server VNC saya dan menghubungkannya, saya memeriksa glfxinfo saya, jadi DISPLAY=:1 glxinfo(Tampilan: 1 adalah VNC)

Output pertama adalah:

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

Saya memperbaiki yang ini dengan menginstal nvidia-currentpaket. Saya sudah tahu untuk menjalankan WebGL, saya membutuhkan GLX versi 1.3 setidaknya. Jadi saya memberi glxinfoayunan lain dan itu memberikan hasil sebagai berikut:

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

Seperti yang Anda lihat versi GLX tidak cukup untuk menjalankan WebGL, saya mencoba semua panduan tentang ini. Tak satu pun dari mereka tampaknya menaikkan versi GLX. Anda mungkin bertanya, mengapa WebGL, saya menjalankan ini di server Mac Mini, yang bekerja sempurna untuk membuat video 3D yang bagus. Tidak ingin mengedit kode, hanya ingin mendapatkannya di Cloud. Juga mencoba windows server, tetapi berlari di banyak masalah dengan ffmpegitu jadi itu juga bukan pilihan. Sekarang berpikir untuk mendapatkan server cloud Mac OS, tetapi masih bertanya-tanya apa yang salah di sini.

Jadi pertanyaan saya: apakah mungkin melakukan ini di server Amazon EC2 saya? Dan jika demikian, bagaimana?

PS Ketika saya menjalankan chromium-browser dari command-line, ini adalah kesalahan saya:

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
sumber

Jawaban:

1

Menjalankan aplikasi OpenGL di dalam mesin virtual kemungkinan besar tidak akan berkinerja baik. Pertama-tama, Anda tidak dapat menggunakan akselerasi perangkat keras tetapi harus kembali ke perender perangkat lunak. Inilah yang pesan kesalahan pertama memberi tahu Anda:

libGL error: failed to load driver: swrast

Menginstal driver Nvidia tidak membantu karena tidak ada kartu Nvidia tersedia - maka pesan kesalahan kedua. Menggunakan perender perangkat lunak dimungkinkan, tetapi akan sangat lambat.

Jadi jawabannya adalah: Ya, itu mungkin untuk melakukan apa yang Anda inginkan tetapi kecuali ada perangkat keras khusus yang bekerja dengan baik dengan VNC pada virtual host, ini tidak akan menjadi pengalaman yang menyenangkan.

antiguru
sumber