ls -1 / dev / {ashmem, binder} पैदावार / dev / ashmem के लिए प्रत्याशित परिणाम देता है, लेकिन / dev / binder के लिए एक त्रुटि

Aug 18 2020

पृष्ठभूमि

एक अन्य पोस्ट में , मैंने बताया कि:

मैं UEFI सिस्टम पर डिफ़ॉल्ट कर्नेल 5.4.0-42-जेनेरिक (मुख्य से स्थापित) के साथ Ubuntu 20.04.1 चला रहा हूं । मैं सिक्योर बूट सक्षम के साथ दो कर्नेल मॉड्यूल (" एशेम " और " बाइंडर ") लोड करना चाहता हूं । कम से कम मेरे लिए, "बाइंडर" सुरक्षित बूट सक्षम के साथ ठीक लोड करता है, लेकिन "ashmem" सुरक्षित बूट सक्षम के साथ लोड नहीं करता है । दोनों मॉड्यूल सुरक्षित बूट अक्षम के साथ लोड होते हैं।

ऊपर, मैं जोड़ दूंगा कि मैंने Ubuntu 20.04 की प्रारंभिक स्वच्छ स्थापना के दौरान सिक्योर बूट (और नामांकित MOK) को सक्षम किया था । फिर भी, रिन्ज़विंड द्वारा प्रदान किए गए उत्कृष्ट सुझाव के बाद , मैंने प्रारंभिक स्थापना के बाद निम्नलिखित भाग लिया :

sudo kmodsign sha512 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der /lib/modules/`uname -r`/kernel/drivers/staging/android/ashmem_linux.ko

और ऊपर चलाने के बाद, मैं फिर से भागा:

sudo modprobe ashmem_linux

sudo modprobe binder_linux

lsmod | grep -e ashmem_linux -e binder_linux

सफलता! दोनों "अश्मेम" और "बाइंडर" लोड! धन्यवाद रंजविंड !!

क्या अधिक है, Anbox अब मेरे लिए सिक्योर बूट इनेबल्ड के साथ शुरू होता है, जो मेरा अंतिम लक्ष्य था। :)

त्रुटि संदेश

हालाँकि "अश्मेम" और "बाइंडर" दोनों अब लोड होते हैं, और हालाँकि एनबॉक्स अब शुरू होता है (और ठीक से काम करने लगता है) अब मेरे लिए सिक्योर बूट सक्षम है, फिर भी मैं निम्नलिखित भाग गया:

ls -1 /dev/{ashmem,binder}

और मैंने निम्नलिखित प्राप्त किया:

ls: cannot access '/dev/binder': No such file or directory
/dev/ashmem

अब, मैं अभी भी उत्सुक हूं कि मुझे उपरोक्त त्रुटि क्यों मिल रही है ("बाइंडर / मॉड्यूल" का उपयोग नहीं किया जा सकता है: "बाइंडर" मॉड्यूल के संबंध में ऐसी कोई फ़ाइल या निर्देशिका नहीं), और क्या मुझे चिंतित होना चाहिए।

प्रशन

  1. "बाइंडर" मॉड्यूल लोड करने पर / dev / binder बनाया जाना चाहिए? (और त्रुटि मुझे चिंता करनी चाहिए?)
  2. यदि "बाइंडर" मॉड्यूल लोड करने पर / dev / binder बनाया जाना चाहिए, तो मैं कैसे बना सकता / सकती हूँ / dev / binder कैसे बनाया जा सकता है?
  3. और अगर / binder / "binder" मॉड्यूल लोड करने पर बनाया जाना चाहिए (अर्थात, अगर मैंने बग खोज लिया है), तो Launchpad पर मुझे त्रुटि कहां दर्ज करनी चाहिए?

पुनरावृत्ति के लिए, लेस्मोड के अनुसार, "अश्मेम" और "बाइंडर" दोनों लोड होते हैं। इसके अलावा, Anbox मेरे लिए अब ठीक से काम कर रहा है जिसमें सिक्योर बूट सक्षम है। मैं यहां (a) अपनी स्वयं की जिज्ञासा को संतुष्ट करने के लिए पोस्ट कर रहा हूं, (b) यह दूसरों के लिए दस्तावेज़ है, और (c) यह निर्धारित करता है कि क्या बाइंडर के बारे में एक बग रिपोर्ट दायर की जानी चाहिए (और इसे कहां दर्ज किया जाए, यदि वारंट किया गया है)।

जवाब

4 GizmoChicken Aug 18 2020 at 08:42

Anbox के लिए इंस्टॉलेशन पृष्ठ की समीक्षा करते हुए , मैंने निम्नलिखित पर ध्यान दिया:

उबंटू 19.10 में बाइंडर ड्राइवर लोड होने पर / dev / बाइंडर नहीं बनाता है। वह जानबूझकर है। इसके बजाय यह binderfs के लिए सहायता प्रदान करता है ( देखें https://brauner.github.io/2019/01/09/android-binderfs.html ) जो PRbox / abox # 1309 के बजाय है

हालांकि ऊपर विशेष रूप से उबंटू 20.04 के लिए स्थिति को संदर्भित नहीं करता है, मैं अनुमान लगा रहा हूं कि यह उसी पर लागू होता है। इस बात को ध्यान में रखते हुए, यहाँ मेरे अपने प्रश्नों के उत्तर प्रस्तावित हैं:

  1. नहीं, / देव / बांधने वाला "बांधने वाला" मॉड्यूल लोड करने पर नहीं बनाया जाना चाहिए। (और त्रुटि संदेश मुझे चिंता नहीं करनी चाहिए।)
  2. बल / देव / बाइंडर को बनाने के लिए कोई आवश्यकता (और शायद कोई रास्ता नहीं) है।
  3. लॉन्चपैड (या कहीं और) पर इस त्रुटि की रिपोर्ट करने की आवश्यकता नहीं है।

यदि कोई व्यक्ति वैकल्पिक (बेहतर) उत्तर देना चाहता है, तो कृपया ऐसा करने के लिए स्वतंत्र महसूस करें। मैं कुछ दिनों के लिए इस प्रश्न को खुला छोड़ दूंगा, लेकिन अगर मैं अगले कुछ दिनों के भीतर कोई अतिरिक्त उत्तर / टिप्पणी नहीं देखता हूं तो इसे ANSWERED के रूप में चिह्नित करूंगा। :)