Q100455: Nuke और CaraVR के लिए Linux पर VR हेडसेट सक्षम करना

सारांश

यह लेख Linux पर VR हेडसेट सक्षम करने के तरीके के बारे में मार्गदर्शन प्रदान करता है। इसमें Nuke और CaraVR के साथ काम करने के लिए नए Nvidia ड्राइवरों को कॉन्फ़िगर करने का तरीका, और Nuke sudo/root के रूप में लॉन्च किए बिना काम करने के लिए हेडसेट को कॉन्फ़िगर करने का तरीका शामिल है।

अधिक जानकारी

लिनक्स पर चलने वाले हेडसेट, जैसे कि HTC Vive और Oculus Rift CV1, को OpenHMD थर्ड-पार्टी लाइब्रेरी जैसे ड्राइवरों की आवश्यकता होती है, जो Nuke / CaraVR इंस्टॉलेशन प्रक्रिया के भाग के रूप में इंस्टॉल होते हैं। हालाँकि, Nvidia ड्राइवरों के डिफ़ॉल्ट सेटअप के कारण, Nvidia की कॉन्फ़िगरेशन फ़ाइल को समायोजित करने की आवश्यकता होती है ताकि हेडसेट को मॉनिटर आउट डिस्प्ले डिवाइस के रूप में इस्तेमाल किया जा सके।

नोट: CaraVR प्लग-इन अब NukeX संस्करण 12.0+ में शामिल है

अपने VR हेडसेट को चालू करने से पहले, कृपया सुनिश्चित करें कि Nvidia GPU ड्राइवर अद्यतित हैं। उन्हें अपडेट करने के लिए, कृपया नीचे दी गई Nvidia वेबसाइट देखें:

https://www.nvidia.com/Download/index.aspx?lang=en-in

रॉकी 9 पर वीआर हेडसेट सक्षम करना

Nuke और CaraVR में अपने VR हेडसेट को सक्षम करने के लिए आपको नीचे दिए गए निर्देशों का उपयोग करके EPEL रिपोजिटरी , साथ ही कुछ अतिरिक्त लाइब्रेरी और udev नियमों को स्थापित करना होगा:

1) टर्मिनल विंडो खोलें

2) निम्न कमांड चलाकर EPEL रिपॉजिटरी स्थापित करें: sudo dnf install epel-release

3) Nuke अपने डिवाइस के साथ इंटरफेस करने की अनुमति देने के लिए hidapi को इंस्टॉल करें:
sudo dnf install hidapi hidapi-devel

4) cmake को चलाकर इंस्टॉल करें: sudo dnf install cmake

5) इसके बाद अपने टर्मिनल विंडो में अपने डाउनलोड फ़ोल्डर को ब्राउज़ करके और चलाकर OpenHMD स्थापित करें:
sudo git clone --recursive https://github.com/thaytan/OpenHMD.git

6) डाउनलोड फ़ोल्डर से, cd OpenHMD टाइप करके OpenHMD फ़ोल्डर खोलें और OpenHMD को संकलित और स्थापित करने के लिए निम्नलिखित कमांड चलाएँ:

नोट: आप OpenHMD को विशिष्ट ड्राइवरों के साथ संकलित कर सकते हैं, उपलब्ध ड्राइवरों के बारे में अधिक जानकारी आधिकारिक github पर पाई जा सकती है ; आप पता लगाए गए उपकरणों को स्थापित करने के लिए cmake कमांड के बाद “..” का भी उपयोग कर सकते हैं।

a. mkdir build
बी. cd build
सी. cmake..
घ. make
ई. sudo make install

7) अगर आपके VR हेडसेट के साथ कोई कंट्रोलर है, तो आप xr-hardware इंस्टॉल करके उसे सक्षम करने के लिए ज़रूरी udev नियम सेट कर सकते हैं। आप इसे अपने टर्मिनल सेशन में डाउनलोड फ़ोल्डर ब्राउज़ करके और चलाकर इंस्टॉल कर सकते हैं:
sudo git clone --recursive https://gitlab.freedesktop.org/monado/utilities/xr-hardware.git

8) फिर cd xr-hardware -hardware टाइप करके xr-hardware फ़ोल्डर खोलें और xr-hardware बनाने और स्थापित करने के लिए निम्नलिखित कमांड चलाएँ।

