Depmod - लिनक्स कमांड - यूनिक्स कमांड

नाम

depmod - लोड करने योग्य कर्नेल मॉड्यूल के लिए निर्भरता विवरण संभाल

सार

depmod [-aA] [-ehnqrsuvV] [-C configfile ] [-F कर्नल नाम ] [-b आधारित निर्देशिका ] [ force_version ]
depmod [-enqrsuv] [ -एफ कर्नलिस्ट ] मॉड्यूल 1.o module2.o ...

विवरण

Depmod और modprobe उपयोगिताओं का उद्देश्य सभी उपयोगकर्ताओं, प्रशासकों और वितरण रखरखाव के लिए एक लिनक्स मॉड्यूलर कर्नेल प्रबंधनीय बनाने के लिए है।

Depmod कमांड लाइन पर निर्दिष्ट मॉड्यूल के सेट में या कॉन्फ़िगरेशन फ़ाइल में निर्दिष्ट निर्देशिकाओं से प्राप्त प्रतीकों के आधार पर एक " मेकफ़ाइल " -जैसी निर्भरता फ़ाइल बनाता है। बाद में सही मॉड्यूल या मॉड्यूल के ढेर को लोड करने के लिए यह निर्भरता फ़ाइल बाद में मॉडप्रोब द्वारा उपयोग की जाती है।

डिममोड का सामान्य उपयोग लाइन को शामिल करना है


/ sbin / depmod -a

/etc/rc.d में आरसी -फाइलों में कहीं भी, ताकि सही मॉड्यूल निर्भरता सिस्टम को बूट करने के तुरंत बाद उपलब्ध हो जाए। ध्यान दें कि विकल्प -ए अब वैकल्पिक है। बूट-अप उद्देश्यों के लिए, विकल्प -q अधिक उपयुक्त हो सकता है क्योंकि इससे डिस्मोड अनसुलझे प्रतीकों के बारे में चुप हो जाता है।

एक नया कर्नेल संकलित करने के तुरंत बाद निर्भरता फ़ाइल बनाना भी संभव है। यदि आप " depmod -a 2.2.99 " करते हैं तो आपने कर्नेल 2.2.99 और उसके मॉड्यूल को पहली बार संकलित किया है, जबकि अभी भी 2.2.98 चल रहा है, तो फ़ाइल सही जगह पर बनाई जाएगी। इस मामले में हालांकि, कर्नेल पर निर्भरता को सही होने की गारंटी नहीं दी जाएगी। इसे संभालने के बारे में अधिक जानकारी के लिए विकल्प -F , -C और -b विकल्प देखें।

मॉड्यूल और अन्य मॉड्यूल द्वारा निर्यात किए गए प्रतीकों के बीच संबंध बनाने के दौरान, डिप्मोड मॉड्यूल की जीपीएल स्थिति और न ही निर्यात किए गए प्रतीकों पर विचार नहीं करता है। यही है, यदि कोई जीपीएल संगत लाइसेंस के बिना एक मॉड्यूल केवल जीपीएल केवल प्रतीक (कर्नेल में EXPORT_SYMBOL_GPL) को संदर्भित करता है, तो डिमोड एक त्रुटि को ध्वजांकित नहीं करेगा। हालांकि इंसमोड जीपीएल को गैर-जीपीएल मॉड्यूल के लिए केवल प्रतीकों को हल करने से इंकार कर देगा ताकि वास्तविक भार असफल हो जाये।

विकल्प

-ए , - कुल मिलाकर

(वैकल्पिक) कॉन्फ़िगरेशन फ़ाइल /etc/modules.conf में निर्दिष्ट सभी निर्देशिकाओं में मॉड्यूल के लिए खोजें।

-ए , --quick

फ़ाइल टाइमस्टैम्प की तुलना करें और, यदि आवश्यक हो, तो depmod -a की तरह कार्य करें। यह विकल्प केवल कुछ भी बदल गया है तो निर्भरता फ़ाइल अद्यतन करता है।

