รับ 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

หลังจากนั้นผมติดตั้งเซิร์ฟเวอร์โคมไฟ (ปกติ) และฉันปรับปรุง 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เพื่อ

ฉันยังลงทะเบียน xorg edgers PPA ที่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(Display: 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 ซึ่งทำงานได้อย่างสมบูรณ์แบบในการสร้างวิดีโอ 3 มิติที่ดี ไม่ต้องการแก้ไขโค้ดเพียงค้นหาเพื่อติดตั้งในคลาวด์ ยังลองใช้ windows server แต่มีปัญหามากมายที่ffmpegนั่นนั่นก็ไม่ใช่ทางเลือก ตอนนี้กำลังคิดว่าจะได้เซิร์ฟเวอร์คลาวด์ Mac OS แต่ก็ยังสงสัยว่ามีอะไรผิดปกติเกิดขึ้นที่นี่

ดังนั้นคำถามของฉัน: เป็นไปได้ไหมที่จะทำสิ่งนี้บนเซิร์ฟเวอร์ Amazon EC2 ของฉัน และถ้าเป็นเช่นนั้นได้อย่างไร

PS เมื่อฉันเรียกใช้โครเมียมเบราว์เซอร์จากบรรทัดคำสั่งนี่เป็นข้อผิดพลาดของฉัน:

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.

คำตอบ:


1

การเรียกใช้แอปพลิเคชัน OpenGL ภายในเครื่องเสมือนมีแนวโน้มที่จะทำงานได้ไม่ดี ก่อนอื่นคุณไม่สามารถใช้การเร่งด้วยฮาร์ดแวร์ แต่ต้องถอยกลับไปที่ตัวแสดงซอฟต์แวร์ นี่คือสิ่งที่ข้อความแสดงข้อผิดพลาดแรกบอกคุณ:

libGL error: failed to load driver: swrast

การติดตั้งไดรเวอร์ของ Nvidia ไม่สามารถทำได้เนื่องจากไม่มีการ์ด Nvidia อยู่ - ดังนั้นจึงเกิดข้อผิดพลาดที่สอง การใช้ตัวแสดงผลซอฟต์แวร์เป็นไปได้ แต่จะช้ามาก

ดังนั้นคำตอบคือ: ใช่มันอาจเป็นไปได้ที่จะทำสิ่งที่คุณต้องการ แต่ถ้าไม่มีฮาร์ดแวร์เฉพาะที่เล่นได้ดีกับ VNC บนโฮสต์เสมือนสิ่งนี้จะไม่เป็นประสบการณ์ที่ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.