क. make
b. sudo make install

उपरोक्त कमांड चलाने के बाद, Nuke डिवाइस के लिए व्यूअर मॉनिटर आउट प्रॉपर्टीज़ ड्रॉपडाउन में HMD यूनिट प्रदर्शित करनी चाहिए। हालाँकि, हेडसेट के माध्यम से आउटपुट देखने के लिए, आपको नीचे दिए गए CentOS 7 अनुभाग में दिए गए निर्देशों के अनुसार xorg.conf फ़ाइल में HMD को सक्षम करना पड़ सकता है।

CentOS 7 पर VR हेडसेट सक्षम करना

NVIDIA ड्राइवरों को कॉन्फ़िगर करना

कॉन्फ़िगरेशन फ़ाइल को समायोजित करने के लिए नीचे दिए गए चरणों का पालन करना आवश्यक है:

1) sudo या root के रूप में, किसी टेक्स्ट एडिटर में निम्न फ़ाइल खोलें:

/etc/X11/xorg.conf

नोट: यदि xorg.conf फ़ाइल मौजूद नहीं है, तो आप इसे निम्न कमांड का उपयोग करके बना सकते हैं:

sudo nvidia-xconfig

2) कॉन्फ़िगरेशन फ़ाइल का वह भाग ढूंढें जिसमें "डिवाइस" लिखा हो

3) अनुभाग में निम्नलिखित पंक्ति जोड़ें, जैसा कि नीचे दिए गए उदाहरण चित्र में दिखाया गया है:

Option "AllowHMD" "yes"


4) अपडेट की गई फ़ाइल को सेव करें और हेडसेट डिवाइस को कनेक्ट करें।

5) मशीन को रीबूट करें।

अब जब Nvidia कॉन्फ़िगरेशन फ़ाइल समायोजित हो गई है, तो आप Nuke और CaraVR लॉन्च करके यह जांच सकते हैं कि आपका VR हेडसेट काम कर रहा है या नहीं। कृपया ध्यान दें कि Nuke sudo या root के रूप में लॉन्च किया जाना चाहिए, और हेडसेट का उपयोग करने का विकल्प अब मॉनिटर आउट उन्नत सेटिंग्स के डिवाइस नॉब में दिखाई देना चाहिए।

व्यूअर मॉनिटर आउट पैनल खोलने के लिए, किसी भी पैन पर राइट-क्लिक करें और उसे जोड़ने के लिए Windows > व्यूअर मॉनिटर आउट चुनें। फिर कॉग पर क्लिक करें गुण पैनल में उन्नत सेटिंग्स प्रदर्शित करने के लिए व्यूअर मॉनिटर आउट पैनल के बाईं ओर आइकन, जैसा कि नीचे दी गई छवियों में दिखाया गया है:

viewerMonitorOut.png

mceclip0.png


नोट:
आप CaraVR के साथ हेडसेट का उपयोग करने के बारे में अधिक जानकारी के लिए निम्नलिखित लिंक पर हमारे दस्तावेज़ भी देख सकते हैं:
 अपने काम की समीक्षा करना

NUKE रूट या SUDO के रूप में लॉन्च किए बिना हेडसेट का उपयोग करना

जब sudo/root के बिना Nuke को लॉन्च किया जाता है और व्यूअर नोड में हेडसेट को सक्षम करने का प्रयास किया जाता है, तो हेडसेट काम नहीं कर सकता है और नीचे दिया गया संदेश प्रदर्शित होगा:



यह समस्या इस कारण से है कि Linux सिस्टम में प्लग किए गए USB उपकरणों के लिए अपनी अनुमतियों का प्रबंधन कैसे करता है। इस समस्या से निपटने का सबसे आसान तरीका Nuke रूट/sudo के रूप में लॉन्च करना है, क्योंकि सभी अनुमतियाँ प्रदान की जाती हैं, हालाँकि Nuke रूट/sudo के रूप में चलाने से मौजूदा पाइपलाइनों में बाधा आ सकती है।

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

रूट या SUDO के बिना OCULS RIFT CV1 का उपयोग करना

