Tôi đang cố gắng để WebGL hoạt động trên máy chủ Amazon EC2 của mình (di chuyển từ Mac Mini có văn phòng, có rất nhiều trục trặc).
Đã làm việc một vài ngày để chạy nó, nhưng tôi sẽ cố gắng bắt đầu từ nơi tôi bắt đầu.
Đầu tiên tôi cài đặt AMI sau Ubuntu Server 12.04 LTS (HVM) - ami-8c8675fb
với loại thể hiện cg1.4xlarge
. Tôi đã chọn loại thể hiện đó để nó đi kèm với một Cirrus Logic GD 5446
thực thi đồ họa.
Tất nhiên cài đặt chính là không đầu, vì vậy tôi phải xây dựng máy chủ này từ đầu, điều đầu tiên tôi làm là.
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
Sau đó tôi đã cài đặt một máy chủ LAMP (thông thường) và tôi đã cập nhật kernel 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
.
Tôi cũng đã đăng ký PPA xorg edgers tại https://launchpad.net/~xorg-edgers/+archive/ppa .
Sau khi khởi động lại, tôi phải kết nối màn hình với máy chủ của mình, tôi đã chọn thực hiện việc này với vnc4server.
Vì vậy, đó là thông thường và xstartup của tôi trông như thế này:
#!/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 &
Sau khi khởi động máy chủ VNC của tôi và kết nối nó, tôi đã kiểm tra glfxinfo của mình, vì vậy DISPLAY=:1 glxinfo
(Hiển thị: 1 là VNC)
Đầu ra đầu tiên là:
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
Tôi đã sửa cái này bằng cách cài đặt nvidia-current
gói. Tôi đã biết để WebGL chạy, tôi cần ít nhất phiên bản GLX 1.3. Vì vậy, tôi đã đưa ra glxinfo
một cú swing khác và điều đó đã cho đầu ra sau:
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
Như bạn có thể thấy phiên bản GLX không đủ để chạy WebGL, tôi đã thử tất cả các hướng dẫn về điều này. Không ai trong số họ dường như nâng cao phiên bản GLX. Có lẽ bạn đang hỏi, tại sao WebGL, tôi đã chạy cái này trên máy chủ Mac Mini, nó hoạt động hoàn hảo để tạo ra một video 3D đẹp. Không tìm cách chỉnh sửa mã, chỉ tìm cách đưa nó lên trong Đám mây. Cũng đã thử máy chủ windows, nhưng gặp rất nhiều vấn đề với ffmpeg
đó nên đó cũng không phải là một lựa chọn. Bây giờ nghĩ đến việc có một máy chủ đám mây Mac OS, nhưng vẫn tự hỏi có gì sai ở đây.
Vì vậy, câu hỏi của tôi: thậm chí có thể làm điều này trên máy chủ Amazon EC2 của tôi không? Và nếu vậy thì thế nào?
PS Khi tôi chạy trình duyệt chromium từ dòng lệnh, đây là lỗi của tôi:
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.