-ई , - शब्दकोष

प्रत्येक मॉड्यूल के लिए सभी अनसुलझे प्रतीकों को दिखाएं।

-एच , --help

विकल्पों का सारांश प्रदर्शित करें और तुरंत बाहर निकलें।

-एन , - शो

/ Lib / मॉड्यूल पेड़ के बजाय stdout पर निर्भरता फ़ाइल लिखें।

-q , --quiet

शांत रहने के लिए depmod बताओ और लापता प्रतीकों के बारे में शिकायत नहीं है।

-r , --रूट

कुछ उपयोगकर्ता गैर-रूट उपयोगकर्ता आईडी के तहत मॉड्यूल संकलित करते हैं और मॉड्यूल को रूट के रूप में स्थापित करते हैं। यह प्रक्रिया गैर-रूट उपयोगकर्ता आईडी के स्वामित्व वाले मॉड्यूल को छोड़ सकती है, भले ही मॉड्यूल निर्देशिका रूट के स्वामित्व में हो। यदि गैर-रूट उपयोगकर्ता आईडी से समझौता किया गया है, तो घुसपैठिया उस उपयोगकर्ता आईडी के स्वामित्व वाले मौजूदा मॉड्यूल को ओवरराइट कर सकता है और रूट एक्सपोज़र तक रूट एक्सपोजर के लिए इस एक्सपोजर का उपयोग कर सकता है।

डिफ़ॉल्ट रूप से, modutils रूट के स्वामित्व वाले मॉड्यूल का उपयोग करने के प्रयासों को अस्वीकार कर देगा। निर्दिष्ट करना- त्रुटि को दबाएगा और रूट को उन मॉड्यूल को लोड करने की अनुमति देगा जो रूट के स्वामित्व में नहीं हैं।

-r का उपयोग एक प्रमुख सुरक्षा जोखिम है और इसकी अनुशंसा नहीं की जाती है।

-s , --syslog

Stderr के बजाय syslog डिमन के माध्यम से सभी त्रुटि संदेशों को लिखें।

-यू , - अनसुलझा-त्रुटि

depmod 2.4 किसी भी अनसुलझे प्रतीक होने पर रिटर्न कोड सेट नहीं करता है। मॉड्यूल्स (2.5) की अगली बड़ी रिलीज अनसुलझे प्रतीकों के लिए रिटर्न कोड सेट करेगी। कुछ वितरण modutils 2.4 में एक गैर-शून्य रिटर्न कोड चाहते हैं लेकिन उस परिवर्तन से उन उपयोगकर्ताओं के लिए समस्या हो सकती है जो पुराने व्यवहार की अपेक्षा करते हैं। यदि आप depmod 2.4 में एक गैर-शून्य रिटर्न कोड चाहते हैं, तो -u निर्दिष्ट करें। डिप्मोड 2.5 चुपचाप -उ ध्वज को अनदेखा करेगा और हमेशा अनसुलझे प्रतीकों के लिए एक गैर-शून्य रिटर्न कोड देगा।

-v , - verbose

प्रत्येक मॉड्यूल का नाम दिखाएं क्योंकि इसे संसाधित किया जा रहा है।

-V , --वर्जन

Depmod के संस्करण प्रदर्शित करें।

वितरण के प्रबंधन वाले लोगों के लिए निम्नलिखित विकल्प उपयोगी हैं:

-बी आधारित निर्देशिका , - आधार पर आधारित निर्देशिका