निम्नलिखित चरणों से Oculus Rift CV1 को 83-hmd.rules udev फ़ाइल में जोड़ा जाना चाहिए, जिससे "Rift (CV1)" पहले से उपयोग में है संदेश को आने से रोका जा सके:

नोट : इन चरणों को पूरा करने से पहले CV1 हेडसेट को प्लग इन न करें या Nuke प्रारंभ न करें।


1) सुनिश्चित करें कि हेडसेट इस्तेमाल करने वाले उपयोगकर्ता की यूज़र आईडी plugdev समूह से संबंधित है, और ज़रूरत पड़ने पर plugdev नामक एक अनुमति समूह बनाएँ। अनुमति समूह बनाने और समूहों में उपयोगकर्ता आईडी जोड़ने के तरीके के बारे में जानकारी के लिए कृपया Linux वितरण दस्तावेज़ देखें।

2) sudo या root के रूप में, /etc/udev/rules.d/83-hmd.rules को खोलें या create करें और टेक्स्ट एडिटर में खोलें।

3) फ़ाइल में निम्नलिखित पंक्ति जोड़ें:

SUBSYSTEM=="usb", ATTR{idVendor}=="2833", MODE="0666", GROUP="plugdev"

4) फ़ाइल सहेजें

5) sudo या Root के रूप में, नीचे दिए गए आदेश को चलाएँ:

sudo udevadm control --reload-rules

6) मशीन को पुनः चालू करें।

7) CV1 हेडसेट प्लग इन करें और Nuke शुरू करें।

नोट : लिनक्स पर CV1 हेडसेट का उपयोग करते समय, कृपया ध्यान रखें कि CV1 तब तक काला प्रदर्शित करता है जब तक कि इसे मॉनिटर आउट उन्नत सेटिंग्स डिवाइस नॉब में सक्षम नहीं किया जाता है।

रूट या SUDO के बिना HTC VIVE का उपयोग करना

निम्नलिखित चरणों से HTC Vive को 83-hmd.rules udev फ़ाइल में जोड़ दिया जाएगा, जिससे "HTC Vive" पहले से उपयोग में है संदेश प्रदर्शित होने से रोका जा सकेगा:

1) सुनिश्चित करें कि उपयोगकर्ता आईडी plugdev समूह से संबंधित है, और ज़रूरत पड़ने पर plugdev नामक एक समूह बनाएँ। समूह बनाने और समूहों में उपयोगकर्ता आईडी जोड़ने के तरीके के बारे में जानकारी के लिए कृपया Linux वितरण के दस्तावेज़ देखें।

2) sudo या root के रूप में, /etc/udev/rules.d/83-hmd.rules को टेक्स्ट एडिटर में खोलें या create करें और खोलें

3) फ़ाइल में कोड की नीचे दी गई पंक्तियाँ जोड़ें, वे SteamVR GitHub पृष्ठ, https://github.com/ValveSoftware/SteamVR-for-Linux#usb-device-requirements से ली गई हैं :

# HTC Vive HID Sensor naming and permissioning

KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="2c87", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2101", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2000", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="1043", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2050", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2011", MODE="0666", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="28de", ATTRS{idProduct}=="2012", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="2c87", MODE="0666", GROUP="plugdev"

# HTC Camera USB Node

SUBSYSTEM=="usb", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8328", MODE="0666", GROUP="plugdev"

# HTC Mass Storage Node

SUBSYSTEM=="usb", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8200", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="114d", ATTRS{idProduct}=="8a12", MODE="0666", GROUP="plugdev"

4) फ़ाइल सहेजें

5) sudo या Root के रूप में, नीचे दिए गए आदेश को चलाएँ:

sudo udevadm control --reload-rules

6) मशीन को पुनः चालू करें।

7) हेडसेट को प्लग इन करें, यदि यह पहले से ही प्लग इन है, तो इसे पुनः प्लग इन करने की आवश्यकता हो सकती है ताकि आप हेडसेट पर डेस्कटॉप पृष्ठभूमि देख सकें।

8) Nuke लॉन्च करें और जांचें कि क्या हेडसेट का उपयोग "HTC Vive" पहले से उपयोग में है संदेश के बिना किया जा सकता है।

