ฉันกำลังพยายามให้ 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.