Computer >> कंप्यूटर >  >> सॉफ्टवेयर >> आभासी मशीन

आभासी मशीनों में 3D त्वरण - भाग 3:Linux होस्ट और Linux अतिथि - VMGL - (Im)संभव?

वर्चुअलाइजेशन पर यह तीसरा लेख है। और शायद सबसे कठिन। अब तक, हमारे पास VMware उत्पादों में DirectX समर्थन और VirtualBox में OpenGL समर्थन है, दोनों ही मामलों में केवल Windows मेहमानों के लिए उपलब्ध है। मेजबान मंच का चुनाव कोई मायने नहीं रखता था। लेकिन लिनक्स मेहमानों के बारे में क्या?

मैंने सोचा कि यह होना नहीं था। लेकिन फिर, मैंने linux.com पर एक लेख पढ़ा, जिसमें दिखाया गया था कि कैसे VMGL नामक एप्लिकेशन का उपयोग करके Linux मेहमानों पर 3D का आनंद लिया जा सकता है। यह आशाजनक से अधिक लग रहा था। यह बहुत अच्छा लग रहा था; लेकिन यह भी मुश्किल लग रहा था। यह कोई महज 5-10 मिनट की हैकिंग नहीं थी। टास्क बहुत बड़ा था। इसलिए, मैंने यह देखने का निर्णय लिया है कि क्या वास्तव में ऐसा किया जा सकता है।

और उत्तर है...

उत्तर है:जब आप कोई लेख/ट्यूटोरियल/गाइड/कैसे-कैसे देखते हैं तो उसमें "इसे काम करना चाहिए" और "ऑल यू हैड टू डू..." जैसे वाक्यांशों का उपयोग किया जाता है - चेतावनी दी जाए! आप बहुत परेशानी में हैं।

मूल लेख, साथ ही लेखक के आवेदन दस्तावेज, लगभग 90% गंदे काम को ध्यान में रखने में विफल रहते हैं जो आपको अपने लक्ष्य के करीब पहुंचने के लिए करना होगा। इस ट्यूटोरियल में, मैं आपको वे सभी भयानक विवरण दिखाने जा रहा हूँ जो लिनक्स वर्चुअल मशीनों में आपके 3D को काम करने के लिए (शायद) शामिल हैं। पी.एस. आप पहले दो लेखों में अधिक पढ़ सकते हैं:

आभासी मशीनों में 3डी त्वरण - भाग 1:वीएमवेयर और डायरेक्टएक्स - ट्यूटोरियल

आभासी मशीनों में 3डी त्वरण - भाग 2:वर्चुअलबॉक्स और ओपनजीएल - ट्यूटोरियल

VMGL:OpenGL 3D एक्सेलेरेशन - अनकट वर्शन

हम VMware सर्वर से शुरुआत करेंगे और फिर VirtualBox पर इसे आजमाएंगे।

इंस्टालेशन

संकुल को डाउनलोड करना और उन्हें स्थापित करना आसान है। वे RPM प्रारूप में हैं, इसलिए यदि आप डेबियन-आधारित डिस्ट्रोज़ (उबंटू की तरह) चला रहे हैं, तो आपको पहले एलियन पैकेज स्थापित करना होगा और RPM को DEBs में बदलना होगा। तो सबसे पहले, एलियन स्थापित करें:

sudo apt-get install एलियन

फिर, RPM संकुल को DEB में बदलें:

एलियन -के पैकेज.आरपीएम पैकेज.डेब

अंत में, उन्हें स्थापित करें:

आरपीएम -आई पैकेज.आरपीएम

या

dpkg -i package.deb

वास्तविक VMGL संकुल के लिए सामान्य नाम बदलें और उन्हें स्थापित करें, एक बार मेजबान पर और एक अतिथि पर।

ध्यान दें:आरपीएम/डीईबी स्थापित करते समय, आप कोई (दृश्यमान) त्रुटि नहीं देखेंगे। हालाँकि, स्रोतों का उपयोग करके स्थापित करने का प्रयास पूरी तरह से गड़बड़ साबित हुआ। आपको सभी बिल्ड-एसेंशियल पैकेज - जीसीसी, मेक, कर्नेल सोर्स, कर्नेल हेडर - प्लस कई अन्य, जैसे कि इमेक, पायथन और ओपनग्ल हेडर सहित, निर्भरताओं की एक बहुतायत को पूरा करना होगा।

दुर्भाग्य से, लेखक आपको आवश्यक निर्भरताओं की पूरी सूची देने के लिए परेशान नहीं होता है, इसलिए आपको अनुमान लगाना होगा, परीक्षण और त्रुटि से, आपको क्या चाहिए या क्या नहीं।

और स्रोत पूरी तरह टूटा हुआ लगता है:

और उबंटू अतिथि पर:

