मुझे आश्चर्य है कि सर्वशक्तिमान Google के पास इस सवाल का तैयार जवाब नहीं है कि "VCHIQ क्या है?" मैं लंबे समय से कर्नेल गीक हूं और ब्रॉडकॉम कर्मचारी नहीं हूं, और न ही मैं बीसीएम 283 * विशेषज्ञ हूं, लेकिन यहां मैंने (शायद) पद के लिए जो पाया है:
से रास्पबेरी Pi गिरी शाखा :
उत्पादों के BCM2708 परिवार के लिए वीडियोकोर संचार इंटरफ़ेस के लिए कर्नेल।
यहाँ ध्यान देने योग्य बात यह है कि VideoCore (आश्चर्य चकित करने वाला) SoC के लिए वीडियो कंट्रोलर है, जो Pi चलाता है, और यह प्रतीत होता है कि यह अधिक या कम प्रत्यक्ष IOCTL को विभिन्न उपतंत्रों में चलाने के लिए एक आसान तरीका है जो GPU में शामिल है। । इसमें यह भी शामिल है कि वीडियो कोई बड़ा आश्चर्य नहीं है, लेकिन मुझे लगता है कि यह समझ में आता है कि कैमरा इंटरफेस ने अपने सिलिकॉन को वीडियोकोर के भीतर दिया है जो सभी कोडेक सामान वीडियो को करने की आवश्यकता है।
तो ऑडियो कंट्रोल वीडियोकोर के माध्यम से क्यों चलाया जाता है (अन्यथा इसे नियंत्रित करने के लिए VCHIQ की आवश्यकता नहीं होगी)? मुझे संदेह है कि, इस तथ्य को देखते हुए कि वीसी को एच .264 और अन्य कोडेक्स के लिए हार्डवेयर समर्थन है (और क्योंकि आप एचडीएमआई के माध्यम से ऑडियो रूट कर सकते हैं), यह सिलिकॉन लगाने के लिए सबसे आसान जगह थी। खैर, वह और तथ्य यह है कि बीसीएम चिप में दो एमएमयू (वीसी + एआरएम के लिए एक, सामान्य ओएस उपयोग के लिए एक और है - पृष्ठ 5 पर आरेख देखें ), जो शून्य-कॉपी डीएमए को संभव बनाता है (चीजों को कॉपी करने की कोई आवश्यकता नहीं है) ऑडियो सिलिकॉन - बस यह बताएं कि स्मृति का एक हिस्सा इसके अंतर्गत आता है और सीपीयू नहीं। डननो अभी तक अगर वे वास्तव में कवर के तहत ऐसा करते हैं, लेकिन आप क्यों नहीं?)।
ध्यान दें कि VCHIQ पर IOCTL वास्तव में प्रति से अधिक डेटा स्थानांतरित नहीं करते हैं - वे मेमोरी चंक्स के बीच डीएमए और अन्य ऑपरेशन सेट करते हैं और विभिन्न बिट्स को कमांड भेजते हैं। यह सुपर खतरनाक हो सकता है, जैसा कि आप संभावित रूप से यूजरस्पेस से आंतरिक कर्नेल डेटा संरचनाओं के साथ पेंच कर सकते हैं, जीपीयू को क्रैश कर सकते हैं, भ्रष्ट डेटा के चारों ओर गोफन कर सकते हैं, इसलिए 777 मोड में / dev / vhciq सेट न करें !!!
किसी भी मामले में, "VCHIQ क्या है?" यह रहा:
VCHIQ वीडियोकॉन सिलिकॉन में चल रहे लिनक्स कर्नेल और बाह्य उपकरणों (अन्य चीजों के बीच) के बीच एक कमांड इंटरफ़ेस है। / dev / vhciq कैमरा और ऑडियो सबसिस्टम द्वारा (न्यूनतम) उपयोग करने के लिए उन कमांडों तक सामान्य उपयोगकर्ता पहुँच प्रदान करता है। यह यादृच्छिक कार्यक्रमों के लिए एक खतरनाक रूप से खतरनाक इंटरफ़ेस है, इसलिए डिफ़ॉल्ट रूप से कुछ प्रतिबंधात्मक अनुमतियाँ हैं।
ऐसे लोग हैं जो आरसीआई समुदाय में बीसीएम हार्डवेयर में अपनी नेत्रगोलक तक हैं; मैं उनमें से एक नहीं हूं (मैं कुछ घंटों के शोध के बाद शायद टखने-गहरे कर रहा हूं :-))। उस ने कहा, मुझे लगता है कि यह एक उच्च स्तरीय अवलोकन है और इसके अतिरिक्त सुधारों / सुधारों का स्वागत करेगा।
जहाँ तक www-data को अनुमति की आवश्यकता है, ऐसा इसलिए होगा क्योंकि आपका CGI प्रोग्राम उस उपयोगकर्ता के रूप में बाल प्रक्रियाओं को जन्म दे रहा है। मैं उस विशेष खिलाड़ी को अच्छी तरह से नहीं जानता, लेकिन बेहतर अभ्यास आमतौर पर उस प्रोग्राम को नियंत्रित करने के लिए कुछ विशेष डेमॉन चलाने के लिए होगा जो एक बच्चे को सीधे पैदा करने के बजाय UNIX सॉकेट या इसी तरह के इंटरफ़ेस का उपयोग करके CGI से ध्वनि को नियंत्रित करने और इसे नियंत्रित करने के लिए है।
दरअसल, एक सुरक्षा विक्रेता को अपने वेब सर्वर रूट को उनकी मशीन तक पहुंच की अनुमति देने के लिए कुछ समय पहले ही भंडाफोड़ हो गया था । उन्होंने शायद इस प्रकार की मध्य परत को लिखने के बजाय प्रक्रिया प्रबंधन को आसान बनाने के लिए ऐसा किया, लेकिन यह एक सुरक्षा संख्या है। एपीपी को मूल रूप से जीपीएमए डीएमए तक पहुंच देना एक समान रूप से बुरा विचार है (हालांकि मैं मानता हूं कि इसका फायदा उठाना बहुत कठिन है)।
उम्मीद है कि यह आपके प्रश्न का उत्तर देगा।
/dev/vhciq
ऑडियो चलाने के लिए आम तौर पर एक्सेस की आवश्यकता नहीं होनी चाहिए - इस मामले में ऐसा इसलिए है क्योंकि ओपी इसे करने केomxplayer
लिए उपयोग कर रहा है, जो शायद आदर्श नहीं है।