Bắt WebGL chạy trên máy chủ Amazon EC2


8

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-8c8675fbvớ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 5446thự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-currentgó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 glxinfomộ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.

Câu trả lời:


1

Chạy các ứng dụng OpenGL bên trong một máy ảo rất có thể sẽ không hoạt động tốt. Trước hết, bạn không thể sử dụng tăng tốc phần cứng mà phải quay lại trình kết xuất phần mềm. Đây là những gì thông báo lỗi đầu tiên cho bạn biết:

libGL error: failed to load driver: swrast

Cài đặt trình điều khiển Nvidia không giúp ích vì không có thẻ Nvidia - do đó có thông báo lỗi thứ hai. Sử dụng trình kết xuất phần mềm là có thể, nhưng nó sẽ rất chậm.

Vì vậy, câu trả lời là: Có, có thể làm những gì bạn muốn nhưng trừ khi có phần cứng chuyên dụng chơi độc đáo với VNC trên máy chủ ảo thì đây sẽ không phải là một trải nghiệm hay.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.