यह काफी संभावना है कि आप इस स्तर पर हार मान लेंगे। लेकिन अगर आपने RPM/DEB पैकेज का उपयोग किया है, तो आप सोच सकते हैं कि सब कुछ काम कर गया, इसलिए आप आगे बढ़ें ...

मॉड्यूल लोड करें

आपका अगला कदम xorg.conf फ़ाइल को बदलना है। इस तरह एक खंड जोड़ें:

अनुभाग "मॉड्यूल"
लोड "vmglext"
अंतअनुभाग

परिवर्तनों को प्रभावी करने के लिए अतिथि X विंडो (Ctrl + Alt + Backspace) को पुनरारंभ करें।

Xvnc सर्वर प्रारंभ करें

अगला, अतिथि में, संशोधित Xvnc सर्वर लॉन्च करें जो हमारे लिए सभी जादुई OpenGL टनलिंग करने वाला है।

आह, यहाँ पेचीदा हिस्सा आता है। चूंकि लेखक ने किसी अज्ञात कारण से सर्वर के एक प्राचीन संस्करण का उपयोग किया था, सिवाय इसके कि उन्होंने अपने विश्वविद्यालय में जो कुछ भी उपयोग किया था, उसे छोड़कर, यह आधुनिक वितरणों पर काम करने में विफल हो जाएगा, क्योंकि यह उन फ़ाइलों और फ़ोल्डरों के स्थान को मान लेता है जो मौजूद नहीं हैं आधुनिक वितरण पर।

SUSE 11.0 और Ubuntu 8.10 दोनों पर, सर्वर को बिना किसी त्रुटि के चलाने के लिए मुझे काफी हैकिंग करनी पड़ी। आपको बहुत सी त्रुटियाँ मिलेंगी, कुछ इस तरह:

आभासी मशीनों में 3D त्वरण - भाग 3:Linux होस्ट और Linux अतिथि - VMGL - (Im)संभव?

ऐसा तब होता है जब 2003 पैकेज का उपयोग एप्लिकेशन बनाने के लिए किया जाता है। सौभाग्य से, समाधान "सरल" है। तो, समस्या को ठीक करने के लिए:

rgb.txt डाउनलोड करें

यह हमारी पहली गलती है। फ़ाइल को इंटरनेट पर कहीं खोजें (इसे google करें)। इसे डाउनलोड करें और इसे वहां रखें जहां पैकेज इसे खोजने की उम्मीद करता है। फ़ाइल में ही, किसी भी खाली लाइन को हटा दें, क्योंकि वे सिंटैक्स त्रुटियां फेंक देंगे।

फ़ाइल को वहां रखें जहां Xvnc सर्वर इसकी अपेक्षा करता है - या बेहतर, इसे /etc/X11/rgb.txt के अंतर्गत रखें और सांकेतिक लिंक बनाएं:

सीडी /usr/X11R6/lib/X11
सुडो एलएन -एस /usr/share/X11/rgb.txt
सीडी /यूएसआर/शेयर/X11
सुडो एलएन -एस /etc/X11/rgb.txt

तो ऐसा दिखता है:

आभासी मशीनों में 3D त्वरण - भाग 3:Linux होस्ट और Linux अतिथि - VMGL - (Im)संभव?

बदसूरत लग रहा है, और यह है!

आपका अगला कदम उन सभी लापता फोंट के लिए भी प्रतीकात्मक लिंक बनाना है। सीडी /usr/X11R6/lib/X11/fonts
सुडो एलएन -एस /usr/share/fonts/X11/100dpi
सुडो एलएन -एस /usr/share/fonts/X11/75dpi
सुडो ln -s /usr/share/fonts/X11/encodings
सुडो ln -s /usr/share/fonts/X11/misc
सुडो एलएन -एस /usr/share/fonts/X11/Type1
sudo ln -s /usr/share/fonts/X11/util

और फिर आपको मिलता है:

आभासी मशीनों में 3D त्वरण - भाग 3:Linux होस्ट और Linux अतिथि - VMGL - (Im)संभव?

अब, जब आप Xvnc सर्वर शुरू करते हैं, तब भी आपको त्रुटियाँ मिलेंगी, लेकिन इस बार, यह काम करेगा:

अब, होस्ट पर, vncviewer चलाएँ। कहने की जरूरत नहीं है, अतिथि के पास एक आईपी पता होना चाहिए जो मेजबान से पहुंच योग्य हो। जिसका अर्थ है कि आपको अतिथि वर्चुअल मशीनों के लिए या तो ब्रिजेड या NAT नेटवर्किंग की आवश्यकता है। vncviewer अतिथि-आईपी-पता:1

यह इस प्रकार दिखेगा:

अतिथि पर, GLSTUB निर्यात करें:

निर्यात GLSTUB =अतिथि-आईपी-पता:बंदरगाह

हमारे मामले में, हम देखते हैं कि GLSTUB पोर्ट को 7001 पर इंगित करता है। और हमारा अतिथि IP पता 192.168.34.129 है, इसलिए हम GLSTUB को इस तरह निर्यात करेंगे:

निर्यात GLSTUB=192.168.34.129:7001

और अब, जादू! सब कुछ काम करना चाहिए।

उम, केवल यह नहीं है। Glxinfo चलाने से vmglext ड्राइवर उपयोग में नहीं दिखता है और सुझाव के अनुसार glxgears चलाना पहले की तरह ही निराशाजनक प्रदर्शन दिखाता है। टूटे हुए पैकेजों को देखते हुए जो आश्चर्य की बात नहीं है।

VirtualBox में सब कुछ फिर से करें

मैंने सोचा था कि NAT के साथ VMware सर्वर और इसका मालिकाना कोड मुद्दा था। इसलिए मैंने उबंटु अतिथि के साथ वर्चुअलबॉक्स ओएसई संस्करण चलाने वाले उबंटू होस्ट का उपयोग करके एक ही चाल की कोशिश की। मैंने यह काम करने के लिए ब्रिजिंग नेटवर्किंग को भी कॉन्फ़िगर किया है।

जबकि ब्रिज्ड नेटवर्किंग को कॉन्फ़िगर करना विशेष रूप से विषय से संबंधित नहीं है, यहाँ आदेशों का सुंदर सेट है जिसे आपको मेजबान और अतिथि संचार प्राप्त करने के लिए चलाना होगा। अधिक विवरण के लिए, आप पढ़ना चाहेंगे:

वर्चुअलबॉक्स - सामुदायिक उबुंटू प्रलेखन

तो यहाँ मैंने क्या किया है (हो सकता है कि आपकी आवश्यकताओं/कॉन्फ़िगरेशन को सटीक रूप से प्रतिबिंबित न करे):

1. होस्ट पर ब्रिज उपयोगिताओं को स्थापित करें

पहला कदम ब्रिज उपयोगिताओं को स्थापित करना है, ताकि हम अपने नेटवर्क इंटरफेस को ब्रिज कर सकें और आईपी पते साझा कर सकें। sudo apt-get install ब्रिज-बर्तन

2. नेटवर्क स्क्रिप्ट में ब्रिज की घोषणा करें

ब्रिज उपयोगिताओं के स्थापित होने के बाद, आपको इसे नेटवर्क कॉन्फ़िगरेशन फ़ाइल में घोषित करना होगा। डेबियन-आधारित सिस्टम पर, जैसा कि यहां दिखाया गया है, कॉन्फ़िगरेशन को एक फ़ाइल में रखा जाता है, /etc/network/interfaces. RedHat-आधारित डिस्ट्रोज़ ने प्रत्येक नेटवर्क एडेप्टर के लिए अलग-अलग कॉन्फ़िगरेशन स्क्रिप्ट का उपयोग किया।

पी.एस. कृपया अपनी पसंद के स्थिर IP पते का उपयोग करें। सुडो जीएडिट /आदि/नेटवर्क/इंटरफेस

उपरोक्त फ़ाइल में जोड़ें:

ऑटो बीआर0
iface br0 inet स्थिर
पता 192.168.3.100
नेटमास्क 255.255.255.0
गेटवे 192.168.3.1
ब्रिज_पोर्ट्स eth0 vbox0

3. वर्चुअलबॉक्स के लिए वर्चुअल नेटवर्क एडॉप्टर घोषित करें

यह वर्चुअलबॉक्स को आपके br0 ब्रिज का उपयोग करने की अनुमति देगा:

सूडो जीएडिट /etc/vbox/interfaces

उपरोक्त फ़ाइल में जोड़ें:

vbox0 <आपका उपयोगकर्ता नाम> br0

4. नेटवर्क और वर्चुअलबॉक्स ड्राइवरों को पुनः प्रारंभ करें

कॉन्फ़िगरेशन फ़ाइलों में परिवर्तन जोड़े जाने के बाद, परिवर्तनों को प्रभावी करने के लिए हमें नेटवर्क सेवा और वर्चुअलबॉक्स दोनों को पुनरारंभ करना होगा। सुडो सेवा नेटवर्किंग पुनरारंभ करें
सुडो /etc/init.d/virtualbox-ose पुनरारंभ करें

5. सही अनुमतियां प्राप्त करने के लिए इधर-उधर फाइल हैक करें

आपको नेटवर्क टनलिंग उपकरणों की अनुमति बदलने की आवश्यकता हो सकती है ताकि वर्चुअलबॉक्स भी उनका उपयोग कर सके। यह इस प्रकार किया जाता है:

सुडो चोउन रूट:vboxusers /dev/net/tun
सुडो चामोद 666 /dev/net/tun

6. vbox0 वर्चुअल एडेप्टर

का उपयोग करने के लिए अतिथि को कॉन्फ़िगर करें

यह प्रासंगिक वर्चुअल मशीन के लिए सेटिंग मेनू तक पहुंचकर, होस्ट मशीन पर किया जाता है। यहाँ एक सुंदर स्क्रीनशॉट है:

7. अतिथि को सक्रिय करें और स्थिर IP पता निर्दिष्ट करें

यह पता उसी सबनेट का होना चाहिए जैसे हमारा ब्रिज। दूसरे शब्दों में, बस अंतिम ऑक्टेट को एक से बढ़ाएं। sudo ifconfig <डिवाइस> ऊपर

हमारे मामले में:

सुडो ifconfig eth3 192.168.3.101 ऊपर

8. हमारे द्वारा पहले किए गए सभी चरणों को दोहराएं

अनकट संस्करण की शुरुआत में वापस जाएं और पूरे सेटअप को फिर से चलाएं। और फिर, यह काम नहीं करेगा. जादू?

निष्कर्ष

As it turns out, enjoying 3D acceleration on Linux virtual machines is beyond 99.999995% of users, including knowledgeable geeks like me. The project, apparently someone's PhD, does feel like a true academic work:it's half-finished and it's unusable by normal people.

What beats me, though, is the claim that "you should all be set" after only a few minor hacks, as if we're talking cups of fresh morning dew. And the five-minute hack turns out to be 3-4 hours of misery. Why, on Earth, would someone use a 6-year old version of the Xvnc for the task?

However, I think what really annoys me the most is the fact someone actually released a product in such a shabby state. A shame. Well, not all is lost. We've had 2 out 3 working. VMware support for DirectX in Windows guests and VirtualBox support for OpenGL in Windows guests proved to be gems.

But lament not! VMware and Sun are big shots in the virtualization industry. It is only a matter of time before 3D acceleration becomes a happy reality for Linux users running Linux guests.

When all things are taken into consideration, the need for Linux host / Linux guest 3D acceleration seems less important. Windows users will probably only use Windows. If and when they need Linux, they will most likely dual-boot. Linux users will most likely want Windows guests, so they can use the legacy applications they need, and for this they already have a solution (or two). The Linux-in-Linux virtualization is a wicked idea, but it is not a priority with most people. It will happen. Mark my words.

To wrap it up, let's review what we did so far. We learned a few valuable lessons in this series of articles. We learned how to use VMware Server and VirtualBox so that we can enjoy 3D acceleration in our Windows guests. We learned a few more cool hacks and tricks along the way. Most importantly, we learned that desktop virtualization is in continuous evolution, taking us further in our goals and desires.

प्रोत्साहित करना।

  1. VMware सर्वर में वर्चुअल मशीन का क्लोन कैसे बनाएं

    यदि आप वर्चुअलाइजेशन के प्रशंसक हैं, तो देर-सवेर आप VMware सर्वर से परिचित होंगे। सर्वर एक नि:शुल्क समाधान है जो आपको अपने मौजूदा डेस्कटॉप के शीर्ष पर विभिन्न ऑपरेटिंग सिस्टम के कई उदाहरण चलाने की अनुमति देता है, जिससे आपके सामने दक्षता, उत्पादकता, प्रतिरूपकता, परीक्षण और ट्वीकिंग की दुनिया खुल जाती

  1. आभासी मशीनों में 3D त्वरण - भाग 2:VirtualBox और OpenGL - ट्यूटोरियल

    वर्चुअल मशीनों में 3डी वर्चुअलाइजेशन को कॉन्फ़िगर करने और उपयोग करने के लिए समर्पित तीन लेखों में से यह दूसरा है। आज, हम सीखेंगे कि विंडोज या लिनक्स होस्ट पर स्थापित वर्चुअलबॉक्स में चल रहे विंडोज वर्चुअल मशीनों के लिए ओपनजीएल एप्लिकेशन (और गेम) के लिए 3डी त्वरण को कैसे सक्षम किया जाए। पहले लेख मे

  1. आभासी मशीनों में 3D त्वरण - भाग 1:VMware और DirectX - ट्यूटोरियल

    मौजूदा मेजबानों के शीर्ष पर वर्चुअलाइज्ड ऑपरेटिंग सिस्टम चलाना एक अच्छा विचार है। यह मजेदार है, यह अच्छा है, यह आपको अपने वास्तविक मंच पर प्रतिबद्ध होने से पहले सॉफ्टवेयर के साथ प्रयोग करने की अनुमति देता है, यह आपको उन चीजों को करने की अनुमति देता है जो आप सामान्य रूप से करने की हिम्मत नहीं करते, य