अगर आपको लगातार "HTC Vive" पहले से इस्तेमाल में है संदेश मिलता रहता है, तो हो सकता है कि हेडसेट की डिवाइस/विक्रेता आईडी अलग हो, इसलिए उन आईडी के लिए 83-hmd.rules फ़ाइल में कस्टम नियम जोड़ने होंगे। यह नीचे दिए गए चरणों का पालन करके किया जा सकता है:

1) टर्मिनल खोलें और चलाएँ:

lsusb

2) इससे आपको नीचे जैसा परिणाम मिलेगा:

 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0bda:0181 Realtek Semiconductor Corp.
Bus 002 Device 055: ID 0bb4 : 2744 HTC (High Tech Computer Corp.)
Bus 002 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 002 Device 056: ID 0bb4 : 0306 HTC (High Tech Computer Corp.)
Bus 002 Device 057: ID 0424:274d Standard Microsystems Corp.
Bus 002 Device 058: ID 0bb4 : 2134 HTC (High Tech Computer Corp.)
Bus 002 Device 007: ID 0d3d:0040 Tangtop Technology Co., Ltd PS/2 Adapter
Bus 002 Device 059: ID 0bb4:2c87 HTC (High Tech Computer Corp.)
Bus 002 Device 060: ID 28de:2101  
Bus 002 Device 061: ID 28de:2101  
Bus 002 Device 062: ID 28de:2000  
Bus 002 Device 063: ID 0bb4:2c87 HTC (High Tech Computer Corp.)

Bus 002 Device 036: ID 0c45:6340 Microdia Camera

आईडी अनुभाग को idVendor:idProduct के रूप में पढ़ा जा सकता है, इन मानों का उपयोग करके, /etc/udev/rules.d/83-hmd.rules फ़ाइल के लिए अतिरिक्त नियम बनाए जा सकते हैं।

3) sudo या root के रूप में, टेक्स्ट एडिटर में /etc/udev/rules.d/83-hmd.rules खोलें

4) नीचे दी गई पंक्ति जोड़ें, <missingVendor> और <missingProduct> को lsusb परिणाम में सूचीबद्ध किसी भी डिवाइस से प्रतिस्थापित करें, जो पहले से 83-hmd.rules फ़ाइल में नहीं हैं:

SUBSYSTEM=="usb", ATTRS{idVendor}=="<missingVendor>", ATTRS{idProduct}=="<missingProduct>", MODE="0666", GROUP="plugdev"

इस उदाहरण में, Nuke और CaraVR अनुमतियों को अनुमति देने के लिए नीचे दी गई तीन पंक्तियाँ जोड़ी गईं:

 # Extra rules

SUBSYSTEM=="usb", ATTRS{idVendor}=="
0bb4 ", ATTRS{idProduct}==" 0306 ", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}==" 0bb4 ", ATTRS{idProduct}==" 2134 ", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}==" 0bb4 ", ATTRS{idProduct}==" 2744 ", MODE="0666", GROUP="plugdev"

5) फ़ाइल सहेजें

6) sudo या Root के रूप में, नीचे दिए गए आदेश को चलाएँ:

sudo udevadm control --reload-rules

7) मशीन को पुनः चालू करें।

8) हेडसेट को प्लग इन करें, यदि यह पहले से ही प्लग इन है, तो इसे पुनः प्लग इन करने की आवश्यकता हो सकती है ताकि आप हेडसेट पर डेस्कटॉप पृष्ठभूमि देख सकें।

9) Nuke लॉन्च करें और व्यूअर मॉनिटर आउट उन्नत सेटिंग्स डिवाइस नॉब में इसे सक्षम करने पर हेडसेट अब उपयोग योग्य होना चाहिए।

अतिरिक्त समस्या निवारण

1) OpenHMD का कोई दूसरा संस्करण इंस्टॉल करने से CaraVR के साथ आने वाले संस्करण में रुकावट आ सकती है। अगर आपको हेडसेट में कोई समस्या आती है, तो कृपया OpenHMD के किसी भी अन्य संस्करण या अपनी मशीन पर इंस्टॉल किए गए अन्य हेडसेट ड्राइवरों को अनइंस्टॉल करने का प्रयास करें।