यदि मॉड्यूल के उप-पेड़ वाले निर्देशिका पेड़ / lib / मॉड्यूल को किसी अन्य वातावरण के लिए मॉड्यूल को संभालने के लिए कहीं और स्थानांतरित किया जाता है, तो -b विकल्प depmod को बताता है कि / lib / मॉड्यूल पेड़ की स्थानांतरित छवि कहां मिलती है। डिमिटोड आउटपुट फ़ाइल में फ़ाइल संदर्भ जो बनाया गया है, modules.dep , में डायरेक्ट्रीरी पथ नहीं होगा। इसका अर्थ यह है कि जब फ़ाइल पेड़ को अंतिम वितरण में / निर्देशिका / lib / मॉड्यूल में / lib / मॉड्यूल में वापस ले जाया जाता है, तो सभी संदर्भ सही होंगे।

-C configfile , --config configfile

/etc/modules.conf की बजाय फ़ाइल configfile का उपयोग करें । पर्यावरण परिवर्तक MODULECONF का उपयोग डिफ़ॉल्ट /etc/modules.conf (या /etc/conf.modules (बहिष्कृत) से भिन्न कॉन्फ़िगरेशन फ़ाइल का चयन करने के लिए भी किया जा सकता है।

जब पर्यावरण परिवर्तनीय

UNAME_MACHINE सेट है, modutils uname () syscall से मशीन फ़ील्ड के बजाय इसके मान का उपयोग करेगा। यह मुख्य रूप से तब उपयोग होता है जब आप 64 बिट उपयोगकर्ता स्थान में 64 बिट मॉड्यूल संकलित कर रहे हैं या इसके विपरीत, UNAME_MACHINE को बनाए गए मॉड्यूल के प्रकार पर सेट करें। वर्तमान मॉड्यूल मॉड्यूल के लिए पूर्ण क्रॉस बिल्ड मोड का समर्थन नहीं करता है, यह होस्ट आर्किटेक्चर के 32 और 64 बिट संस्करणों के बीच चयन करने के लिए सीमित है।

-F कर्नल शब्दकोष , - शब्दकोष शब्दकोष

वर्तमान में चल रहे कर्नेल की तुलना में एक अलग कर्नेल के लिए निर्भरता फ़ाइलों का निर्माण करते समय, यह महत्वपूर्ण है कि प्रत्येक मॉड्यूल में कर्नेल संदर्भों को हल करने के लिए depmod कर्नेल प्रतीकों के सही सेट का उपयोग करता है। ये प्रतीकों या तो अन्य कर्नेल से System.map की प्रतिलिपि हो सकते हैं, या आउटपुट की एक प्रति / proc / ksyms से हो सकती हैं । यदि आपका कर्नेल वर्जन वाले प्रतीकों का उपयोग करता है, तो / proc / ksyms आउटपुट की एक प्रति का उपयोग करना सबसे अच्छा है, क्योंकि उस फ़ाइल में कर्नेल प्रतीकों का प्रतीक संस्करण शामिल है। हालांकि आप वर्जन वाले प्रतीकों के साथ भी System.map का उपयोग कर सकते हैं।

विन्यास

Depmod और modprobe का व्यवहार (वैकल्पिक) विन्यास फाइल /etc/modules.conf द्वारा समायोजित किया जा सकता है।
एक पूर्ण विवरण के लिए modprobe (8) और modules.conf (5) देखें।

रणनीति

प्रत्येक बार जब आप एक नया कर्नेल संकलित करते हैं, तो " modules_install " कमांड एक नई निर्देशिका बनाएगा, लेकिन डिफ़ॉल्ट नहीं बदलेगा।

जब आप कर्नेल वितरण से संबंधित मॉड्यूल प्राप्त करते हैं तो आपको इसे / lib / मॉड्यूल के तहत संस्करण-स्वतंत्र निर्देशिकाओं में से एक में रखना चाहिए।

यह डिफ़ॉल्ट रणनीति है, जिसे /etc/modules.conf में ओवरराइड किया जा सकता है।

यह भी देखें

lsmod (8), ksyms (8)

महत्वपूर्ण: यह देखने के लिए मैन कमांड ( % man ) का उपयोग करें कि आपके विशेष कंप्यूटर पर कमांड का उपयोग कैसे किया जाता है।