2) कभी-कभी, AllowHMD प्रक्रिया स्वचालित रूप से काम नहीं करेगी। ऐसी स्थिति में, Nuke में हेडसेट का पता न लगने की समस्या को ठीक करने के लिए, NVidia सेटिंग्स खोलें जहाँ हेडसेट दूसरे मॉनिटर के रूप में पहचाना जा रहा है लेकिन अक्षम है, फिर उसे सक्षम करें। इससे यह समस्या ठीक हो जानी चाहिए और Nuke को दोबारा लॉन्च करने पर, हेडसेट Viewer Monitor Out Advanced Settings Device नॉब में दिखाई देना चाहिए।

ओकुलस रिफ्ट CV1 के बारे में अतिरिक्त नोट्स

  • Oculus CV1 तब तक काला दिखाई देता है जब तक आप इसे अंदर से चालू नहीं करते Nuke की व्यूअर सेटिंग्स.
  • CV1, Gnome/Kde में उपलब्ध स्क्रीन की सूची में नहीं दिखाई देता है, यह व्यूअर मॉनिटर आउटपुट डिवाइस नॉब में समर्थित डिवाइसों के साथ प्रदर्शित होता है।
  • जब आप आरंभ में व्यूअर मॉनिटर आउटपुट चालू करते हैं, तो सभी उपलब्ध मॉनिटर कुछ सेकंड के लिए काले रंग में प्रदर्शित होते हैं, क्योंकि OS नए कॉन्फ़िगरेशन के अनुसार समायोजित हो जाता है।
  • CV1 तब तक चालू रहता है जब तक आप इसे बंद नहीं कर देते Nuke , जिसके कारण सभी उपलब्ध मॉनिटर कुछ सेकंड के लिए काले रंग में प्रदर्शित होने लगते हैं, क्योंकि ओएस नए कॉन्फ़िगरेशन में समायोजित हो जाता है।

अग्रिम पठन

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

एनवीडिया:

एएमडी:

    • स्टीमवीआर के लिए न्यूनतम मेसा 17.3 का संकलन वल्कन समर्थन और लिनक्स कर्नेल 4.13 की आवश्यकता होती है।

ड्राइवरों के लिए अतिरिक्त जानकारी उनके स्टीमवीआर फॉर लिनक्स दस्तावेज़ में पाई जा सकती है।

यदि आप Centos 7 के अलावा किसी अन्य Linux वितरण पर CaraVR , Nuke और Steam VR स्थापित करने में सक्षम हैं, तो नीचे दिए गए चरणों का उपयोग करने से हेडसेट काम कर सकता है।

  1. सुनिश्चित करें कि SteamVR स्थापित और अद्यतन है, SteamVR में सभी आवश्यक कॉन्फ़िगरेशन चरणों को तब तक पूरा करें जब तक कि कोई भी SteamVR एप्लिकेशन सफलतापूर्वक न चल सके
    - स्टीम इंस्टॉलेशन फ़ाइलें यहां पाई जा सकती हैं।
  2. स्टीमवीआर बंद करें, लेकिन स्टीम चालू रखें
  3. टर्मिनल खोलें और उसी सत्र में नीचे दी गई दो पंक्तियों को चलाएँ, तथा सिस्टम की विशिष्ट स्थापना के लिए आवश्यकतानुसार उन्हें समायोजित करें:

/home/username/.steam/steam/ubuntu20_04/steam-runtime/run.sh

/usr/local/ Nuke 16.0v4/ Nuke 16.0

नोट: चूँकि Nuke / CaraVR और SteamVR द्वारा आधिकारिक रूप से समर्थित कोई भी Linux वितरण नहीं है, इसलिए SteamVR के साथ Nuke उपयोग पूरी तरह से परखा नहीं गया है और हो सकता है कि यह अपेक्षा के अनुरूप काम न करे। हालाँकि, यह OpenHMD की तुलना में SteamVR समर्थित हेडसेट्स के लिए फ्रेम दर, विरूपण सुधार और दृश्य क्षेत्र सेटिंग्स के मामले में बेहतर प्रदर्शन प्रदान कर सकता है।

    हम चाहते हैं कि खेद व्यक्त करते हैं

    कृपया हमें बताएँ कि